2007-03-21

+

Tudo está onde deve estar e vai para onde deve ir: o lugar assinalado por uma Sabedoria que (os Céus sejam louvados) não é a nossa!

/ This post is bilingual: Portuguese (Portugal) and English (U.S.) /

Everything is where it should be and goes where it should go: a place signaled by a Wisdom that (Heaven be praised) is not ours!

2007-03-12

In software development, "think global, act local"

"Think global, act local" is a management motto for multinational corporations used very often in the 1980s.

One of these days I was explaining some students how to start working on a project and I told them this sentence.

The logic is: you have to think about the project as a whole taking all requirements into account - hence, "think global" - but when developing, you must break up the large problem in smaller problems and they work on each one, one at a time, testing and consolidating - "think local".

2007-03-09

Schema management in Web Services

A Web Service is specified by a WSDL contract that defines types using XML Schema.

For basic services - like Hello World, Calculators, etc - it is sufficient to have a single, embedded schema in your contract.
However, for useful, real-world, services you need to take schema management into consideration, otherwise you end up with lots of replicated data structures. You should have, at least, the following indirection levels:

WSDL operations
depends on
XSD operations input and output
depends on
XSD domain entities

The domain entities should be shared in meta-data repository, to avoid uncontrolled replication.
For controlled replication, you can use data catalogs, that work as a schema cache, not as a schema copy.

2007-03-05

Message Queues in 1 minute

Message queues are a communications model between multiple parties: one-to-one, one-to-many or many-to-many.

A queue is a first-in first-out data structure.

Message brokers are servers that assure the following properties for messages: they don't get lost; they are persistent; they are delivered in order.

Message queues enable asynchronous communication, because the sender doesn't have to wait for the receiver, as they connect to each other through the message brokers.