Duvidas de conexao JDBC

boa tarde a todos

desde já agradeço toda a colaboração com este tópico.

Minhas dúvidas são meio obvias, mas quero a opnião de vcs:

Cenario:

Em uma determinada máquina(xp) instalei o sqlServer, criei meu banco de dados, fiz um programinha no java pra ele acessar a base
de dados, criar algum registro, salvar, etc…, pela máquina que eu fiz o java que também é a máquina que está meu banco de dados o programa funciona perfeitamente, mas se eu tento acessar ele de outra máquina da esse erro:
the tcp/ip connection to the host 192.168.1.81, port 1443 has failed. error: Connection timed out: connect. Pleasy verify the Connection properties and check that a SQL Server instance is running on the host and accepting TCP/IP connection at the port, and that no firewall is blocking tcp connection to the port.

Pelo que entendi esse erro pode ser casionado pelo fato que nas propriedades do SQL Server o servico TCP está desativado ou o firewall está bloqueando o meu acesso, mas eu ja fiz as configurações pra acesso remoto a base de dados, mas não está funcionando.

a minha url eu estou usando assim:
jdbc:sqlserver://192.168.1.81:1433;databaseName=Agendamento;
onde 192…81 é o ip onde está instalado o SQL Server. Ta certo?

1- Agora a minha dúvida que parece ser meio Obvia… nessa outra máquina que eu estou executando o programa precisa instalar o sql Server tb?

2- Quando se trabalha com banco de dados no java, precisamos estabelecer uma conexao para popular e navegar entre os registros com uma variavel do Tipo ResultSet, então O que é mais aconselhado fazer?

2.1- sempre trabalhar com a populacao dos dados e navegação com o ResultSet e só quando o usuário fechar a tabela ou o frame encerra a conexao?

2.2- prencher uma lista com o ResultSet, encerrar a conexao, navegar e popular os campos com a lista?

Lembrando que mais de uma máquina pode acessar o programa de uma vez.