Not applicable.
1. The Field of the Invention
The present invention relates to business modeling and, more particularly, to transforming business models.
2. The Relevant Technology
Businesses have complex operations. An understanding of these operations is important to a business in order to, for example, prepare for change, account for costs, etc. Accordingly, various mechanisms have been developed to model and represent businesses. Some mechanisms include manual generation of diagrams that represent business processes that describe how work is done. For example, trained individuals can analyze all aspects of a business to identify business capabilities and interrelationships and interdependencies between the business processes. Based on the analysis, the trained individuals can generate the representative diagrams. However, accurate analysis of a business from a business process point-of-view can take an extended period of time due to complexity of business. Further, once representative diagrams are generated such diagrams are not easily modified or partitioned to isolate aspects of interest or analysis.
Unfortunately, since many business processes are dynamic (i.e., can change over time), a manually generated representation of business processes may be outdated before it is even completed. Further, even if a manually generated representation of business processes were accurate at the time it was completed, any change in business processes after the business representation is generated would cause the business representation to be incorrect. Thus, manually generated representations provide limited, if any, ability for a business to determine how simulated and/or hypothetical changes to various business capabilities would affect the business, in part drive by the complexity and necessary completeness of manual presentation. Hiding details or providing different views to simplify analysis requires additional, manual efforts that are expensive and potentially error prone.
At least in part as a result of the deficiencies in manually generated business representations, some computerized mechanisms have been developed to generate business representations. These computerized mechanisms use various techniques to represent business and the required business functions mostly focused on modeling business processes and detailed procedures that support those processes. For example, some computerized mechanisms present a graphical view of business processes at a user-interface. To some limited extent, these graphical views can be altered to simulate the effect of different business capabilities on a business.
However, most of these computerized mechanisms focus on “how” the business is executed, conflating (or combining) various different layers (or types) of input data, such as, for example, organizational structures, procedures, process flows, and supporting technology. The stability of the input data (i.e., the half life of the information represented) potentially varies dramatically between the different input layers (or types), rendering the useful life time of a generated view only as valid as the least stable input. Conflating (or combining) interrelated, yet non-dependent, input data together can also result in obscured views of how a business functions and lead to unnecessary and costly improvement efforts of the modeled business, without the ability to determine the effect of changes in each individual layer.
Further, computerized mechanisms often include hard-coded data types and hard-coded representations for business modeling input data. These hard-coded data types and representations can be difficult to alter without access to source code. Thus, the flexibility and extensibility of modeling businesses and generating corresponding views is limited. For example, it may difficult to alter pre-defined data formats such that a business capability can be represented in a different way or such that a previously undefined business capability can be added.
All of the above for mentioned difficulties associated with modeling businesses limit the usefulness of visual presentations of such models. For example, most visual presentations of business models, such as, for example, business maps, center on data representations in the context of specific isolated tasks or activities. Visualizing and navigating to adjunct, potentially useful business data, organizations structure, partners, or relevant business process flows, is cumbersome and often impossible. For example, there is typically no mechanism to visually navigate from data in one business layer, such as, for example, a business process flow layer, to data in another business layer, such as, for example, a organizational structure layer indicating personnel that implement/manage a business process flow. This inability to efficiently navigate can prevent analysis of different views of a business and selection of connected entities.
Further, both manually generated and computer generated models are typically unstructured, and thus lack any mechanism to provide varied levels of detail. For example, it is difficult (and essentially impossible with manually generated models) to efficiently generate a single model that can provide both a higher level view (e.g., for senior management) and at the same time a lower level view (e.g., for those employees implementing the business function) of the same business function. Further, these modeling techniques typically lack any mechanism to view various different portions of a business function model at different levels of detail. For example, it is difficult, if not impossible, to simultaneously view a first portion of a model at one level of detail and a second different portion of the model at a second different level of detail.
Additionally, these techniques typically generate business models that lack formal operators. Thus, even computer generated models may have limited usefulness since there is no way to manipulate the computer generated models. Without formal operators there may be no way to transform different portions of a business model to have different corresponding levels of detail. For example, there may be no way to transform a portion of a model from more a detailed view to less detailed view (zooming out) or vice versa (zooming in). Thus, a user may be forced to use a business map (or portion there of) having either to much or to little detail for a specific task. As a result, on one hand, a user may get bogged down in unnecessary details that make performing the task inefficient. On the other hand, a user may lack sufficient details for completing the task at all.
Also, without formal operators, there may be no way to transform components of one type of business model into corresponding components of another type of business model. For example, there may be no way to transform components of a business process flow model into corresponding components of a service network model. Accordingly, what would be advantageous are systems, methods, computer program products, and data structures for transforming business models.
The foregoing problems with the prior state of the art are overcome by the principles of the present invention, which are directed towards methods, systems, computer program products, and data structures for transforming business models. In some embodiments, a computer system accessing a business model representing a business layer of a business architecture. The business model models a plurality of business components of the business layer, with an initial level of detail, in accordance with a structured data model. The computer system receiving an indication that one or more of the plurality of business components are to be modeled with an updated level of detail.
The computer system accesses transform relationships that designate how business components are to be transformed from the initial level of detail to the updated level of detail. The computer system transforms the one or more business components from the initial level of detail to the updated level of detail in accordance with the transform relationships. The computer system models the one or more business components with the updated level of detail such that one portion of the accessed business model retains the initial level of detail and another portion of the accessed business model is updated to the updated level of detail.
In other embodiments, a computer system accessing a first structured business model representing a first business layer of a business architecture. The first structured business model models one or more first business layer components of the first business layer in accordance with a structured data model. The computer system receives an indication that the first structured business model is to be transformed into a second business model representing a second business layer of the business architecture.
The computer system accesses transform relationships that designate how components of the first business layer are to be transformed into corresponding second business layer components of the second business layer. The computer system transforms the one or more first business layer components into corresponding second business layer components in accordance with the transform relationships. The computer system models the second business layer components into the second business model.
These and other features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.
To further clarify the above and other advantages and features of the present invention, a more particular description of the invention will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. It is appreciated that these drawings depict only typical embodiments of the invention and are therefore not to be considered limiting of its scope. The invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
The principles of the present invention provide for transforming business models. In some embodiments, a computer system accessing a business model representing a business layer of a business architecture. The business model models a plurality of business components of the business layer, with an initial level of detail, in accordance with a structured data model. The computer system receiving an indication that one or more of the plurality of business components are to be modeled with an updated level of detail.
The computer system accesses transform relationships that designate how business components are to be transformed from the initial level of detail to the updated level of detail. The computer system transforms the one or more business components from the initial level of detail to the updated level of detail in accordance with the transform relationships. The computer system models the one or more business components with the updated level of detail such that one portion of the accessed business model retains the initial level of detail and another portion of the accessed business model is updated to the updated level of detail.
In other embodiments, a computer system accessing a first structured business model representing a first business layer of a business architecture. The first structured business model models one or more first business layer components of the first business layer in accordance with a structured data model. The computer system receives an indication that the first structured business model is to be transformed into a second business model representing a second business layer of the business architecture.
The computer system accesses transform relationships that designate how components of the first business layer are to be transformed into corresponding second business layer components of the second business layer. The computer system transforms the one or more first business layer components into corresponding second business layer components in accordance with the transform relationships. The computer system models the second business layer components into the second business model.
Embodiments within the scope of the present invention include computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media may be any available media, which is accessible by a general-purpose or special-purpose computer system. By way of example, and not limitation, such computer-readable media can comprise physical storage media such as RAM, ROM, EPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other media which can be used to carry or store desired program code means in the form of computer-executable instructions, computer-readable instructions, or data structures and which may be accessed by a general-purpose or special-purpose computer system.
In this description and in the following claims, a “computer network” is defined as one or more data links that enable the transport of electronic data between computer systems and/or modules. When information is transferred or provided over a computer network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer system, the connection is properly viewed as a computer-readable medium. Thus, any such connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of computer-readable media. Computer-executable instructions comprise, for example, instructions and data which cause a general-purpose computer system or special-purpose computer system to perform a certain function or group of functions. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, or even source code.
In this description and in the following claims, a “computer system” is defined as one or more software modules, one or more hardware modules, or combinations thereof, that work together to perform operations on electronic data. For example, the definition of computer system includes the hardware components of a personal computer, as well as software modules, such as the operating system of the personal computer. The physical layout of the modules is not important. A computer system may include one or more computers coupled via a computer network. Likewise, a computer system may include a single physical device (such as a mobile phone or Personal Digital Assistant “PDA”) where internal modules (such as a memory and processor) work together to perform operations on electronic data.
In this description and the following claims, a “business layer” is defined as a view of specified characteristics of a business. For example, a business can be viewed based on its organizational structure, its business capabilities, it business processes, its service network, its geographic location, etc. Thus, a business can include a corresponding organizational layer, capability layer, process flow layer, service network layer, geographical layer, etc.
In this description and the following claims “business architecture” is defined as the overall design of at least a portion of a business. A business architecture for a company or one or more portions of a company can include one or more business layers that span various boundaries inside and/or outside of the company. For example, a company's business architecture can span externally physical boundaries (e.g., walls, buildings, etc.), internally physical boundaries (e.g., divisions, departments, etc.), and logical boundaries (e.g., a fiscal year end, a perceived service boundary, security etc.). Thus, an outsourced business capability can be viewed as part of the business architecture for a company even though the outsourced business capability is not performed by the company. Business architectures can be past, current (as-is), or future (to-be) architectures of an entire business or one or more portions of a business. A portion of a business can include e a specific sub-network or set of sub-networks of business capabilities.
Generally, the stability (or volatility) of different types of business models corresponding to different business layers can vary. That is, one type of business model can be more or less stable relative to other types of business models. For example, a business procedure model modeling business procedures may be more stable than a business organizational model modeling business organizational structure. On the other hand, business procedure modeling business procedures may be less stable than a business capability model modeling business capabilities.
In this description and in the following claims, a “business attribute” is defined as any attribute that can be used to model a business or part of a business. Different business modeling attributes can correspond to modeling different aspects (or different layers) of a business architecture. Thus, business modeling attributes can generally be divided into subsets of different types of business modeling attributes, such as, for example, business organizational attributes, business procedure attributes, business process flow attributes, business capability attributes, geographic attributes, etc.
Accordingly, each different type of business attributes can be used to model business components of a corresponding business aspect (or business layer). For example, business organizational attributes can be used to model business organizational structures, business procedure attributes can be used to model business procedures, business process flow attributes can be used to model business process flows, business capability attributes can be used to model business capabilities, geographic attributes can be used to model geography, etc.
In this description and in the following claims, a “business attribute relationship” is defined as an attribute that can be used to model a relationship between a first business attribute (of a first business component) and a second different business attribute (of a second business component). A relationship can be, for example, a dependency, a connection, or a boundary. A dependency can indicate what has to occur modeled business component to start, external events that that occur for a business component to stop, or other business components that depend on the business component. A connection indicates how one business component relates to other business components. A boundary indicates if influences on a business component are internal (e.g., people, process, technology inside a company) or external (e.g., regulations, customers, partners) to the business component. A business attribute relationship can be used to model a relationship between business components in the same business layer or between business components in different business layers.
Accordingly, each different type of business attribute relationship can be used to model business components of a corresponding business aspect (or business layer). For example, business organizational attribute relationships can be used to model business organizational structures, business procedure attribute relationships can be used to model business procedures, business process flow attribute relationships can be used to model business process flows, business capability attribute relationships can be used to model business capabilities, geographic attribute relationships can be used to model geography, etc.
Thus, in this description and in the following claims, a “business component” is defined as component of a business model, such as, for example, a component of a model of business organizational structures, business procedures, business process flows, business capabilities, geography, etc., with respect to a particular business layer. Further, it would be apparent to one skilled in the art, after having reviewed this description, that other subsets of business components, in additional to those expressly described, can be used to model other corresponding business aspects (or business layers).
In this description and in the following claims, a “schema” is defined as an expression of a shared vocabulary between a plurality of computer systems or modules that allows the plurality of computer systems or modules to process data according the expressed shared vocabulary. A schema can define and describe classes of data using constructs (e.g., name/value pairs) of a schema language. The schema constructs can be used to constrain and document the meaning, usage, and relationships of data types, elements and their content, attributes and their values, entities and their contents, and notations, as used in a specified application, such as, for example, a business capability model. Thus, any computer system or module that can access a schema can process data in accordance with the schema. Further, any computer system or module that can access a schema can compose or modify data for use by other computer systems and/or modules that can also access the schema.
A schema can be utilized to define virtually any data type including logical, binary, octal, decimal, hexadecimal, integer, floating-point, character, character string, user-defined data types, and combinations of these data types used to defined data structures. Some examples of user-defined data types are business capability properties, business capability inputs and outputs, business capability processes, business capability connections, and business capability service level expectations. A data type can also be defined to reference of link to other data types in a schema hierarchy.
An eXtensible Markup Language (“XML”) schema is one example of a type of schema. An XML schema can define and describe a class of XML documents using schema constructs (e.g., name/value pairs) of an XML schema language. These schema constructs can be used to constrain and document the meaning, usage, and relationships of data types, elements and their content, attributes and their values, entities and their contents, and notations, as used in XML documents. Thus, schema is also defined to include Document Type Definitions (“DTD”), such as, for example, DTD files ending with a “.dtd” extension and World Wide Web Consortium (“W3C”) XML Schemas, such as, for example, XML Schema files ending with a “.xsd” extension. However, the actually file extension for a particular DTD or XML schema is not important.
Those skilled in the art will appreciate that the invention may be practiced in a computer network environments with many types of computer system configurations, including, personal computers, laptop computers, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, pagers, and the like. The invention may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a computer network, both perform tasks. In a distributed system environment, program modules may be located in both local and remote memory storage devices.
Generally, modeling module 103 can include modules configured to modle business components. For example as depicted in computer architecture 100, modeling module 103 includes transform schema 109, level of detail module 104, transform module 105, and layer selection module 107.
Transform module 105 is configured to utilize transform schema 109 to transform between business components having varied levels of detail and/or between corresponding business components of different business layers. Transformation schema 109 can include transformation relationships that designate how business components of a business layer are to be transformed between different levels of detail and/or how business components of one business layer are to be transformed to business components of another business layer. Transform module 105 can be configured to transform business components between a plurality of different levels of detail and/or between a plurality of different business layers.
Level of detail module 104 is configured to control levels of detail within a business model. For example, level of detail module 104 can hide or provide details within a model in response to user-input. Thus, level of detail module 104 can cause less than all the data in business attribute and business attribute relationship to be modeled.
Level of detail module 104 can also alter a level of detail such that a current level of detail is increased or decreased. For example, level of detail module 104 can focus (or “zoom-in”) on levels of detail as requested by a user (e.g., to drill down on a specified part of a business model). On the other hand, level of detail module 104 can also abstract (or “zoom-out”) levels of detail as requested by a user (e.g., to provide an overview of part of a business model). Level of detail module 104 can also model different portions of a business model with different levels of detail. Using varied levels of detail can facilitate drilling down into a specified portion of a business model in increased detail and yet still providing context (i.e., reduced detail surrounding components) for the increased detail portions.
Layer selection module 107 is configured to determine a destination business layer. Business components of a current business layer can be transformed to corresponding business components of the destination business layer. Layer selection module 107 can filter business attributes and business attribute relationships for business components of other business layers that are not to be transformed such that transform module 105 does not receive business attributes and business attribute relationships for filtered layers. In response to user-input, filtered and non-filtered layers can be changed. Thus, additional business layers can be subsequently transformed.
Generally, computer system 101 is configured to receive business models generated in accordance with appropriate data models, unstructured business models, and/or unstructured business data. In response to receiving unstructured business models and/or unstructured business data, computer system 101 can refer to the appropriate data models to generate business models in accordance with the data models.
A business layer within a business architecture can be modeled using a single data model. For example, it may be that a single business capability data model is used to model a business capability layer of a business architecture. However, a business layer can also be modeled using any of a plurality different data models. For example, it may be that any of a plurality of different business capability data models is used to model a business capability layer of a business architecture.
Further, the same business layer within different business architectures can be modeled using the same data model or similar data models. For example, it may be that the same data model is used to model a business capability layer of a first business architecture is also used to model a corresponding business capability layer of a second business architecture. In this description and in the following claims, a “similarly typed business models” are defined as models based on the same data model or similar data
However, different data models can be used to model the same business layer within different business architectures. For example, it may be that a first business capability data model is used to a model a business capability layer of a first business architecture and a second business capability data model is used to model a business capability layer of a second business architecture. Additionally, different data models can be used to model different business layers of the same business architecture. For example, it may be that a business capability data model is used to model a business capability layer of a business architecture and a service network data model is used to model a service network layer of the business architecture.
Thus, computer system 101 can access business models corresponding to different business layers (e.g., business capability layer 121, service network layer 131, business process flow layer 141, business organizational layer 151, geographic layer 161, etc.). For example, computer system 101 can access one or more of capability model 122, service model 132, process flow model 142, and organizational model 152, and geographic model 162. A vertical series of two consecutive periods (a vertical ellipsis) before, between, and after the expressly depicted layers represents that computer architecture. 100 can include other additional layers. A horizontal series of two consecutive periods (an ellipsis) before, between, and after the expressly depicted models in each layer represents that each layer can include other additional models. Collectively, the models 122, 132, 142, 152, and 162 represent business architecture 111.
Modeling module 103 can perform transform operations (e.g. transforming business components) on accessed models (potentially in response to user entered commands) and can generate corresponding transformed business models. For example, modeling module 103 can transform the level of detail in a portion of organizational model. Likewise, modeling module 103 can transform business components of process flow model 142 into corresponding business components of geographical layer 161. Modeling module 103 can then model the corresponding geographical business components into a geographical model. Transformed models can be output at user-interface 102, sent to other processing modules for further processing, and/or can be sent via electronic messages to other computer systems.
As previously described, various different data models can be used to model different business layers. Thus in some embodiments, data models can include at least one business capability modeling schema for modeling a business capability layer, at least one business organizational schema for modeling a business organizational layer, at least one business process flow modeling schema for modeling a business process flow layer, at least one service network layer business modeling schema for modeling a service network layer, etc.
In some embodiments, business models and data format definitions can be generally described as indicated in Table 1.
Depicted in
Depicted in
Depicted in
Depicted in
Depicted in
Depicted in
Depicted in
Depicted in
Depicted in
Depicted in
Depicted in
Depicted in
Depicted in
Depicted in
Depicted in
Depicted in
Depicted in
Depicted in
Depicted in
Depicted in
Depicted in
Depicted in
It should be understood that schema 100 is merely one example of a business capability modeling schema. Further, modeling business capabilities does not require that capability attributes for all the data formats in schema 200 be accessible. For example, a capability and connecter can be used to model a business capability based on capability data format 214 and connector data format 223, without accessing capability attributes correspond to other data formats. Thus, schema 200 defines data formats for business capability attributes that are accessed, but does not require that all data formats be populated to generate a business capability model.
It would be apparent to one skilled in the art, after having reviewed this description, that embodiments of the present invention can be used with a wide variety of other business capability modeling schemas, in addition to schema 200. It would also be apparent to one skilled in the art, after having reviewed this description, that embodiments of the present invention can be used with a wide variety of other schemas that facilitate modeling other business layers.
Method 300 includes an act of accessing a business model representing a business layer of a business architecture (act 301). For example, computer system 101 can access capability model 122. The business model modeling a plurality of business components of the business layer in accordance with a structured data model. For example, capability model 122 can be model a plurality of business components of business capability layer 121 in accordance with business capability modeling schema 200. The plurality of business components modeled with an initial level of detail.
For example, user-interface 102 can receive user-input 114 indicating an initial level of detail for capability model 122. User-interface 102 can transfer user-input 114 to level of detail module 104. An initial level of detail can indicate that all business components are to have the same level of detail. However, the initial level of detail is configurable across different business comments such that the initial level of detail differs for different business components. Thus, an initial level of detail can indicate that different business components are to have different levels of detail.
The method 300 includes an act of receiving an indication that one or more of the plurality of business components are to be modeled with an updated level of detail (act 302). For example, user-interface 102 can receive user-input 114 indicating that the level of detail for one or more business components of capability model 122 are to be changed. User-interface 102 can transfer user-input 114 to level of detail module 104. Changing a level of detail can include increasing and/or decreasing the level of detail of all, some, or one of the business components in a business model. For example, a second level of detail can indicate that the level of detail for a portion of capability model 112 is to be increased or decreased from the initial level of detail.
The method 300 includes an act of accessing transform relationships that designate how business components are to be transformed from the initial level of detail to the updated level of detail (act 303). For example, transform module 105 can access transform schema 109. Transform schema 109 can include transform relationships that indicate how business components of capability model 122 are to be transformed between various different levels of detail.
A components and connectors algebra can be used to represent transform relationships. A component (e.g., a business component) can be represented as a list of unique names (e.g., relationships to other business components), such as, for example, having the syntax:
COMPONENT ::=[]|[NAME (, NAME)*]
Thus, the expression X=[a, b, c], indicates that the component X includes names a, b, and c. A null component can be represented as [].
Systems of connected components (e.g., connected business components forming a business model) can be represented using expressions. One operation used to connect components is a parallel composition operator resented by ‘|’. Thus, expressions can have, for example, the following syntax:
TERM ::=COMPONENT (EXPRESSION)
EXPRESSION ::=TERM (|TERM)*
The following are examples of expressions:
A decomposition operator (essentially the inverse of the composition operation) can also be used.
Expressions can have values. Values can include either components or composition of components without common names. For example, [a,b]|[c,d] is a value (no common names). On the other hand, [a,b]|[b,c] is not a value (the components share b). Thus, evaluation of expressions can be defined in terms of values suing the following example syntax:
VALUE ::=COMPONENT C0| . . . |Cn with all component pairs without common name
TERM ::=VALUE (EXPRESSION)
EXPRESSION ::=TERM (|TERM)*
An evaluation function can be defined as Eval: Expressions→Values (C for components, V for values, T for terms, E for expressions) with the following rules:
Two components are equal if they have the same name values. Thus, the order of names does not distinguish components. Equality can also be extended to cover expressions: E=E′⇄Eval(E)=Eval(E′). Following are some examples of evaluation expressions indicating the corresponding rules that have been used:
These described definitions for components, connected components, operations, expressions, values, names, terms, evaluation function, evaluation rules, and equality can be used to specify transform relationships that are stored in transform schema 109.
The functionality depicted in
Method 300 includes an act of transforming the one or more business components from the initial level of detail to the updated level of detail in accordance with the transform relationships (act 304). For example, transform module 103, level of detail module 104 can interoperate with transform relationships included in transform schema 109 to transform a portion of capability model 122 from an initial level of detail to an update level of detail in accordance with the transform relationships. An updated level of detail can include more or less detail than the initial level of detail.
Referring now to
The expression C601|C603|C607|C609 (using ‘C’ as an abbreviation for “Component”) defines the diagrammatic representation 600 algebraically. As depicted in
Method 300 includes an act of modeling the one or more business components with the updated level of detail such that one portion of the accessed business model retains the initial level of detail and another portion of the accessed business model is updated to the updated level of detail (act 305). For example, modeling model 103 can model some business components of capability model 122 with the initial level of detail and some business components of capability model 122 with the updated level of detail. Thus, some business components of capability model 122 retain the initial level of detail and other components of capability model 122 are updated to the updated level of detail. Modeling module 103 can output the transformed model as transformed business model 112.
Referring now to
Although examples of reducing the level of detail have been expressly described, it should be understood that embodiments of the present invention can also be used to increase the level of detail. For example, it may be that model 600 depicted in
Business models can include detail data for representing business components at various levels of detail. Thus, if an initial of level of detail is somewhat reduced from the maximum level of detail, level of detail module 104 can store other detail data representing increased levels of detail for use in subsequent transformations. When a an indication (e.g., user input 114) of increased level of detail is received, level of detail module 104 can refer back to the stored detail data to transformation an initial level of detail to an increased level of detail.
When a model does not include data for various levels of detail, level of detail module 104 can retain abstracted out detail data such that a model can at least be reverted back the initial level of detail.
Method 400 includes an act of accessing a first structured business model representing a first business layer of a business architecture (act 401). For example, modeling module 103 can access capability model 122. The first structured business model models one or more first business layer components of the first business layer in accordance with a structured data model. For example, capability model 102 can model one or more business capabilities of business capability layer 121 in accordance with business capability modeling schema 200.
Method 400 includes an act of receiving an indication that the first structured business model is to be transformed into a second business model representing a second business layer of the business architecture (act 402). For example, user-interface 102 can receive user-input 114 indicating that capability model 122 is to be transformed into a service model representing service network layer 131. User-interface 102 can transfer user-input 114 to layer selection module 107. Transforming a first structured busies model to a second business model can include transforming any of a variety of different business layers, such as, for example, between business capability layer 122, service network layer 131, business process flow layer 141, business organization layer 151, and geographical layer 161.
Method 400 includes an act of accessing transform relationships that designate how components of the first business layer are to be transformed into corresponding second business layer components of the second business layer (act 403). For example, transformation module 105 can access transform schema 109 that includes transform relationships designating how business capability components are to be transformed into service network components. Transformation relationships can indicate, for example, what IT infrastructure is needed to implement a corresponding business capability.
Transformation relationships for other transformations can include other appropriate data. For example, transformation relationships to transform a service model to an organizational model can indicate what personnel support what portions of an IT infrastructure. Transform relationships between a process flow model and a geographical model can indicate where process flows occur. It would be apparent to one skill in the art, after having reviewed this description, that other transformation relationships for transforming models between other business layers can also be used.
Method 400 includes an act of transforming the one or more first business layer components into corresponding second business layer components in accordance with the transform relationships (act 404). For example, layer selection model 107 and transformation module 103 can interoperate with transformation relationships in transform schema 109 to transform business components of capability model 122 into corresponding business components of service network layer 131.
Method 400 includes an act of modeling the second business layer components into the second business model (act 405). For example, modeling module 103 can model business components of service network layer 131 in to a service model. Modeling module 103 can output the service model as transformed business model 112.
It may be that a service component supports a plurality of different capability components. For example, service component 452 supports both capability component 402 and 403 (as depicted by connections 421 and 422 respectively). It may also be that a plurality of service components supports a capability component. For example, service components 454 and 457 both support capability component 404 (as depicted by mappings 423 and 424). Thus, various one-to-one, many-to-one, one-to-many, and many-to-many correspondences can result from transforming between business models of different business layers.
As previously described, various different data models can be used to model different business layers. Thus in some embodiments, data models can include at least one business capability modeling schema for modeling a business capability layer, at least one business organizational schema for modeling a business organizational layer, at least one business process flow modeling schema for modeling a business process flow layer, at least one service network layer business modeling schema for modeling a service network layer, etc. Corresponding transformation schemas can be used to convert between schemas for specified business layers. Thus, modeling model 103 can have access to plurality of transformation schemas for transforming between the various different business layers, such as, for example, a capability to service transformation schema, an organizational to process flow transformation schema, etc.
Embodiments of the present invention provide mechanisms to transform levels of detail in business models. Users can configure levels of detail such that the appropriate amount of detail for a given task is provided. Further, users can transform models between different business layers without having to associate or understand the structures of the different business layers. Accordingly, users are provided business context for completing tasks more efficiently without being overwhelmed by unneeded business details and without lacking all the relevant business details.
However, while description of the invention has primarily been directed to transforming business models, it should be understood that models of any arbitrary network can be transformed in accordance with the principles of the present invention. That is, embodiments of the invention can also be used to transform models of other types of networks (in addition to business network models), such as, for example, a network of software components. For example, a method can be implemented to transform a portion of arbitrary model of a network to have a different level of detail.
The method includes accessing an arbitrary model of a network. For example, computer system 101 can access a model of a software component network. The software components in the software component network can be modeled with an initial level of detail.
The method includes an act of receiving an indication that one or more of the modeled components are to be modeled with an updated level of detail. For example, user-interface 102 can receive user-input 114 indicating that the level of detail for one or more software components the model of the software component network is to be changed. User-interface 102 can transfer user-input 114 to level of detail module 104. Changing a level of detail can include increasing and/or decreasing the level of detail of all, some, or one of the software components in a model of software component model. For example, a second level of detail can indicate that the level of detail for a portion of the model of the software component network is to be increased or decreased from the initial level of detail.
The method includes an act of accessing transform relationships that designate how modeled components are to be transformed from the initial level of detail to the updated level of detail. For example, transform module 105 can access an appropriate transform schema. The transform schema can include transform relationships (similar to those previously described) that indicate how software components included in the model of the software component network are to be transformed between various different levels of detail.
The method includes an act of transforming the modeled components from the initial level of detail to the updated level of detail in accordance with the transform relationships. For example, transform module 103, level of detail module 104 can interoperate with transform relationships included in the appropriate transform schema to transform a portion of a model of a software component network from an initial level of detail to an update level of detail in accordance with the transform relationships. An updated level of detail can include more or less detail than the initial level of detail.
The method includes an act of modeling the one or more modeled components with the updated level of detail such that one portion of the accessed network model retains the initial level of detail and another portion of the accessed network model is updated to the updated level of detail. For example, modeling model 103 can model some software components of the model of the software component network with the initial level of detail and can model other software components of the model of the software component network with the updated level of detail. Thus, some software components of the model of the software component network retain the initial level of detail and other software components of the model of the software component network are updated to the updated level of detail. Modeling module 103 can output the transformed model as a transformed model of the software component network.
With reference to
The computer system 920 may also include magnetic hard disk drive 927 for reading from and writing to magnetic hard disk 939, magnetic disk drive 928 for reading from or writing to removable magnetic disk 929, and optical disk drive 930 for reading from or writing to removable optical disk 931, such as, or example, a CD-ROM or other optical media. The magnetic hard disk drive 927, magnetic disk drive 928, and optical disk drive 930 are connected to the system bus 923 by hard disk drive interface 932, magnetic disk drive-interface 933, and optical drive interface 934, respectively. The drives and their associated computer-readable media provide nonvolatile storage of computer-executable instructions, data structures, program modules, and other data for the computer system 920. Although the example environment described herein employs magnetic hard disk 939, removable magnetic disk 929 and removable optical disk 931, other types of computer readable media for storing data can be used, including magnetic cassettes, flash memory cards, digital versatile disks, Bernoulli cartridges, RAMs, ROMs, and the like.
Program code means comprising one or more program modules may be stored on hard disk 939, magnetic disk 929, optical disk 931, ROM 924 or RAM 925, including an operating system 935, one or more application programs 936, other program modules 937, and program data 938. A user may enter commands and information into computer system 920 through keyboard 940, pointing device 942, or other input devices (not shown), such as, for example, a microphone, joy stick, game pad, scanner, or the like. These and other input devices can be connected to the processing unit 921 through input/output interface 946 coupled to system bus 923. Input/output interface 946 logically represents any of a wide variety of different interfaces, such as, for example, a serial port interface, a PS/2 interface, a parallel port interface, a Universal Serial Bus (“USB”) interface, or an Institute of Electrical and Electronics Engineers (“IEEE”) 1394 interface (i.e., a FireWire interface), or may even logically represent a combination of different interfaces.
A monitor 947 or other display device is also connected to system bus 923 via video interface 948. Speakers or other audio output device is also connected to system bus 923 via an audio interface. Other peripheral output devices (not shown), such as, for example, printers, can also be connected to computer system 920.
Computer system 920 is connectable to computer networks, such as, for example, an office-wide or enterprise-wide computer network, a home network, an intranet, and/or the Internet. Computer system 920 can exchange data with external sources, such as, for example, remote computer systems, remote applications, and/or remote databases over such computer networks.
Computer system 920 includes network interface 953, through which computer system 920 receives data from external sources and/or transmits data to external sources. As depicted in
Likewise, computer system 920 includes input/output interface 946, through which computer system 920 receives data from external sources and/or transmits data to external sources. Input/output interface 946 is coupled to modem 954 (e.g., a standard modem, a cable modem, or digital subscriber line (“DSL”) modem), through which computer system 920 receives data from and/or transmits data to external sources. As depicted in
While
In accordance with the present invention, user-interfaces, level of detail modules, layer selection modules, and transformation modules as well as associated data, including business models and transformation schemas, can be stored and accessed from any of the computer-readable media associated with computer system 920. For example, portions of such modules and portions of associated program data may be included in operating system 935, application programs 936, program modules 937 and/or program data 938, for storage in system memory 922.
When a mass storage device, such as, for example, magnetic hard disk 939, is coupled to computer system 920, such modules and associated program data may also be stored in the mass storage device. In a computer network environment, program modules depicted relative to computer system 920, or portions thereof, can be stored in remote memory storage devices, such as, system memory and/or mass storage devices associated with remote computer system 983 and/or remote computer system 993. Execution of such modules may be performed in a distributed environment as previously described.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes, which come within the meaning and range of equivalency of the claims, are to be embraced within their scope.
What is claimed and desired secured by United States Letters Patent is: