Sven Hakan Olsson Composability Index V2

  • 453 views
Uploaded on

 

More in: Technology , Design
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
453
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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