KQML for SOA

I’ve been using this simple pattern for the past year & a half now, to facilitate SOA, & didn’t yet stop to ponder & evaluate how valuable is it.

KQML stands for Knowledge Querying & Modelling Language, & basically defines a simple message structure, that contains fields like:

  • Speech Act
  • Recipient
  • Sender
  • Language
  • Content
  • Ontology

(there are many more fields, but these are the most important.)

I use KQML together with a distributed shared memory (from GigaSpaces), to create a distributed architecture in which many service providers & applications basically converse with each other in order to achieve almost anything. Any piece of code is devoted to sending & receiving messages, calling services, processing them a bit, & sending them forward.

This allows more complex grid like distribution, using mechanisms that load new service providers according to the accumulation of unhandled messages.

What I learnt using this architecture is that the use of semantic-enabled content (e.g., OWL) made the required message processing much simpler: usually, the content is meaningful to all conversing service providers, so they don’t need to modify it much, just behave according to the requested speech act.

It turned out quite useful & simple for integration with service providers: they usually liked the simplicity of the pattern, requirring them only to know which speech acts are supported & what logical content they need.

Overall, KQML yields quite nice SOA, but it isn’t so common & adopted, because most people turn to well adopted standards (e.g., WS, which can be made semantic using OWL-S). I’m going to start working soon on a new architecture requiring much more dynamic & collaborative conversation, which will put KQML to a real test.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s