I am curious to how best address legacy connection towards services. Note it's a long post.
Consider the following:
1) I have a system, YourFleetManager, that has a service that focusses on Cars in my Fleet (like add Car details like colour and phonekits,nav-systems, but also add new cars)
2) I have another system, RentalOrganiser, that has a service that focusses on Rental agreement (like make reservations etc.)
3) I have a partner that has a legacy system that allows me to obtain driver/chauffeurs, so I can get cars delivered to my clients
4) I have another partner that has a legacy system that allows me to get carmechanics, so I can get some maintenance done.
The legacy systems requires both Rental details (when it starts when it stops), but also car details which are not part of the Rental agreement (let say whether the car has a NAV-system or automatic gear, or is of Model year 2008).
As I cannot change the legacy systems I have a choice/dilemma
1) Build a new system or systems which combine(s) the services from YourFleetManager and RentalOrganiser and connects to the legacy systems
2) Expand either YourFleetManager and RentalOrganiser
Which is better?
Using an ESB might be an anwser, but this is effectivly option 1.
Also if I have 20 more of these legacy integrations the ESB will become an hotspot (testing, development wise). To combat this, I would have to partition the ESB system in smaller pieces, and would end-up with the same question. (Build something new or expand YourFleetManager and RentalOrganiser)
An approach is to make a service/ESB gateway for each legacy system, but this does not offer much reuse, also no forces are present for my partners to move to my new service oriented landscape (i.e. on EA level my fleet and rental services).