Ответ 1
Чтобы изложить ответ Калеба, контракт-первый - это то, где вы создаете WSDL, а затем вы можете создать реализацию из этого, и поскольку WSDL - это ваш контракт, это будет контракт -first.
Контракт-последний - это то, где WSDL создается из исходного кода или реализации, поэтому скорее всего он будет сгенерирован инструментом, а не создан разработчиком.
Update:
Для приятного объяснения с кодом в Java вы можете посмотреть это объяснение из документации Spring 1.5.
http://static.springsource.org/spring-ws/sites/1.5/reference/html/why-contract-first.html
Они обсудят плюсы и минусы, но они будут предвзяты к их подходу, но, я думаю, это хорошее объяснение.