Designing IA for AI - Information Architecture Conference 2024
Sven Hakan Olsson Composability Index V2
1. Composability Index
www.definitivus.se Sven-Håkan Olsson 2008 Composability_Index_v2.xls
Only enter alternatives in yellow cells
Refer 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
D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 1(14)
2. Composability Index
Questionaire
Composability Quality Aspect:
The ACID problem for updating
services Enter "1" below if the
alternative applies, or
"0" (or empty) if not.
(Only enter "1" for a (aspect
Alternatives: single alternative) Weight Result 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 10 0
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" 1 4 4
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" 3 0
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" 1 0
No internal ACID is used, several service
invocations have to be carried out to complete
update of related info 0 0
Aspect result: 4
1
12
10
8
6
4
2
0
R o w 40 R ow 41 R o w 42 R ow 43 R o w 44
D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 2(14)
3. Composability Index
Composability Quality Aspect:
Loop-invocation expectancy
Enter "1" below if the
alternative applies, or
"0" (or empty) if not.
(Only enter "1" for a (aspect
Alternatives: single alternative) Weight Result 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. 10 0
As first alternative, except for rare times 1 7 7
As first alternative, except for sometimes 4 0
As first alternative, except for many times 1 0
Never as in first alternative.
Or, is in some other way expected to cause a lot
of usage loops. 0 0
Aspect result: 7
1
12
10
8
6
4
2
0
Row 69 Row 70 Row 71 Row 72 Row 73
D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 3(14)
4. Composability Index
Composability Quality Aspect:
Coherence vs multi-functionality
Enter "1" below if the
alternative applies, or
"0" (or empty) if not.
(Only enter "1" for a (aspect
Alternatives: single alternative) Weight Result counter)
The service interface is strictly coherent and thus
always does only one thing. No parameters that
could modify the functionality. 2 0
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. 1 10 10
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. 8 0
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. 3 0
The service interface is altogether multi-
functional, more of a "channel for verbs" to be
sent to the underlying logic. 0 0
Aspect result: 10
1
12
10
8
6
4
2
0
Row 100 Row 101 Row 102 Row 103 Row 104
D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 4(14)
5. Composability Index
Composability Quality Aspect:
Exception-handling quality
Enter "1" below if the
alternative applies, or
"0" (or empty) if not.
(Only enter "1" for a (aspect
Alternatives: single alternative) Weight Result counter)
Well structured exception handling. Good return
code descriptions. Severity levels. Possible to
pass variable texts to consumer for error
description. Logging, auditing. 10 0
As first alternative, but rare exceptions 1 9 9
As first alternative, but some exceptions 5 0
As first alternative, but many exceptions 1 0
Not at all as in first alternative. 0 0
Aspect result: 9
1
12
10
8
6
4
2
0
Row 130 Row 131 Row 132 Row 133 Row 134
D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 5(14)
6. Composability Index
Composability Quality Aspect:
Availability
Enter "1" below if the
alternative applies, or
"0" (or empty) if not.
(Only enter "1" for a (aspect
Alternatives: single alternative) Weight Result counter)
The service exhibits ultra high availability (through
fault-tolerant hw/sw, asynch nature, being well-
tested & bug-free etc) 9 0
As first alternative, but very high availability 1 10 10
As first alternative, but high availability 7 0
As first alternative, but medium availability 3 0
As first alternative, but low or unknown availability 0 0
Aspect result: 10
1
12
10
8
6
4
2
0
Row 161 Row 162 Row 163 Row 164 Row 165
D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 6(14)
7. Composability Index
Composability Quality Aspect:
Authorization principle
Enter "1" below if the
alternative applies, or
"0" (or empty) if not.
(Only enter "1" for a (aspect
Alternatives: single alternative) Weight Result counter)
Authorization delegation based on a trust
principle 10 0
As first alternative, but with a small amount of
more complicated authorization 1 6 6
As first alternative, but with some more
complicated authorization 3 0
As first alternative, but with a good deal of more
complicated authorization 1 0
Complicated federated security and authorization
mechanism. Big risks of not being interoperable. 0 0
Aspect result: 6
1
12
10
8
6
4
2
0
Row 193 Row 194 Row 195 Row 196 Row 197
D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 7(14)
8. Composability Index
Composability Quality Aspect:
Statelessness
Enter "1" below if the
alternative applies, or
"0" (or empty) if not.
(Only enter "1" for a (aspect
Alternatives: single alternative) Weight Result counter)
The service interface is completely stateless (so
that it doesn’t rely on other service invocations in
a specified sequence) 10 0
As first alternative, but with a very small amount
of statefulness 1 0 0
As first alternative, but with a small amount of
statefulness 0 0
As first alternative, but with a medium amount of
statefulness 0 0
As first alternative, but with a large amount of
statefulness (e.g. old-style OO interfaces). 0 0
Aspect result: 0
1
12
10
8
6
4
2
0
Row 225 Row 226 Row 227 Row 228 Row 229
D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 8(14)
9. Composability Index
Composability Quality Aspect:
Master Data Management (MDM)
support Enter "1" below if the
alternative applies, or
"0" (or empty) if not.
(Only enter "1" for a (aspect
Alternatives: single alternative) Weight Result counter)
The service interfaces' contract states that the
service itself takes responsability to notify
according to an MDM scheme, should so be
needed. 10 0
As first alternative, but with a very small amount
of MDM tasks having to be done by service user 1 8 8
As first alternative, but with a small amount of
MDM tasks having to be done by service user 3 0
As first alternative, but with a medium amount of
MDM tasks having to be done by service user 2 0
As first alternative, but with a large amount of
MDM tasks having to be done by service user.
Or, that MDM consequences are unknown. 0 0
Aspect result: 8
1
12
10
8
6
4
2
0
Row 256 Row 257 Row 258 Row 259 Row 260
D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 9(14)
10. Composability Index
Composability Quality Aspect:
Semantic clarity
Enter "1" below if the
alternative applies, or
"0" (or empty) if not.
(Only enter "1" for a (aspect
Alternatives: single alternative) Weight Result counter)
The service interface contract contains (or refers
to) a clear semantic description of its information 10 0
As first alternative, but rare exceptions 1 9 9
As first alternative, but some exceptions 3 0
As first alternative, but many exceptions 1 0
Not at all as in first alternative. 0 0
Aspect result: 9
1
12
10
8
6
4
2
0
Row 287 Row 288 Row 289 Row 290 Row 291
D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 10(14)
11. Composability Index
Composability Quality Aspect:
Canonical information model
Enter "1" below if the
alternative applies, or
"0" (or empty) if not.
(Only enter "1" for a (aspect
Alternatives: single alternative) Weight Result counter)
The service interface follows a canonical
information model 10 0
As first alternative, but rare exceptions 1 9 9
As first alternative, but some exceptions 6 0
As first alternative, but many exceptions 4 0
Not at all canonical, e.g. the information model of
the underlying system is instead exposed in the
service interface 3 0
Aspect result: 9
1
12
10
8
6
4
2
0
Row 318 Row 319 Row 320 Row 321 Row 322
D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 11(14)
12. Composability Index
Composability Quality Aspect:
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 (aspect
Alternatives: single alternative) Weight Result counter)
No business logic inside the service, only CRUD
interfaces for information objects. 1 0
Some business logic behind interfaces.
Combined with interfaces for useful CRUD:s. 1 7 7
Medium amount of business logic behind
interfaces. Combined with interfaces for useful
CRUD:s. 10 0
Complex business logic chunks embedded
behind the SOA interfaces. Combined with
interfaces for useful CRUD:s. 9 0
Complex business logic chunks embedded
behind the SOA interfaces. No CRUD:s available
in parallell. 1 0
Aspect result: 7
Comment: This aspect is really about a collection
of interfaces, rather than about one single, so
several may have to be judged together.
1
12
10
8
6
4
2
0
Row 349 Row 350 Row 351 Row 352 Row 353
D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 12(14)
13. Composability Index
Sum page
Number of answers: 11
Sum results 79
Number of aspects: 11
Resulting Index: 7
D▪E▪F▪I▪N▪I▪T▪I▪V▪U▪S 13(14)
14. Composability Index
Short explanation
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
Sven-Håkan Olsson, september 2008
www.definitivus.se