Dúvida com WebService, Interfaces e serialização de objetos

Bom galera, minha dúvida é o seguinte.
Tenho um WebService que será implementado de duas formas, uma internamente na empresa e uma em um ClientWeb.

Tanto no ClientInterno quanto no ClientWeb eu retorno o mesmo objeto, porém no ClientWeb eu preciso que o objeto tenha algumas limitações, e no interno contenha os dados completos.

Bom, vamos aos exemplos:

Eu tenho uma interface de Professor, que será usada para o ClientWeb

public interface IProfessor{
	String getNome();
}

E tenho uma interface de Professor Interno, que conterá todos os dados do objeto:

public interface IProfessorInternal extends IProfessor{
	String getTelefone();
}

Classes de utilização:

public class Professor  implements IProfessor{
	public String getNome(){
		return "Teste";
	}
}
public class ProfessorInternal extends Professor implements IProfessorInternal{
	public String getTelefone(){
		return "3923";
	}
}

Internamente, no meu webservice, eu sempre estrarei tratando de IProfessorInternal, pois temos todas as informações necessárias e fora do meu service eu terei o tratamento para dizer o que será buscado pelo programa.

Tenho duas dúvidas:
1° - Estou implementando as interfaces e suas implementações da forma certa?
2° - Quando eu for chamar esses objetos fora do meu webservice, se eu instanciar um IProfessor, mesmo tendo um IProfessorInternal no meu webservice, eu irei serializar apenas os dados de um IProfessor ou tudo será trazido pelo programa? Pois dessa forma o ClientWeb teria acesso aos dados do ProfessorInternal apenas fazendo um cast do objeto.

Consegui ser claro o suficiente nas minhas dúvidas e na explicação dos meus problemas? Fico no aguardo de ajuda, idéias e críticas.

Bom, não sei se postei no local certo, ou se consegui colocar bem a minha dúvida. Porém se alguém tiver alguma dica ou sugestão, estamos ai.

Se eu entendi, você deseja que em algumas situações um cliente que irá acessar o seu serviço tenha acesso somente ao método getNome(), já para outros clientes você deseja que o mesmo consiga visualizar getNome() e getTelefone()?

É isto?

exato e pensei em fazer isso utilizando interfaces e herança, pra poder ter algo mais generico e se for necessario uma nova implementação no futuro nao precise ficar mudando tanto o código.

Cara, eu comecei a estudar WebService a pouco tempo, em todos os exemplos que eu li não citava a utilização de herança.

Veja bem, o que um cliente irá visualizar é um xml que fará o meio de campo entre as duas aplicações, assim eu penso que se estiverem disponíveis os dois métodos para o cliente utilizar, você não terá como bloquear um e liberar o outro com o uso de herença. O que eu já é vi nas documentações que li é a utilização de regras para definir permissões de acesso aos métodos.

Leia em:
http://java.sun.com/javaee/5/docs/api/javax/annotation/security/RolesAllowed.html
http://java.sun.com/developer/technicalArticles/J2EE/security_annotation/