Soa的服务设计的一点困惑

最近在初学Soa服务设计系统,有一点不是很清楚,具体的情况是这样的:
想设计一个可以做知识问答的服务,其中有Question服务,Answer服务,questionTag服务,我不太明白的地方是,question服务与qustiontag服务,以及answer服务之间的调用如何实现,比如回答一个问题的时候
answer服务,需要获取question相关的信息的时候,是通过question服务(http://application/questionQueryservice?wsdl),
public class AnswerService
{

public void AddAnswer(string htmlBody)
{
//通过web services调用获取
QuestionQueryserviceClient client=new QuestionQueryServiceClient();
var question=client.find(questionId);
etc....
}
}


来获取question,


还是像ddd中的直接取得question相关信息
public class AnswerService
{
private readonly IQuestionQueryService queryService;
public AnswerService(IQuestionQueryService queryService)
{
this....etc....
}

public void AddAnswer(string htmlBody)
{
//因为在一个组件,可以直接注入一个QuestionQueryService实例
var question=queryService.find(questionId);
etc....
}
}

下面的好一些吧,DI可以在客户端调用。不过这跟DDD有什么关系?