The present invention relates to service oriented architecture (SOA). More specifically, it relates to a system and method for analyzing service based systems.
Service Oriented Architecture (SOA) is an architectural paradigm using which software resources can be published as discoverable services on a network. A service is a discoverable entity that exists as a single instance and is capable of providing rudimentary and complex business process operations. The service interacts with applications and other services via a loosely coupled, message-based communication model. A salient feature of the service is its inherent feature of hiding from the user nature of the service implementation module. This enables loose coupling between a service consumer and a service provider. Further, SOA also provides a flexible model which can be integrated using open standard architecture, thereby providing a higher level of abstraction and encapsulation.
Further, SOA enables composition of applications, processes, or more complex services from other less complex services. This enables the usage of diverse services to build applications and processes without considering details and differences of those environments. However, to enable this SOA feature, the services are constructed and exposed using coarse-grained interfaces.
Although SOA is widely used for realizing agile information technology (IT) for various business models, a methodological approach for identifying services to be exposed is needed. Additionally, a methodological approach is needed to determine services characteristics. The service characteristics may be used to measure the utility of offering one set of activities as a service over another set of activities. Additionally, different stakeholders in a business have different perspectives towards service identification. For example, business leaders may be more focused on identifying services which aids in reducing the time to market of a product. However, a chief technology officer may aim for identifying services that aid in business IT alignment. The service characteristics may be further used to cater to the different perspectives of the different stakeholders.
The invention provides a method, system and computer program product for analyzing a service based system. Business model data including one or more activities is received. Each activity includes an action and an entity. Further, the one or more activities are grouped based on one or more similarity estimates between the one or more activities to obtain one or more activity groups. Thereafter, a plurality of service characteristics is determined from the business model data for each activity group. The plurality of service characteristics are used to select all or a subset of the activity groups as one or more candidate services.
The method, system and computer program product described above have a number of advantages. The invention as described above provides various quantitative metrics for analyzing a service based system. The present invention provides an automated system for identifying candidate services. It provides a platform in which various stakeholders (business leaders, technological officers, and so forth) can model and refine services based on quantitative criteria using data from various business models. Additionally, users can model services with a desired granularity, reuse efficiency, work unity, coupling, cohesion, autonomy, composability, and capability density thereby facilitating the realization of service orientation objectives. Further, the present invention enables subsequent to identification, verification of services for reuse across business processes.
The various embodiments of the invention will hereinafter be described in conjunction with the appended drawings, provided to illustrate and not to limit the scope of the invention, wherein like designations denote like elements, and in which:
The invention provides a method, system and computer program product for analyzing service based systems. One or more service characteristics are calculated using business model data. The service characteristics are thereafter used to determine inferences relating to a candidate service identification or a service portfolio evaluation or a service impact analysis, and so forth.
Referring now to
Further, one or more entity tuples are obtained corresponding to the one or more entities corresponding to the one or more activities such that one entity tuple corresponds to one entity. Each entity tuple includes an entity type feature (ET), a second entity state feature (ES), and an entity relationship feature (ER). Each entity relationship feature includes a second entity feature (E), a cardinality feature (C), and a participation feature (P). Further, each entity type feature includes a type of an entity corresponding to the entity tuple, the second entity state feature includes one or more entity states associated with the entity, the second entity feature includes one or more entities associated with the entity. The cardinality feature includes a minimum count of associations of the one or more entities associated with the entity and the participation feature includes a maximum count of associations of the one or more entities associated with the entity.
Referring to the above example of ‘apply for a credit card’ activity which includes the action ‘apply for a credit card’ and the entity ‘credit card application’. The action tuple corresponding to the ‘apply for a credit card’ action may be represented as:
A
apply-for-credit-card
={{P
credit-card-process
},{R
customer
},{E
credit-card-application
},E
credit-card-application
},{T
start
,T
establish-customer-identity}} (1)
where,
Aapply-for-credit-card represents the action ‘apply for a credit card’;
Pcredit-card-process represents the process feature including the one or more processes, viz. credit card process, associated with the activity corresponding to the action tuple;
Rcustomer represents the role feature including the one or more roles, viz. cutomer, associated with the activity;
Ecredit-card-application represents the first entity feature which includes one or more entities, viz. credit card application, associated with the activity;
appliedEcredit-card-application represents the first entity state feature which includes one or more entity states associated with the activity. For example, the state associated with the entity ‘credit-card-application’ is ‘applied’;
Tstart, Testablish-customer-identity represents the transition feature to which the activity transitions, for example, the activity ‘apply for a credit card’ transitions to an activity ‘start’ and to an activity ‘establish-customer-identity.
Further, the format of the entity tuple corresponding to the entity ‘credit-card-application’ may be represented as:
E
entity name
={ET,ES,{C,P,E}} (2)
An exemplary entity tuple may be represented as:
E
credit-card-application={weak,{applied,verified,approved},{1, 1,customer}} (3)
where,
‘weak’ is the ET feature. A weak entity type has the existence dependent on other entity type, while a strong entity type does not have existence dependent on other entity type;
‘applied, verified, approved’ represents the ES feature that includes one or more entity states associated with the entity as represented in the
‘1, 1, customer’ represents the ER feature, in which ‘1’ is the value of
C feature, ‘1’ is the value of P feature, and ‘customer’ is the E feature as represented in the
At step 404, the one or more activities are grouped based on a plurality of similarity estimates between the one or more activities to obtain one or more activity groups. It should be understood by persons skilled the art that to decide upon the similarity between two sets of data, a basis is chosen which is common to the sets that are being compared. In an embodiment of the present invention, Jaccard Distance (JD) is chosen as a similarity estimate to measure similarity between the one or more activities. In another embodiment of the present invention, any other suitable similarity estimate known in the art such as Euclidean distance, Manhattan distance measure, correlation coefficient, probabilistic measures, and so forth is used.
The JD between two action tuples (1) and (4) (mentioned below)
A
establish-customer-identity
={{P
credit-card-process
},{R
back-office
},{E
credit-card-application
,E
customer},{appliedEScredit-card-application,identifiedEScustomer},{Tapply-for-credit-card,Tperform-credit-check}} (4)
is calculated as the distance between the corresponding elements such as P, R, E, ES, and T of the two action tuples (1) and (4). Thus, the JD between the (1) and (4) may be represented as:
JD(1,4)={0,0,0.5,0.5,0} (5)
Since, similarity between the action tuples is the inverse of JD, thus similarity between (1) and (4) can be represented as below:
Similarity(1, 4)=1−JD(1, 4) (6)
Similarly, the similarities between the various entity tuples may be calculated.
Thereafter, a grouping technique is selected for clustering the various activities into activity groups. Each activity group includes a set of similar activities. Various grouping techniques are known in the art such as hierarchical clustering, agglomerative clustering, divisive clustering, and partitional algorithms. In an embodiment of the present invention, any one of the various grouping techniques is used for clustering the one or more activities. Hereinafter, various embodiments of the present invention have been described in conjunction with agglomerative hierarchical clustering used for grouping similar activities.
Subsequent to choosing agglomerative hierarchical clustering as the clustering technique, one or more proximity matrices are obtained corresponding to the one or more activities for each feature (P, R, E, ES, and T) of an action tuple. Exemplary action tuple data is represented in the table—A below:
Using Table—A, various proximity matrices corresponding to each feature of an action tuple are obtained using one of the similarity estimates mentioned above. Tables—B, C, D, and E below represent proximity matrices corresponding to the P feature, R feature, E feature, ES feature, and T feature respectively.
Similarly, an entity proximity matrix is obtained using the entity tuple data. The proximity matrices and the entity proximity matrix are added to obtain a cumulative proximity matrix. Thereafter, the hierarchical clustering is used to group the activities, A1, A2, A3, A4, and A5 based on the proximity values. The activities are merged using any of the known in the art merging techniques such as single linkage, average linkage, and complete linkage. The merger iterations are continued until the activities A1, A2, A3, A4, and A5 are merged into one service cluster.
Referring now to
At step 406, a plurality of service characteristics are calculated for each activity group represented by nodes 302a, 302b, 302c, 302d, 302e, 302f, and 302g. The plurality of service characteristics include a normalized abstraction index (NAI), reuse efficiency index (REI), capability density index (CD), composability index (CI), autonomy index (AI), work unitization index (WUI), and basic modularity index (BMI).
In an embodiment of the present invention, the NAI, which measures the number of functionalities offered by an activity group, is calculated. The NAI enables a software architect to assess an amount of productive work that can be obtained by offering an activity group as a service. Further, the NAI is also related to the granularity of a service. It should be realized by persons skilled in the art that granularity is used to decide the extent to which a service can be reused. Higher the value of NAI, higher is the reusability of the service. Additionally, NAI also indicates the ability of the service to provide high order problem solving capabilities.
The NAI is calculated corresponding to each node of service cluster 300 (refer
where,
d=depth of the node
x=number of activities associated with the node;
y=number of total service offered using the node;
k=number of entities at depth d;
n=number of activities associated the one or more activity groups;
xe=0.5, if entity e is strong;
=1, if entity e is weak;
Normalized Abstraction index for depth d is, NAI=AU×ID (5)
In another embodiment of the present invention, REI is calculated that is related to the ability of reusing the functionality offered by the service as a whole rather than individual functionalities offered by the service. The REI can be calculated using business model data in a manner as described below:
assuming:
A to be a set of the one more activities (A1, A2, A3 . . . ) in service cluster 300 (refer
E to be a set of the one or more entities (E1, E2, E3 . . . ) associated with the service cluster 300;
ES to be a set of entity states (ES1, ES2, ES3 . . . ) corresponding to E such that, ES′ subset of ES→Ai;
S to be a set of services (S1, S2, S3 . . . ) such that∀Sj∃Ai subset of A;
Therefore, REI of Sj is given by the conditional probability of Sj being reused based on reuse event R={R1, R2 . . . } corresponding to ES′ represented as:
P(Sij|R)=P(ES|R)=Σ(ncES)P(ESn|Rn) (6)
P(ESi)=probability of an entity state being used;
P(Ri|ES)=conditional probability of the same entity state being reused;
Ri=reuse event related to entity state ESi;
Applying Baye's theorem the probability of,
P(ES|R)−(P(ESn)P(R|ESn))/(Σ(i−1)′ESk)P(Rk|ES|k))n−1,2, . . . λ (7)
In yet another embodiment of the present invention, CI is calculated that quantifies the ease with which a service can be compounded with one or more services to form a higher granular service. This compounding ease in turn depends on the ease with which one service communicates with other services. It should be realized by persons skilled in the art that this trait of services enables creation of agile solutions by mixing different services on a need basis. The CI may be calculated as: assuming:
A to be a set of the one more activities (A1, A2, A3 . . . ) in service cluster 300 (refer
E to be a set of the one or more entities (E1, E2, E3 . . . ) associated with service cluster 300 such that, E′ subset of E→Ai;
S to be a set of services (S1, S2, S3 . . . ) such that ∀Sj∃Ai subset of A;
P(Ei) to be the discrete probability of occurrence of entity Ei,
Thus, using Kullback-Leibler (KL) divergence, divergence E for service cluster 300 may be calculated as:
It should be understood by persons skilled in the art that KL divergence provides divergence between a uniform probability distribution and the probability distribution (Ei).
Similarly, assuming P(E′i) to be the discrete probability measure of occurrence of entity E∝iεA′□A′→Sj;
Using KL divergence, divergence of E′ for a service Sj may be calculated as:
Thus, calculation of CI for Si may be mathematically represented as:
In still another embodiment of the present invention, Al is calculated that estimates the probability of a service of not being dependent on other services to deliver its functionalities. It should be realized by persons skilled in the art that a service is designated as dependent on other services when the service uses information that has not been generated by that service.
Al may be calculated in the manner as described below: assuming:
A to be a set of the one more activities (A1, A2, A3 . . . ) in the service cluster 300;
E to be a set of the one or more entities (E1, E2, E3 . . . ) associated with service cluster 300 such that, E′subset of E→Ai;
S to be a set of services (S1, S2, S3 . . . ) such that ∀Sj∃Ai subset of A;
PS
PS
Thus, Al of service Sj may be calculated as the conditional probability PS
In still another embodiment of the present invention, WUI, that quantifies a unified work performance exhibited by a service, is calculated. A service is considered exhibiting unity of work performed, when the various entities the service modifies or uses are related.
WUI may be calculated in the manner described below: assuming:
A to be a set of the one more activities (A1, A2, A3 . . . ) in the service cluster 300;
E to be a set of the one or more entities (E1, E2, E3 . . . ) associated with service cluster 300 such that, E′ subset of E→Ai;
S to be a set of services (S1, S2, S3 . . . ) such that ∀Sj∃Ai subset of A;
P(Ei) to be the discrete probability of occurrence of entity Ei;
P(E′i) to be the discrete probability of occurrence of entity E′iεA′A′→Sj;
Thus, WUI of Sj defined as a relative entropy, H(Sj)(E′∥E), between P(Ei) and P(E′i) and may be calculated as:
H
(Sj)(E′∥E)=ΣE′P(E′)ln(P(E′))/(P(E)) (12)
In still another embodiment of the present invention, CDI, that measures probability of number of capabilities in a service, is calculated. The number of capabilities offered by a service depends on the number of activities associated with the service. The number of capabilities offered by the service is normally distributed with respect to the number of activities associated with the service.
Thus, CDI may be calculated in the manner as described below: assuming:
A to be a set of the one more activities (A1, A2, A3 . . . ) in service cluster 300;
S to be a set of services (S1, S2, S3 . . . ) such that ∀Sj∃Ai subset of A;
CDI of a service corresponds to the probability density function f(x) of the distribution of the number of capabilities of the service and x is the number of activities associated with the service.
Further, f(x) for a service may be obtained based on the z-table of normalized distribution where z statistic is obtained using the mathematical expression:
where,
μ=mean of the population space of number of activities associated with a service;
σ=standard deviation of the population space of number of activities associated with the service.
In still another embodiment of the present invention, BMI, that measures modularity of a service, is calculated. BMI is defined as the ratio of the product of an action coupling index and an entity coupling index to the product of an action cohesion index and an entity cohesion index and is calculated corresponding to each activity group.
Thus, BMI corresponding to an activity group (for example a cluster r) may be calculated in the manner as described below by calculating the cohesion index: assuming:
Ar=activities associated with the cluster r and |Ar| is the number of activities associated with the cluster;
Er=entities associated with the cluster r and |Er| is the number of entities in the cluster;
Sr=entity states associated with the cluster r, |Sr| is the number of entity states;
n′=number of relationships among Er;
|Re|=number of relationships associated with an entity e, in which eεEr;
cij=relationship cardinality of an entity;
s=instance of an entity state;
φcct=action cohesion index of the cluster due to structural properties of the activities associated with the cluster;
φent=entity cohesion index of the cluster due to information connectedness (non-structural properties) of the activities associated with the cluster;
xa and xe are experiential variables that determine the influence of structural and non-structural properties respectively on the cohesion and coupling indexes;
Further, the coupling index may be calculated as follows:
At step 408, the one or more service characteristics are selected for analyzing an activity group based on a service analysis objective. For example, when the analysis of the service based system is performed by a business leader, business objectives such as time to market, establish better compliance, establish process integrity, reduce cost, and so forth are chosen as service analysis objectives. Further, when the analysis of the service based system is performed by a technical expert, technical objectives such as rapid aggregation, easier modification, streamlining of processes, and so forth are chosen as service analysis objectives. Based on the service analysis objectives, one or more relevant service characteristics are selected. For example, when the objective is time to market, Al, WUI, and CI are selected as the relevant service characteristics. Further, when establish better compliance is the analysis objective, WUI, REI, and NAI are selected as the relevant service characteristics. Subsequently, the values of the selected service characteristics are compared with corresponding one more predetermined thresholds. Based on the results of the comparison, inferences are determine candidate service identification or service portfolio evaluation or service impact analysis, and so forth. For example, when service identification is being performed, using prior analysis exemplary predetermined thresholds of the various service characteristics are determined to be:
Thus, an activity group having values of NAI, REI, CDI, CI, Al, WUI above the corresponding predetermined thresholds and having the value of BMI below the BMI predetermined thresholds may be offered as a service. Further, the above described service characteristics may be calculated for different subset activity groups of an activity group. Thereafter, a comparison may be made of subset service characteristics with the predetermined thresholds. The activity subsets having service characteristics above the thresholds may be offered as services. In an embodiment of the present invention, a visual interface is provided for modifying each activity group to obtain one or more subset activity groups corresponding to which the various service characteristics are calculated. Thereafter, the selected one or more activity groups or subset activity groups are published as one or more candidate services.
The present invention may also be embodied in a computer program product for analyzing service based systems. The computer program product includes a computer usable medium having a set program instructions comprising a program code for analyzing a service based system. The set of instructions may include various commands that instruct the processing machine to perform specific tasks such as the steps that constitute the method of the present invention. The set of instructions may be in the form of a software program. Further, the software may be in the form of a collection of separate programs, a program module with a large program or a portion of a program module, as in the present invention. The software may also include modular programming in the form of object-oriented programming. The processing of input data by the processing machine may be in response to user commands, results of previous processing or a request made by another processing machine.
While the preferred embodiments of the invention have been illustrated and described, it will be clear that the invention is not limit to these embodiments only. Numerous modifications, changes, variations, substitutions and equivalents will be apparent to those skilled in the art without departing from the spirit and scope of the invention, as described in the claims.
Number | Date | Country | Kind |
---|---|---|---|
1929/CHE/2010 | Jul 2010 | IN | national |