I'm only addressing only your second question:
2) Why do you need itineraries, can
you not simply create the same using
ports and orchestrations? I am
obviously missing something here.
At the last place I worked, we worked on our ESB for about a year.
The idea of the itenary is that when a message comes into the ESB, it should magically go in the right sequence to the appropriate systems.
With a Business Process Oriented (BPM) system, you typically write an orchestration to direct the flow of logic. In other words, you code the itinerary or path of the message in the orchestration. In the ESB that we built, the business rules decided where the message would go. We still had orchestrations for end-points, but they typically were short and only did mapping and some very basic functionality. In other places I've worked, the orchestrations can be quite large.
So the rules of what to do with the message have to be somewhere. In the ESB, each end-point should be totally agnostic and unaware of the other end-points. The ESB camp presumes that the system needs to change more dynamically without having to redeploy software (i.e. orchestrations). So with our ESB, you could just change the business rules and redeploy them.
Some of the tough issues with an ESB are dealing with transactions, rollback, and usually creating a common error-handling process.
Neal Walters
http://BizTalk-Training.com