IP Library › Granted Patent US 9,727,311
Granted Patent B2
US 9,727,311 · App. 13/415,163 · Granted Aug 8, 2017

Generating a service definition including a common service action

Inventor: Gary Peter Brown (Hitchin, GB)
Assignee: Red Hat, Inc.
G06F8/10G06F8/35H04L43/18H04L65/1006H04L65/1059
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,727,311
App. No.
13/415,163
Granted
Aug 8, 2017
Kind
B2
Abstract

A method and system for generating a set of service definitions relating to a computer application based on a set of interaction models relating to a set of participants in the interaction models. For each participant, a set of message traces is extracted from the set of interaction models and common message events in each message trace are identified. The common message events are transformed into service actions and a service definition is generated including the service actions. The generated service definition may then be deployed on a suitable computing system, such as, for example, a Service Oriented Architecture (SOA) platform.

Claims (96)

1. A method comprising:

receiving a set of interaction models relating to a participant;

extracting a set of message traces from the set of interaction models;

identifying a common message event in each message trace of the set of message traces, wherein the common message event comprises at least one of a same send message event or a same receive message event;

identifying a subset of message traces of the set of message traces each comprising the common message;

transforming, by a processing device, the common message event into a service action;

generating a service definition comprising the service action;

identifying a plurality of divergent paths emanating from a particular decision point in the service definition;

identifying a same single common service action at an end of each path in the plurality of divergent paths;

creating a merge point joining the plurality of divergent paths, wherein the same single common service action emanates from the merge point; and

adding the merge point to the service definition.

2. The method of claim 1 further comprising:

identifying a distinct message event in the set of message traces; and

adding a decision point to the service definition, wherein the decision point comprises a path for the distinct message event.

3. The method of claim 2 further comprising identifying, for each path, a subset of message traces sharing a common message event.

4. The method of claim 3 further comprising:

identifying an additional common message event in the subset of message traces;

transforming the additional common message event into an additional service action; and

adding the additional service action to the service definition.

5. The method of claim 2 further comprising:

identifying a repeated set of service actions in the service definition;

creating a recursion construct, wherein a recursion path comprising the repeated set of service actions emanates from the recursion construct; and

adding the recursion construct and the recursion path to the service definition.

6. The method of claim 2 further comprising:

identifying a plurality of decision points comprising a common set of service actions performed in different orders in the service definition;

identifying a causal dependency between a set of service actions in the common set of service actions;

creating a concurrent path for each set of causally-dependent service actions and an additional concurrent path for each causally-independent service action; and

replacing the multiple decision points with the concurrent path and the additional concurrent path in the service definition.

7. The method of claim 1 further comprising:

identifying a common path in the service definition;

creating a callable modular construct for each of the common path; and

replacing the common path with the callable modular construct in the service definition.

8. A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to:

receive a set of interaction models relating to a participant;

extract a set of message traces from the set of interaction models;

identify a common message event in each message trace of the set of message traces wherein the common message event comprises at least one of a same send message event or a same receive message event;

transform, by the processing device, the common message event into a service action;

generate a service definition comprising the service action;

identify a plurality of divergent paths emanating from a particular decision point in the service definition;

identify a same single common service action at an end of each path in the plurality of divergent paths;

create a merge point joining the plurality of divergent paths, wherein the same single common service action emanates from the merge point; and

add the merge point to the service definition.

9. The non-transitory computer-readable storage medium of claim 8 , the processing device to:

identify a distinct message event in the set of message traces; and

add a decision point to the service definition, wherein the decision point comprises a path for the distinct message event.

10. The non-transitory computer-readable storage medium of claim 9 , the processing device to identify, for each path, a subset of message traces sharing a common message event.

11. The non-transitory computer-readable storage medium of claim 10 , the processing device to:

identify an additional common message event in the subset of message traces;

transform the additional common message event into an additional service action; and

add the additional service action to the service definition.

12. The non-transitory computer-readable storage medium of claim 9 , the processing device to:

identify a repeated set of service actions in the service definition;

create a recursion construct, wherein a recursion path comprising the repeated set of service actions emanates from the recursion construct; and

add the recursion construct and the recursion path to the service definition.

13. The non-transitory computer-readable storage medium of claim 9 , the processing device to:

identify a plurality of decision points comprising a common set of service actions performed in different orders in the service definition;

identify a causal dependency between a set of service actions in the common set of service actions;

create a concurrent path for each set of causally-dependent service actions and an additional concurrent path for each causally-independent service action; and

replace the multiple decision points with the concurrent path and the additional concurrent path in the service definition.

14. The non-transitory computer-readable storage medium of claim 8 , the processing device to:

identify a common path in the service definition;

create a callable modular construct for each of the common path; and

replace the common path with the callable modular construct in the service definition.

15. A system comprising:

a memory to store a set of interaction models; and

a processing device, operatively coupled to the memory, the processing device to:

receive the set of interaction models relating to a participant;

extract a set of message traces from the set of interaction models;

identify a common message event in each message trace of the set of message traces, wherein the common message event comprises at least one of a same send message event or a same receive message event;

transform the common message event into a service action;

generate a service definition comprising the service action;

identify a plurality of divergent paths emanating from a particular decision point in the service definition;

identify a same single common service action at an end of each path in the plurality of divergent paths;

create a merge point joining the plurality of divergent paths, wherein the same single common service action emanates from the merge point; and

add the merge point to the service definition.

16. The system of claim 15 , the processing device to:

identify a distinct message event in the set of message traces, and

add a decision point to the service definition, wherein the decision point comprises a path for the distinct message event.

17. The system of claim 16 , the processing device to identify, for each path, a subset of message traces sharing a common message event.

18. The system of claim 17 , the processing device to:

identify an additional common message event in the subset of message traces,

transform the additional common message event into an additional service action, and

add the additional service action to the service definition.

19. The system of claim 16 , the processing device to:

identify a repeated set of service actions in the service definition,

create a recursion construct, wherein a recursion path comprising the repeated set of service actions emanates from the recursion construct, and

add the recursion construct and the recursion path to the service definition.

20. The computer system of claim 16 , the processing device to:

identify a plurality of decision points comprising a common set of service actions performed in different orders in the service definition,

identify a causal dependency between a set of service actions in the common set of service actions,

create a concurrent path for each set of causally-dependent service actions and an additional concurrent path for each causally-independent service action, and

replace the multiple decision points with the concurrent path and the additional concurrent path in the service definition.

21. The system of claim 15 , the processing device to:

identify a common path in the service definition,

create a callable modular construct for each of the common path, and

replace the common path with the callable modular construct in the service definition.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2017
From: BROWN, GARY PETER
To: RED HAT, INC.
Reel/Frame 042045/0700 →
Continuity (1)
Related Publication 20130239095A1 · Sep 12, 2013