Termo usados para gerar relatorios

Alguem pode me explicar esses termos e detalhar suas funcionalidades? Se vc puder mandar o modelo da classe que gera o relatorio ficarei bastante grato!!!
JRBeanCollectionDataSource
HashMap
JasperViewer
DataSource

JRBeanCollectionDataSource: suporte do JasperReports (JR) para ler uma fonte de dados (DataSource) de coleções de Beans (BeanCollection).
Mais detalhes aqui.

HashMap: leia aqui.

JasperViewer: implementação do JasperReports para exibir o relatório em uma janela (é usado geralmente em aplicações Desktop). Análoga à exibição de relatórios em PDF.

DataSource: classe que representa uma fonte de dados qualquer (banco de dados, coleções de Beans, objetos do Hibernate, XML, etc).