quarta-feira, 18 de novembro de 2015

Chamar relatório JasperSoft Studio/IReport no Java (Eclipse/Netbeans)

Bom dia o/

      Como muitos já devem saber, o programa IReport (programa para criar relatórios visuais em JasperReport) estará encerrando suas atividades a partir de 31/12/2015 e não terá mais manutenções e correções. A empresa Jaspersoft Community deixou então o programa Jaspersoft Studio como ferramenta para criarmos nossos relatórios de agora em diante.
      Pra quem já usava o IReport não deve ter encontrado muita dificuldade em migrar para a nova tecnologia. Mas para outros (como eu xD) que entrei neste universo de relatórios a pouco tempo, me deparei com a pergunta (tenho meu relatório lá bonitinho e super fácil de criar no meu Jaspersoft Studio), e também tenho meu sistema que está precisando de um relatório. Então.. como fazer uma chamada ao relatório através do meu eclipse???
      Primeiro, para quem não sabe como criar seus relatórios com esta ferramenta, vou deixar um vídeo aqui bem explicado pelo pessoal o educandoweb:

https://www.youtube.com/watch?v=xg-WApal1Eo

    Ok, agora o que vocês precisam saber é que o Jaspersoft Studio é um evolução e continuação do IReport, sendo assim as libs (bibliotecas de arquivos .jar) que usávamos no IReport ainda funcionam no Jaspersoft Studio.
    Sendo assim, o que vamos fazer é instalar a IReport e copiar para uma pasta do nosso projeto eclipse os arquivos: xalan.jar (que fica localizado no diretório: C:\Program Files (x86)\Jaspersoft\iReport-5.6.0\ireport\libs) e todos os arquivos .jar do diretório C:\Program Files (x86)\Jaspersoft\iReport-5.6.0\ireport\modules\ext .. como mostra o vídeo também muito bem explicado pelo pessoal do JavaPlugados:
 
https://www.youtube.com/watch?v=Dz91jMjOPQc&index=61&list=PLO38D8juJBEM-zrARo_d3yyUmRZtlFTDr

     O video do JavaPlugados mostra também como chamar o relatório, então é só acompanhar o vídeo.
     Concluindo, não há muita diferença entre o IReport e o Jaspersoft Studio, mas para que os relatório de ambos funcionem precisam ser importadas esses arquivos .jar que mencionei nesta postagem. Como não encontrei os arquivos nas pastas do Jaspersoft a solução que encontrei foi instalar o IReport e usar os arquivos dele =)
     Espero que seja útil para outras pessoas, fiquem na Paz e até a próxima!

     

quarta-feira, 5 de novembro de 2014

Camada de Transporte

     Os serviços da camada de transporte são responsáveis por prover uma conexão ponto a ponto e estabelecer conexão lógica entre a aplicação de origem e a aplicação de destino (quem transmite - quem recebe) de uma rede. Também fazem a segmentação (divisão) e a reconstrução (junção) do fluxo de dados que chegam das camadas superiores.
      A camada de transporte tem muita responsabilidade, pois precisa manter a integridade das informações, por isso, deve haver um controle de fluxo para dar aos usuários uma confiabilidade no transporte das informações ponto a ponto. Para que essa comunicação seja confiável é preciso que haja uma comunicação orientada a conexão e os protocolos envolvidos devem assegurar-se de:
  • Os seguimentos transmitidos são confirmados quando recebidos (acknowledged).
  • Qualquer segmento não confirmado é retransmitidos.
  • Os segmentos são reconstruídos em sua sequencia original.
  •   Uma gerencia do fluxo de dados é mantida para evitar congestionamento, sobrecarga e perda de dados.
      A imagem abaixo ilustra esse mecanismo:


      Operação de controle de Fluxo

        Depois de enviar a solicitação para iniciar a comunicação e receber (se possível) uma confirmação positiva, as  máquinas verificam a conexão periodicamente para ter a segurança de que as informações estão sendo enviadas e recebidas.
      
      Pode haver congestionamento de dados devido a heterogeneidade das máquinas (uma máquina potente pode gerar dados mais rápido do que a infra-estrutura da rede pode transmitir ou a rede pode transmitir mais rápido do que máquinas lentas podem processar) ou porque vários computadores querem acessar um mesmo destino, fazendo com que o caminho para esse destino fique congestionado (como uma estrada cheia de carros causa congestionamento do trânsito). 
      
      Quando uma máquina recebe mais dados do que pode processar ela enviar o excedente para uma memória chamada buffer, esse processo é conhecido como bufferização. Mas esse processo ocorre apenas se houver uma pause no recebimento dados, se a transferência for ininterrupta a memória de buffer se esgotará e qualquer dado que estiver chegando após o esgotamento será descartado, causando perda das informações.
   
      Graças a camada de transporte evitamos que problemas como esse aconteçam, quando a memória buffer da máquina está cheia e não está pronta para receber, ela manda um sinal que não está pronta (not ready), fazendo com que a máquina que está enviando aguarde e não envie mais dados. Após o receptor ter processado os dados da memória buffer ele manda um sinal de transmissão (ready) para que a máquina que está enviando volte a transmissão da onde tinha parado.

      Como dissemos para a comunicação ser confiável é necessário que haja uma confirmação de que os seguimentos (datagramas) enviados foram recebidos. Mas se formos aguardar a confirmação de cada datagrama enviado haveria um atraso gigantesco da chegada dessa informação, resultando numa transmissão de dados baixíssima. Portanto, uma vez que haja tempo, o transmissor envia segmentos antes de finalizar o processamento de cada confirmação.
   
     A quantidade de dados que o transmissor pode enviar antes de receber a confirmação é chamada de Janela (window). O processo chamado Windowing controla a quantidade de informação transferida antes que haja a confirmação. 
   
     Exemplo do processo Windowing: Se a janela tiver tamanho 1, a máquina transmissora espera a confirmação de cada segmento para poder enviar. Se o tamanho da janela for 2, a máquina transmissora pode enviar 2 segmentos antes de receber uma confirmação, e assim sucessivamente.

      Para finalizar o tópico de camada de transporte, não podemos esquecer da Confirmação (Acknowledgement), é a técnica que implica em enviar uma mensagem de confirmação da máquina destino para a máquina origem, caso o recebimentos dos dados tenha sido realizado com sucesso. Podemos comparar com o serviço de correio, assim que o destinatário recebe o produto, ele tem que assinar um protocolo que é enviado ao remetente, garantindo que a correspondência chegou com sucesso!      

Camada de Sessão

      A Camada de Sessão é a camada responsável pela iniciação, gerenciamento e finalização das sessões entre quem transmite e quem recebe as informações. Ela mantém os dados de diferentes aplicações separados, para que não haja bagunça!

Bibliografia:
Filippetti, Marco Aurélio. CCNA 4.1 Guia Completo de Estudo

segunda-feira, 3 de novembro de 2014

Camada de Apresentação

      A camada de Apresentação é a que recebe as solicitações de serviço da camada de aplicação e envia solicitações de serviço para a camada de sessão.
      É responsável pela formatação das informações, as vezes os arquivos precisam ter seu formato alterado para serem compreendidos por outras camadas do modelo, garantindo uma transmissão mais eficiente.
      Também é responsável pela encriptação e decriptação dos dados, compressão e descompressão, enfim, responsável pela semântica e segurança das informações!

Bibliografia:
Filippetti, Marco Aurélio. CCNA 4.1 Guia Completo de Estudo

Camada de Aplicação


      Camada responsável pela interação entre máquina e usuário, típica e conhecida comunicação cliente-servidor. Aplicações mais comuns dessa camada são os navegadores e servidores web (Google Chrome, Internet Explorer, Apache), emails, servidores de banco de dados (MySQL, Oracle, MS-SQL), entre outros.
      Quando estamos usando um navegador web, por exemplo, para acessar um site, este navegador é uma aplicação cliente. Os dados do site estão localizados em um servidor que está rodando uma aplicação servidora, como o Apache por exemplo.

Bibliografia:
Filippetti, Marco Aurélio. CCNA 4.1 Guia Completo de Estudo

Camadas do Modelo OSI

      E aee o/
      Bom vamos falar sobre as camadas do modelo OSI (Open System Interconnection - Norma ISO 7498, publicada em 1984). Como dito anteriormente, o modelo OSI divide as tarefas referentes a transmissão de dados entre máquinas em uma rede em 7 camadas, são elas:

                                                                          
      As camadas superiores tratam dos assuntos relacionados às aplicações, o que significa que são implementadas geralmente em softwares. Já as camadas inferiores tratam de como a transmissão das informações devem ocorrer nos diversos meios físicos possíveis. Vale lembrar que o modelo OSI não faz a comunicação acontecer, ele é apenas um conjunto de normas que sugere um padrão de como a comunicação entre máquinas deve ser feita.
      Vou explicar cada camada em um tópico separado para o texto não se tornar muito grande e cansativo, então basta clicar nos sub-tópicos ao lado para ler a importância de cada camada.
   
Bibliografia:
Filippetti, Marco Aurélio. CCNA 4.1 Guia Completo de Estudo

segunda-feira, 20 de outubro de 2014

Modelo OSI

      Boa noite, revisando um material sobre redes, resolvi voltar a publicar e quem sabe poder ajudar alguém que tem dificuldades no assunto, assim como eu muitas vezes tive.
      Para entender o modelo OSI vamos primeiramente descobrir sua importância. Imagine que é o dono de uma grande empresa de TI (*___*) . As primeiras comunicações de dados só podiam ser realizadas por máquinas de um mesmo fabricante (vamos adotar para nossa empresa a fabricante IBM). Como está sobrando 'dimdim' você resolve expandir seus negócios e comprar outra empresa! Eita coisa boaa!! Mas como nem tudo é perfeito, antes de comprar você não observou que as empresas usavam máquinas de fabricantes diferentes! Nesse caso, muito provável, você nunca consiga a comunicação de dados entre suas empresas e saia num enorme prejuízo.
      Percebendo casos como esse que a OSI (International Organization for Standardization) criou um grupo junto com representantes de diversas marcas com o objetivo de sanar esse problema. Daí começou a surgir o modelo  OSI, onde o foco era padronizar e possibilitar a comunicação de dados independente do fabricante da máquina, do hardware ou do software. Criou-se fases para formatação, organização, transmissão, recebimento e interpretação dos dados, essas fases foram nomeadas 'Camadas'. Por isso quando um sistema utilizada esse modelo sua estrutura é chamada de 'Arquitetura em Camadas'. 
      Vale lembrar que ninguém precisa ficar preso ao modelo OSI, quando um sistema não utiliza este modelo, é chamado de 'proprietário', o ruim disso é a grande chance de ter problemas de compatibilidade com outros protocolos existentes.
      Bom espero ter esclarecido a importância sobre o modelo OSI, quando não encontramos importância no assunto, todo o conteúdo do texto perde sua beleza. Então sempre procurem extrair o que mais chama atenção do que estiverem lendo e motivem-se a partir daí a continuar!
      Nos próximos posts explicarei com detalhes cada camada do modelo OSI. Sei que já devem ter vários sites explicando, mas tentarem, como nesse post, ser o mais claro, divertido e objetivo possível, porque o importante no fim de tudo é a gente entender a 'parada'! rs
      Ah por favor qualquer erro de português ou a respeito do assunto mandem para mim que eu arrumo! (Afinal ninguém é perfeito!) ^^
      Abraço galera, t+ o/  

Bibliografia:
Filippetti, Marco Aurélio. CCNA 4.1 Guia Completo de Estudo