O que é data source?

para conectar com o banco …
carrega o driver Class.forName…
cria conexão Connection con = Driver.manager…
cria um statement para execuatr querys
ou prepared para inserts
bla bla bla …

quero saber o que é e onde entra um data source na minha conexão com o banco

O javadoc dessa interface da uma boa idéia para o que ela serve.

Quem faz esses passos que você citou não é o datasource, são seus próprios objetos.
Datasource é quem guarda as configurações e demais informaçãoes necessárias para sua conexão(ou qualquier outro recurso da aplicação, tipo ejb-jar.xml)

esse passoa passo de conexão eu entendo que cada objeto tem seu papel
mas onde eu utilizo o DS ?
qual a função dele se sem ele eu conecto com o banco ?

O data source é uma forma de você não deixar as configurações de conexão com o banco fixas no seu código(hard-coded), e ao menos eu nunca vi uma implementação de pool de conexões que não utilizasse datasource

então é uma classe que eu vou criar implementa a interface datasource, serve para guardar configurações do banco
o meu pol vai instanciar essa classe varias vezes
é por ai ?

Na verdade o data source geralmente é um arquivo xml, e a implementação da classe data source é quem lê este arquivo e carrega as informações.

ja da pra começar
thank you

Um exemplo aí pra testar com o Tomcat:
http://tomcat.apache.org/tomcat-4.1-doc/jndi-datasource-examples-howto.html