Sven Hakan Olsson Composability Index V2

27
Composability Index D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 1(27) www.definitivus.se Sven-Håkan Olsson 20 Composability_Index_v2.xls Only enter alternatives in yel Refer to the Explanation sheet for m Composability Index Name of the SOA interface: SOA Domain (if applicable): Interface version (if applicable): Resulting Composability Index: 7.18

Transcript of Sven Hakan Olsson Composability Index V2

Page 1: Sven Hakan Olsson    Composability  Index V2

Composability Index

D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 1(14)

www.definitivus.se Sven-Håkan Olsson 2008 Composability_Index_v2.xls

Only enter alternatives in yellow cellsRefer to the Explanation sheet for more info

Composability Index

Name of the SOA interface:

SOA Domain (if applicable):

Interface version (if applicable):

Resulting Composability Index: 7.18

Page 2: Sven Hakan Olsson    Composability  Index V2

Composability Index

D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 2(14)

Questionaire

Composability Quality Aspect:

Alternatives: Weight Result

10 0

1 4 4

3 0

1 0

0 0

Aspect result: 41

The ACID problem for updating services

Enter "1" below if the alternative applies, or "0" (or empty) if not.

(Only enter "1" for a single alternative)

(aspect counter)

This is a read-only service interface. Or, all conceivable updates that should be kept together, are kept together inside the service, through internal ACID

Internal ACID is used for related updates that should be kept together, but at rare times, related info is expected to have to be updated via another service "at the same time"

Internal ACID is used for related updates that should be kept together, but sometimes, related info is expected to have to be updated via another service "at the same time"

Internal ACID is used for related updates that should be kept together, but often, related info is expected to have to be updated via another service "at the same time" No internal ACID is used, several service invocations have to be carried out to complete update of related info

1 2 3 4 5

0

2

4

6

8

10

12

Page 3: Sven Hakan Olsson    Composability  Index V2

Composability Index

D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 3(14)

Composability Quality Aspect:

Loop-invocation expectancy

Alternatives: Weight Result

10 01 7 7

4 01 0

0 0

Aspect result: 7

1

Enter "1" below if the alternative applies, or "0" (or empty) if not.

(Only enter "1" for a single alternative)

(aspect counter)

Interface copes with multiple instances of data and also copes with hierarchical data (parent-children) in all ways conceivable. Or, this data can inherently never be multi-instance nor hierarchical.As first alternative, except for rare timesAs first alternative, except for sometimesAs first alternative, except for many timesNever as in first alternative.Or, is in some other way expected to cause a lot of usage loops.

1 2 3 4 5

0

2

4

6

8

10

12

Page 4: Sven Hakan Olsson    Composability  Index V2

Composability Index

D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 4(14)

Composability Quality Aspect:

Coherence vs multi-functionality

Alternatives: Weight Result

2 0

1 10 10

8 0

3 0

0 0

Aspect result: 10

1

Enter "1" below if the alternative applies, or "0" (or empty) if not.

(Only enter "1" for a single alternative)

(aspect counter)

The service interface is strictly coherent and thus always does only one thing. No parameters that could modify the functionality.

The service interface mainly does only one thing. But to a small extent the functionality can be modified through e.g. parameters. The interface name still describes the real functionality.Or, no multi-functionality is conceivable in this case, so strict coherence is fine.

The service interface mainly does only one thing. But to some extent the functionality can be modified through e.g. parameters. The interface name still describes the real functionality.

The service interface mainly does only one thing. But to a large extent the functionality can be modified through e.g. parameters. The interface name still roughly describes the real functionality.The service interface is altogether multi-functional, more of a "channel for verbs" to be sent to the underlying logic.

1 2 3 4 5

0

2

4

6

8

10

12

Page 5: Sven Hakan Olsson    Composability  Index V2

Composability Index

D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 5(14)

Composability Quality Aspect:

Exception-handling quality

Alternatives: Weight Result

10 01 9 9

5 01 00 0

Aspect result: 9

1

Enter "1" below if the alternative applies, or "0" (or empty) if not.

(Only enter "1" for a single alternative)

(aspect counter)

Well structured exception handling. Good return code descriptions. Severity levels. Possible to pass variable texts to consumer for error description. Logging, auditing.As first alternative, but rare exceptionsAs first alternative, but some exceptionsAs first alternative, but many exceptionsNot at all as in first alternative.

1 2 3 4 5

0

2

4

6

8

10

12

Page 6: Sven Hakan Olsson    Composability  Index V2

Composability Index

D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 6(14)

Composability Quality Aspect:

Availability

Alternatives: Weight Result

9 01 10 10

7 03 0

0 0

Aspect result: 10

1

Enter "1" below if the alternative applies, or "0" (or empty) if not.

(Only enter "1" for a single alternative)

(aspect counter)

The service exhibits ultra high availability (through fault-tolerant hw/sw, asynch nature, being well-tested & bug-free etc)As first alternative, but very high availabilityAs first alternative, but high availabilityAs first alternative, but medium availability

As first alternative, but low or unknown availability

1 2 3 4 5

0

2

4

6

8

10

12

Page 7: Sven Hakan Olsson    Composability  Index V2

Composability Index

D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 7(14)

Composability Quality Aspect:

Authorization principle

Alternatives: Weight Result

10 0

1 6 6

3 0

1 0

0 0

Aspect result: 6

1

Enter "1" below if the alternative applies, or "0" (or empty) if not.

(Only enter "1" for a single alternative)

(aspect counter)

Authorization delegation based on a trust principleAs first alternative, but with a small amount of more complicated authorizationAs first alternative, but with some more complicated authorizationAs first alternative, but with a good deal of more complicated authorization

Complicated federated security and authorization mechanism. Big risks of not being interoperable.

1 2 3 4 5

0

2

4

6

8

10

12

Page 8: Sven Hakan Olsson    Composability  Index V2

Composability Index

D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 8(14)

Composability Quality Aspect:

Statelessness

Alternatives: Weight Result

10 0

1 0 0

0 0

0 0

0 0

Aspect result: 0

1

Enter "1" below if the alternative applies, or "0" (or empty) if not.

(Only enter "1" for a single alternative)

(aspect counter)

The service interface is completely stateless (so that it doesn’t rely on other service invocations in a specified sequence)As first alternative, but with a very small amount of statefulnessAs first alternative, but with a small amount of statefulnessAs first alternative, but with a medium amount of statefulnessAs first alternative, but with a large amount of statefulness (e.g. old-style OO interfaces).

1 2 3 4 5

0

2

4

6

8

10

12

Page 9: Sven Hakan Olsson    Composability  Index V2

Composability Index

D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 9(14)

Composability Quality Aspect:

Alternatives: Weight Result

10 0

1 8 8

3 0

2 0

0 0

Aspect result: 8

1

Master Data Management (MDM) support

Enter "1" below if the alternative applies, or "0" (or empty) if not.

(Only enter "1" for a single alternative)

(aspect counter)

The service interfaces' contract states that the service itself takes responsability to notify according to an MDM scheme, should so be needed.

As first alternative, but with a very small amount of MDM tasks having to be done by service userAs first alternative, but with a small amount of MDM tasks having to be done by service user

As first alternative, but with a medium amount of MDM tasks having to be done by service userAs first alternative, but with a large amount of MDM tasks having to be done by service user.Or, that MDM consequences are unknown.

1 2 3 4 5

0

2

4

6

8

10

12

Page 10: Sven Hakan Olsson    Composability  Index V2

Composability Index

D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 10(14)

Composability Quality Aspect:

Semantic clarity

Alternatives: Weight Result

10 01 9 9

3 01 00 0

Aspect result: 9

1

Enter "1" below if the alternative applies, or "0" (or empty) if not.

(Only enter "1" for a single alternative)

(aspect counter)

The service interface contract contains (or refers to) a clear semantic description of its informationAs first alternative, but rare exceptionsAs first alternative, but some exceptionsAs first alternative, but many exceptionsNot at all as in first alternative.

1 2 3 4 5

0

2

4

6

8

10

12

Page 11: Sven Hakan Olsson    Composability  Index V2

Composability Index

D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 11(14)

Composability Quality Aspect:

Canonical information model

Alternatives: Weight Result

10 01 9 9

6 04 0

3 0

Aspect result: 9

1

Enter "1" below if the alternative applies, or "0" (or empty) if not.

(Only enter "1" for a single alternative)

(aspect counter)

The service interface follows a canonical information modelAs first alternative, but rare exceptionsAs first alternative, but some exceptionsAs first alternative, but many exceptionsNot at all canonical, e.g. the information model of the underlying system is instead exposed in the service interface

1 2 3 4 5

0

2

4

6

8

10

12

Page 12: Sven Hakan Olsson    Composability  Index V2

Composability Index

D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 12(14)

Composability Quality Aspect:

Alternatives: Weight Result

1 0

1 7 7

10 0

9 0

1 0

Aspect result: 7

1

Amount of business process logic inside a service

Enter "1" below if the alternative applies, or "0" (or empty) if not.

(Only enter "1" for a single alternative)

(aspect counter)

No business logic inside the service, only CRUD interfaces for information objects.Some business logic behind interfaces. Combined with interfaces for useful CRUD:s.Medium amount of business logic behind interfaces. Combined with interfaces for useful CRUD:s.Complex business logic chunks embedded behind the SOA interfaces. Combined with interfaces for useful CRUD:s.Complex business logic chunks embedded behind the SOA interfaces. No CRUD:s available in parallell.

Comment: This aspect is really about a collection of interfaces, rather than about one single, so several may have to be judged together.

1 2 3 4 5

0

2

4

6

8

10

12

Page 13: Sven Hakan Olsson    Composability  Index V2

Composability Index

D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 13(14)

Sum pageNumber of answers: 11

Sum results 79

Number of aspects: 11

Resulting Index: 7

Page 14: Sven Hakan Olsson    Composability  Index V2

Composability IndexShort explanation

Sven-Håkan Olsson, september 2008www.definitivus.se

The Composability Index is a very simple (but hopefully useful) metric to find out how well a certain SOA service interface works when being used for composition purposes.

The "good-weights" for each alternative (in each quality aspect) that are used in the Index calculation (i.e. the grade given for an answer) can be adapted to different environments, circumstances and architectural principles. It should be between 0 and 10.

When the Excel file is used as a questionaire when reviewing a SOA interface, only the yellow cells are to be changed. One and only one "1" is to be filled in per aspect.

The "aspect counter" column is there just to caclulate the number of quality aspects. Should the number of aspects change (insert/delete of Excel rows) when the Index is adopted to a different setting, this should make the formulae automatic. Thus, one single, fixed "1" is to exist per aspect in that column.A warning message is shown if the number of aspects is not equal to the number of responses, thus that more than one alternative has been entered for a specific aspect.

This Excel file could of course be developed into a much more advanced tool, but probably this simple version will suffice for many cases.

For more details, for example refer to the powerpoint file: SOA_Symp_Amst_Composability_oct08