Modelo de referência ISO/OSI





   O modelo de referência de rede OSI - Open Systems Interconnection –, foi desenvolvido pela ISO – International Standards Organization – com o objetivo de primeiramente padronizar a maneira de se desenvolver soluções para troca de dados entre redes.

         Lembre-se que ISO é um órgão de padronização internacional e, portanto, monta as “convenções” sobre como as coisas devem ser feitas.
      Portanto, o ISO/OSI permite que empresas diferentes possam desenvolver seus produtos diferentes, baseados neste modelo, e no final esses produtos possam trocar informações entre si.
      O modelo ISO/OSI ou simplesmente OSI tenta padronizar a forma de se transmitir dados para a rede. Isto permite o desenvolvimento de sistemas compatíveis entre si, mesmo sendo de fabricantes diferentes. Isto dá uma ideia de sistema aberto a comunicação com outros sistemas, talvez daí o termo Open.
      Desta forma o modelo OSI é baseado em sete camadas, sendo que cada camada resolve um problema específico relacionado a transmissão de dados em uma rede.
      O tráfego na rede é enviado na forma de pacotes de dados ou pacotes de rede. Um pacote de dados é a informação de um usuário transformado em um formato entendido pela rede.
      Cada camada adicionará informações ao pacote de dados, contudo o pacote de dados não é alterado. As informações adicionadas a um pacote são chamadas de cabeçalho. O cabeçalho de uma camada é simplesmente a informação que detalha o formato do pacote. Esse cabeçalho é recebido na camada correspondente do cliente receptor e é utilizado para entender o formato do pacote.
      A camada física e de enlace seriam implementadas em hardware. As camadas de rede e de transporte seriam implementadas pelo SO. E as camadas que restaram (sessão, apresentação e aplicação) são implementadas como softwares de usuário. Isto é só um exemplo e não corresponde a todas as realidades. Um dispositivo embarcado (uma TV, por exemplo) poderia ter todas as camadas implementas em hardware.
|
Camadas

Física:
      A camada física pega os bits e converte em uma forma interpretável pelo meio de comunicação. “A camada física trata da transmissão de bits brutos por um canal de comunicação”. Se o meio de transmissão for elétrico, essa camada converte os 0s e 1s enviados pela camada de enlace em sinais elétricos a serem transmitidos pelo cabo. Se o meio for óptico, essa camada converte os 0s e 1s dos quadros em sinais luminosos e assim por diante, dependendo do meio de transmissão de dados.
      Conforme Wendell Odon, a camada física define os detalhes elétricos, óticos, de cabeamento, de conectores e de procedimentos requeridos para se transmitirem os bits. Representados como alguma forma de energia se movendo através de um meio físico.

Enlace:

A camada de enlace é a que, a princípio, tem mais tarefas, sendo estas:

● Controle de acesso ao meio físico;
● Detecção de erros;
● Endereçamento físico;
● Impedir que um host mais rápido inunde de informações um host mais lento.

      “A principal tarefa da camada de enlace de dados é transformar um canal bruto em uma linha que pareça livre de erros de transmissão... Outra questão que surge na camada de enlace de dados (e na maioria das camadas mais altas) é como impedir que um transmissor rápido envie uma quantidade excessiva de dados a um receptor mais lento... As redes por difusão têm um problema adicional a ser resolvido na camada de enlace de dados: controlar o acesso ao canal compartilhado”.
      Odom diz o seguinte sobre a camada de enlace: “Formata dados em frames apropriados para transmissão através de alguma mídia física. Define regras para quando a mídia pode ou não ser usada. Define meios pelos quais se pode reconhecer erros de transmissão”.

Rede:

      A camada de rede é responsável pelo endereçamento e roteamento. O endereço da camada de rede é lógico (normalmente armazenado em uma memória secundária), o endereço físico é tratado pela camada de enlace conforme já vimos. A camada de rede controla a operação da sub-rede.
      Uma questão fundamental de projeto é determinar a maneira como os pacotes são roteados da origem até o destino... O controle de congestionamento também pertence à camada de rede... Qualidade de serviço também é uma questão da camada de rede... Talvez a segunda rede não aceite o pacote devido a seu tamanho excessivo... Cabe à camada de rede superar todos estes problemas. Odom cita que a camada de rede faz: “Endereçamento lógico, roteamento e determinação de caminhos”.

Transporte:

      A camada de transporte é responsável pelo controle lógico dos dados, que pode ser orientado a conexão e não orientado a conexão. O meio de transporte orientado a conexão se preocupa com a entrega correta de dados. Já o meio de transporte não orientado a conexão não se preocupa com os dados, ou seja, não corrige possíveis erros.
      A camada de transporte determina que tipo de serviço deve ser fornecido ao usuário/aplicação. O tipo de conexão de transporte mais popular é um canal ponto a ponto livre de erros que entrega mensagens ou bytes na ordem em que eles foram enviados. No entanto é possível outro, que entrega mensagens isoladas sem nenhuma garantia relativa à ordem de entrega. O tipo de serviço é determinado quando a conexão é estabelecida.
      Sobre a camada de transporte Odom, diz: Fornece uma variedade de serviços entre dois hosts, incluindo o estabelecimento e a finalização da conexão, controle de fluxo, recuperação de erros e segmentação de grandes blocos de dados em partes menores para transmissão.

Sessão:

      A camada de sessão estabelece uma sessão entre origem e destino. Odom fala que a cada sessão estabelece e mantém fluxos bidirecionais de um terminal a outro. Inclui o gerenciamento de fluxos de transação. A camada de sessão define como iniciar, controlar e finalizar sessões.
      Já Tanenbaum comenta que a camada de sessão permite que os usuários de diferentes máquinas estabeleçam sessões entre eles. Uma sessão oferece diversos serviços:

● Controle de diálogo: mantem o controle de quem deve transmitir em cada momento;
● Gerenciamento de token: impede que duas partes tentem executar a mesma operação crítica ao mesmo tempo;
● Sincronização: realiza a verificação periódica de transmissões longas para permitir que elas continuem a partir do ponto em que estavam ao ocorrer uma falha.

Apresentação:

      A camada de apresentação faz tradução de dados, também poderia ser chamada de camada de tradução.
      Odom explica que a camada de apresentação define o formato e a organização dos dados. Inclui criptografia. Sendo o propósito principal desta camada definir e negociar formatos de dados.
      Já Tanenbaum diz que, diferente das camadas mais baixas, que se preocupam principalmente com a movimentação de bits, a camada de apresentação está relacionada à sintaxe e à semântica das informações transmitidas. A camada de apresentação gerencia diferentes estruturas de dados abstratas e permite a definição e o intercâmbio de estruturas de dados de nível mais alto.

Aplicação:

             A camada de aplicação é a interface entre o usuário e a rede e vice-versa. Neste caso o usuário na maioria das vezes não é quem usa o computador propriamente dito, mas sim, um software.
        Tanenbaum explica que a camada de aplicação contém uma série de protocolos comumente necessários para os usuários. Um protocolo de aplicação amplamente utilizado é o HTTP, que é a base para a Internet.
       Já Odom comenta que a camada de aplicação fornece uma interface entre o software de comunicação e quaisquer aplicativos que precisem se comunicar fora do computador no qual o aplicativo reside. Ela também pode definir os processos para autenticação do usuário.
          Essa camada é responsável por interagir com o aplicativo de usuário, ela aceita os dados do aplicativo a partir do aplicativo de software e fornece o serviço de aplicativo de rede que é responsável pela solicitação do usuário.

Fonte: Internet

Herança e Polimorfismo

Herança, em si, permite definir uma classe geral e, em seguida, classes mais especializadas; simplesmente por adicionar novos detalhes à definição da classe mais geral.


Uma classe mais especializada herda as propriedades da classe mais geral, sendo assim necessário apenas definir as novas características desta.

A Herança é algo muito importante no desenvolvimento, além de com ela você poder reutilizar o código, você pode inda ter um conceito maior de encapsulamento. Imagine como se fosse um banco de dados relacional, com certeza antes devemos projetar o banco para ver como ele ficará. Com sistemas orientados a objetos é da mesma forma.

Polimorfismo, de forma geral, significa "várias formas". Numa linguagem de programação, isso significa que pode haver várias formas de fazer uma "certa coisa". Essas 'certas coisas' são chamadas de métodos. Polimorfismo significa que uma chamada de método pode ser executada de várias formas (ou polimorficamente). Quem decide "a forma" é o objeto que recebe a chamada.
 
Fontes:
http://walfredo.dsc.ufcg.edu.br/cursos/2003/progII20031/aulas/o_que_e_polimorfismo.htm
http://pwp.net.ipl.pt/cc.isel/cvaz/Textos/POO/Heranca.pdf
http://www.plugmasters.com.br/sys/materias/285/1/Heran%E7a-e-Polimorfismo
http://www-usr.inf.ufsm.br/~rose/curso3/cafe/cap4_Polimorfismo.pdf

Regimes Totalitários: Por quê?

Com o fim da Primeira Guerra Mundial, a Europa teve de enfrentar uma de suas piores crises econômicas. O uso do território europeu como principal palco de batalha acarretou na redução dos setores produtivos e inseriu a população de todo continente em um delicado período de pobreza e miséria. Além dos problemas de ordem material, os efeitos da Grande Guerra também incidiram de forma direta nos movimentos políticos e ideologias daquela época.

Como seria possível retirar a Europa daquela crise? Essa era uma questão que preocupava a população como um todo e, com isso, diversas repostas começaram a surgir. Em um primeiro momento, a ajuda financeira concedida pelos Estados Unidos seria uma das soluções para aquela imensa crise. No entanto, as esperanças de renovação sustentadas pelo desenvolvimento do capitalismo norte-americano foram completamente frustradas com a crise de 1929.

Dessa maneira, a sociedade europeia se mostrava completamente desamparada com relação ao seu futuro. As doutrinas liberais e capitalistas haviam entrado em total descrédito mediante sucessivos episódios de fracasso e indefinição. Paralelamente, socialistas e comunistas – principalmente após a Revolução Russa de 1917 – tentavam mobilizar a classe trabalhadora em diversos países para que novos levantes populares viessem a tomar o poder.

A crise, somada às possibilidades de novas revoluções populares, fez com que muitos vislumbrassem uma nova onda de instabilidade. Foi nesse momento em que novos partidos afastados do ideário liberal e contrários aos ideais de esquerda começaram a ganhar força política. De forma geral, tais partidos tentavam solucionar a crise com a instalação de um governo forte, centralizado e apoiado por sentimento nacionalista exacerbado.

Apresentando essa perspectiva com ares de renovação, tais partidos conseguiram se aproximar dos trabalhadores, profissionais liberais e integrantes da burguesia. A partir de então, alguns governos começaram a presenciar a ascensão de regimes totalitários que, por meio de golpe ou o apoio de setores influentes, passaram a controlar o Estado. Observamos dessa forma o abandono às liberdades políticas e ideológicas sendo enfraquecidas pelo apelo e a coesão requeridas por governo de caráter autoritário.

Na Itália e Alemanha, países profundamente afetados pela crise, o nazismo e o fascismo ascenderam ao poder sob a liderança de Benito Mussolini e Adolf Hitler, respectivamente. Na Península Ibérica, golpes políticos engendrados por setores militares e apoiados pela burguesia deram início ao franquismo, na Espanha, e ao salazarismo, em Portugal.

Em outras regiões da Europa a experiência totalitária também chegou ao poder pregando o fim das liberdades civis e a constituição de governos autoritários. Na grande maioria dos casos, a derrocada do nazi-fascismo após a Segunda Guerra Mundial, serviu para que esses grupos extremistas fossem banidos do poder com o amplo apoio dos grupos simpáticos à reconstrução da democracia e dos direitos civis.