Blogged elsewhere

Interoppo Research
(IT Standards & Interoperability)

Linking research & learning technologies through standards » Nick Nicholas

Ἡλληνιστεύκοντος
(Greek Linguistics)

2006-10-31

... to the Alexandria you are losing.

In re: http://cavafis.compupress.gr/kave_20.htm

So at my last day at Melbourne Uni (16 years all up, but who's counting), I adjourn for one last beer or two with a couple of colleagues at the Lincoln, have some very fancy bangers and mash, and hie me thence at 9:30 so I can make it to Readings before closing time, to redeem the gift voucher I managed to talk my "chers collégues, cari colleghi, liebe Kollegen, kjara kollege, xaverim yekarim, дорогий колеги, αγαπητοί συνάδελφοι" into donating. One collected set of Shostakovich symphonies and Bach's collected Passions later, I wander back out onto Lygon St, to make the trek home. On the opposite side of Lygon St, by the entrance of the food court, there's an old man playing Bach on the violin. Not just any Bach, either; he's playing the partita, although he's got a while yet to get to the Chaconne. I've heard him before in the CBD; he's not the best of violinists, but with this, it really is the thought that counts.

Bach partitas at 10 pm as the restaurants close shop. That's what I'm leaving behind...

Review: Pulier & Taylor. Understanding Enterprise SOA.

In re: http://www.manning.com/pulier/

I understand it, enough already! The content of the first half of the book could have been done in twenty pages, and I'm not convinced there's much in there that isn't already in Wikipedia. The authors admit to having committed hype in their past, and their hyping of SOA is still more obvious in the book then they would have liked. Their inclusion of a "Savvy Manager" paragraph to point out problems with SOA is a conscious attempt to redress this bias, but it doesn't go very far.

Ironically, the most concretely useful stuff in the book comes in what should be the fluffiest -- not Part 1, which is supposed to be the technology of SOA but is repetitive hype, but Part 2, which is the business use case study. Not that it couldn't have been done in 20 pages as well, but the contextualisation in a case study and the specific guidelines are welcome. Ch. 13 for example goes through the lumping together of services into a service map, by domain (services associated with a major functional area of the business), and by actor (which processes will the same actor be invoking --- group all of these together in a portal, rather than implementing the separate applications as standalones). Identifying recurring services turns out as expected to be a compelling argument for cutting costs.

To my surprise, there is even a technical point nestled within the business case study: Ch 15.2 --- programming with SOA means you have to concentrate ahead of time on reusability (which is the point of the modularity). (This is natch antithetical to Agile programming, where you don't introduce features you don't immediately need --- like reusability.) This even leads to a revision of the software requirements process: after drafting the software reqs, brainstorm alternative use cases with stakeholders, and spec a web service that will cover these alternatives as well; *then* proceed to develop. ("Developing web services takes longer than developing traditional software. There is simply no way around that.") So to make the service reusable, you incorporate potential uses from stakeholders along with the concrete requirements you already know of from your client.

This is a book for management rather than techos, and it shows. (I miscalculated in the purchase, because the books I was familiar with from Manning's Ottoman Costume series were programming manuals.) Half the book is taken up with the case study narrative, and the beginning half gets very repetitive in going through scenarios hey-presto resolved through SOAs, with virtually no specifics of how it all happens. The book is antithetical to _Mastering your Organisation's Processes_: that book also does case studies, is addressed to management, and evangelises for a solution to business process problems --- but it is hard-hatted, with lots of specifics and concrete guidelines, and real scepticism where appropriate. This book does a little of that in the second half, but still not quite enough to measure up to the other.

In all, services oriented architecture is not that revolutionary an approach --- just modularity writ large, with open-standards SOAP glue rather than proprietary Enterprise Application Integration. I can still envision the specific standards being advocated --- the HTTP protocol, the SOAP, the monitoring of services through SOAP interceptors --- being a transitory matter rather than the thousand-year enterprise solution the book stumbles over itself for. The benefit of service oriented *approaches* to systems design lies only in their emphasis on services as modules, and the protocols for them to interact; what these modules look like, and even whether they remain truly modular, or glued over the web, is incidental. Or at least, contingent. In that regard, e-Frameworks has chosen its emphasis prudently.

(Yet again, a point lost in the first half of the book, and made in the second, Ch. 16: not only must a real-world SOA deployment prioritise which functions to turn into services first, but there are some functions that it makes no sense to turn into services --- they'll never get reused, they're working just fine, they're too tangled up in the current business logic. In fact, implicit in the criteria proposed for which functions to prioritise for SOA --- migration likelihood, isolation from other functions, flexibility and reusability --- there is an underlying criterion implicit, though its correlation is not 100%: complexity. Or as the authors put it, simple business logic functionality. The more tangled a function is, especially in terms of program logic, the less easy it will be to pull out into a *reusable* module, the less flexible it will be to disparate use contexts, and the less likely anyone is going to want to reimplement the whole thing as a migration in the first place. Which has a bearing on establishing the granularity of services: they won't be 2 + 2 level, but they will still be more fine-grained than the minimum.)

The book does have one cautionary note it sounds enough: security concerns make everything more difficult, and SOA is not at a stage yet where that will take care of itself.

The performance hit of packing and unpacking XML is also non-negligible, and something I've seen first hand with my attempt to insist on the X(ml) of AJAX in my interface to the Thesaurus Linguae Graecae lemmatiser. (XML decoding brings Safari to its knees for a big or complex enough chunk of XML; writ large the same can happen in an enterprise, and Robby Robson's scenario of a new identifier minted per microsecond is not going to fly with real-time SOAP.) A web service can be all things to all comers with a transparent WSDL; but there needs to be a business case to be made that it should be, since there are penalties for opening things up like that: not just performance, but accountability as a maintainer --- managing an Open Source toolkit is no sinecure.

And since I'm not immune to style --- a thousand times the Very British, martini-dry humour of _Mastering your Organisation's Processes_, over the Dorothy Dixers in the starting paragraphs of each chapter here.

Review: Robertson & Robertson: Mastering the Requirements Process

In re: http://www.amazon.com/Mastering-Requirements-Process-Suzanne-Robertson/dp/0201360462

A nicely methodical textbook, with overview, step-by-step breakdowns, and some needed contextualisation. The authors are sympathetic to agile development, and tailor their advice to analysts going down that path; but they recognise the tension between agile development and explicit requirements, and insist that requirements come from the whiteboard, not the keyboard, even if you needn't produce a form document of requirements at the end. (So agile projects do pen scenarios, because they need to understand the reqs; they just don't turn those scenarios into formal functional requirements, because understanding needn't mean writing up.) More generally, repeated emphasis on abstracting the requirements spec from particulars of implementation, and modelling enough of the business to discern how the product will fit into the ecology (although that's closer to O'Connell et al.'s worldview).

The requirements specification has a very useful way of identifying application scope from your business analysis:

* A business event is a single external stimulus (from an adjacent system, be it actor or automated), which triggers a response: a finite sequence of activities within the work (the business). This response is a business use case; as much as possible, it is autonomous from the other business use cases in the system.

* A system carries out several use cases, just as a Service Usage Model has several columns.

* The analyst gets to choose the scope of the business use case: narrowly within a computer system, or preferably closer out to the actor. The more stuff going on is encapsulated by the business use case, and the blacker the box as far as the actor is concerned, the more flexibility in design is afforded.

* The *product* use case scenario is the stuff going on in the business use case that you choose to automate.

So a business use case is a single activity diagram, with a single trigger as input. Its implementation will involve products with interfaces: these products would be service expressions in e-Framework terms, or sequences thereof, as Rehak points out. They also involve wetware and piping binding the service expressions into a column of the Service Usage Model; that can and will be outside e-Framework scope. So a service expression specifies a module of working code; and working code (either a single module, or a concatenation thereof) is an implementation of a product, which carries out a subset of the activities specified as a use case within the business process --- but do not necessarily exhaust it: the system still involves actors, after all.

The size of the product --- how much of the business use case, the process, it incorporates --- is a design decision, and would not be deterministic. The discovery of the entire business system, including the adjacent systems to interact with it, enables a well-informed decision on product scope. But the scope of the service expression is a judgement call:

"To make decisions about the product boundary for this business use case, we need to define the constraints. [These are physical and policy constraints which are going to be specific to the business.] We also need input from the stakeholders who understand the technical and business implications and the possibilities for the product boundary along with the business goals for the project." (p. 151)

Note (and I was surprised to realise this, but shouldn't have been) that the activities in the use case to be incorporated into the product need not be sequential. The example given is of an airport passenger check in. Use case (done as scenario):

1. Locate reservation in the system.
2. Identify passenger.
3. Check passport.
4. Attach frequent flyer points.

The product goes from 1 to 4; it does not do 2 and 3, which are the business of a different system, talking to different databases with different authorisation. So the choreography of services into a product is a matter of timing (1 > 2 > 3 > 4) and interface (2 -> output -> 3); but the identification of distinct services is only a matter of interfaces: when in the use case the product is going to get hold of the data doesn't matter to what services go into the product. I know how to do 1 and 4; 2 and 3 are an external, adjacent system I will put myself on hold for.

So no neat mapping from business process map to services map. Well, that's no surprise, but makes life more interesting.

2006-10-26

The tale of φαῖο

In my capacity of working on the lemmatisation of Greek for the Thesaurus Linguae Graecae project, verbs are much more of a hassle than nouns, because Greek verbs just have more latitude to do idiosyncratic stuff than nouns. The running joke with Greek verbs, in fact, is that there is no such thing as a regular verb; even λύω, so favoured in textbooks as an exemplar (because its root ends in upsilon, one of the few consonants or vowels not to cause grief when it is juxtaposed to the tense suffixes), has variable length on that upsilon depending on the tense. However, the truly, insanely, every person is its own story verbs --- i.e. the athematic irregulars: εἰμί, εἶμι, ἠμί, φημί --- had already been covered by the lemmatiser I've been elaborating; and since they require a lot more deep Greek than I'm comfortable with, I've usually managed to steer clear of them. It doesn't help that these verbs are so irregular, that the lemmatiser deals with them in a completely different way from other verbs: they're basically treated not as stems + a class of suffixes, but each as their own set of suffixes, from scratch.

And so it was that a perfect storm of irregularities had me scratching my head for a full hour with a single verb in Moschus. Not a long verb, actually a rather short verb; which in Greek hurts you rather than helps you, because you can't, like, buy a vowel to work out what's going on. In fact, my problem was there were too many vowels. The verb was φαῖο, and it shows up in the following passage

αὐτὰρ ὃ μειλίχιον μυκήσατο· φαῖό κεν αὐλοῦ
Μυγδονίου γλυκὺν ἦχον ἀνηπύοντος ἀκούειν
(Moschus, Europa 97-98)


I have no idea what phaîo means. Neither does my lemmatiser. The thing doesn't look like a verb; but it looks like an Ancient Greek noun even less. I look for dictionary entries sarting with φα- that might help me make sense of this; no such luck. I leaf through my Smyth and (paper) Kühner-Blass grammars --- respectively the basic English and ludicrously detailed German grammar of Greek; no go. Now, in the cis-webic age, Google knows all, so I pop into the Project Gutenberg translation of Moschus to see if it would help; Moschus is writing bucolic Greek --- meaning Doric or Aeolic mooshed with Epic, and damn me if I have any idea what the mooing is about. The Gutenberg edition of the bucolic poets is old and out of copyright enough to be unhelpful at times -- Theocritus 30 is completely missing (and in the other Gutenberg Theocritus, the translator pretends it's addressed to a girl); but the Moschus passage has made it, moo and all:

Then he lowed so gently, ye would think ye heard the Mygdonian flute uttering a dulcet sound.


Nice to know bestiality wasn't as big a deal to the translator. OK, so φαῖο means "you think". Nope, still not getting it. I spend half an hour, uninformed Modern Greek speaker that I am, trying to yoke it to φαίνομαι "seem"; but there's no alchemy that's going to make that nu completely disappear absent a sigma to knock it over. (Keep that sigma in mind, it ends up with a candlestick in the conservatory.)

In desperation, I ask TLG central for a clue; and TLG central sends me the variant readings of the verb in their edition. The variants in the manuscripts are φαῖε, φαίε, and φαίης. Now, I don't know what φαίης means either, but the lemmatiser does: it's the optative active 2nd sg of φημί, "say"; so "you would say". "You would say" means pretty much "you would think"; the same happens in Modern Greek (λες και). Bell goes off in my head, I look at the verb table for φημί in my grammar, and I attain enlightenment.

Here's the perfect storm:



  • First up, the optative is reasonably rare in Greek to begin with, and died early; so with my slapdash knowledge of Ancient Greek, it would be easy for me to have not clicked to it.

  • Second, we have in φαῖο a middle/passive optative, not an active like φαίης. The middle/passive ending for the 2nd sg should have been -iso; but proto-Greek did away with its sigmas between vowels, so all that was left was -io. Which doesn't look like a verb ending I'd be familiar with, and for good reason: Middle Greek ended up putting such 2nd sg passive sigmas back in. (Ancient Greek has lou-omai "I am washed", *lou-esai > *lou-eai > lou-eːi "you are washed"; Modern Greek has restored the forms to lun-ome, lun-ese.)

  • Normally Greek verbs are thematic: they have a vowel, an -e- or -o- depending on the person, between the verb stem and the personal inflection. This means that the optative passive ending is normally -oîo; and -oîo I had seen before enough to recognise. But φημί is one of those irregular athematic vowels --- meaning it's archaic enough not to have a thematic vowel. The -io goes straight onto the verb stem pʰa-. pʰa + io = φαῖο. Because I had not grokked the optative by being force-fed it at school, I wasn't familiar enough with the ending to make the conection.

  • The killer was the change in Moschus. I had actually gone past the description of φημί in Kühner-Blass, who had a generous three or four pages about it, listing all its attested tenses. It turns out that standard, Attic Greek only used the verb for "say" in the active; having it in the middle voice is an other dialect thing, and since we have a lot more Attic than other dialects, we don't have all that many middle voice φημί in our literary texts to begin with. Nonetheless, Kühner and Blass (dunno which one, though Kühner's earlier solo edition is in Google Books) saw fit to include all known middle instances of φημί. They list the indicatives, the list the subjunctives, they list the infinitives, they list the imperatives.

    No optatives listed.

  • Which can only mean one thing. In the 19th century, the editors of Moschus had gone with the common, normal Attic form φαίης. Kühner-Blass is 19th century, and so is Liddell-Scott. When A.S.F. Gow did his new edition of Moschus in 1952, he looked at φαίης and φαῖο, and did what a philologist should: he went with lectio difficilior. (OK, I've got a normal boring Attic optative, and a weird unknown Doric optative. Maybe the scribe who wrote that manuscript thought he'd out-Doric Moschus, so he made φαῖο up. That might have happened, and Kühner-Blass is adamant that that kind of thing has happened with Herodotus. But it is rather likelier that the scribe took one look at Moschus' φαῖο, had the same reaction I did, and plugged in the form of the verb he was much more familiar with.) In doing so, Gow brought back into the corpus a likely authentic Doric optative. But noone is bothering to revise the 19th century grammars, so the grammars won't tell me that.

  • Moreover, the way irregular athematic verbs are handled in the lemmatiser, actives and middles are handled separately, as distinct classes of endings --- whereas normal verbs lump all the possible classes of endings together that would attach to a given tense stem. So it didn't guess at the middle version of the verb, whereas normally it would.



So that's the story of φαῖο. The lemmatiser now knows what the verb means; alas, it's the only instance of a middle optative of φημί in the corpus, but every verb counts (especially when it's in my performance index testbed). Not that I was happy to have been running around for an hour trying to work out a verb I should have grokked immediately. But that's how pioneers work, I guess.

Review: O'Connell, Pyke & Whitehead. Mastering your Organization's Processes.

In re: http://www.cambridge.org/0521839750

This book was looking at Business Process Management (with Capital Letters, since it's a distinct methodology), from a managerial rather than an IT perspective. Though it very occasionally got bogged down in detail of tactical approaches, overall it was a delight to read: judiciously cynical of everyone (especially IT, but also management fads and office politics), with dollops of Very British Wit, a dash of donnish humour, and quite practical about the constraints under which you could end up deploying Business Process Mgt.

It turns out I was mistaken about what this was about: the Management of Business Processes presupposes their analysis, but there wasn't much about the analysis in there --- appropriately so: 1, analysis is what IT does, not management, and 2, with BPM software, you end up doing a lot of the orchestrating of workflow and process components from your desktop yourself. One of the sidepoints for me of the book was making me realise the power of integration --- having absolutely eveything supporting your business processes talking to each other, and being able to reconfigure your processes in a hurry. This was really more big picture stuff than immediately useful, but it gives handy context --- including some quite useful lists of what to look for in management solutions, and it can inform the questions of how you interrogate an organisation's culture.

Did I mention how delightfully cynical it was? Actually, it reminded me of why I hated the 2nd edition of the Camel Book, and liked the 3rd. The 2nd was Larry Wall being wacky and petulant ("Perl is the way is it coz I said so, and aren't I cute"), and I couldn't stand reading it. The 3rd edition brought in a coauthor who actually ended up apologising for Perl's idiosyncracies through the book --- "this looks bizarre, but there is a reason why you might choose to do things that way". That was the edition I was able to read, and it was for a similar reason that I liked this one: I wasn't preached at or evangelised to, but addressed with some respect as a reader mature enough to make my own decisions. And the authors did the right thing by repeating themselves every few chapters and recapping: they are writing for people with short attention spans (they apologise at the start of the book for inadvertently insulting people's intelligence), and that honestly makes for a much more readable book in all. OK, ok, that's my humanities bias again.

Friends wot blog

Twitter Updates

Calendar