SETIS- III Seminário de Tecnologia Inovação e Sustentabilidade 4 e 5 de novembro de 2014. ____________________________________________________________________________ Sistemas distribuídos: reflexões teóricas Rodrigo Venturi [email protected] Resumo: O objetivo deste artigo é mostrar algumas características de um sistema distribuído. Para isso foi realizada uma pesquisa bibliográfica considerando os seguintes temas: objeto distribuído, CORBA, ORB. Com base nessa reflexão é viável também destacar a “transparência” do sistema distribuído como uma das características mais importantes. Palavras chave: Sistemas distribuídos. CORBA. Características. 1 Reflexões acerca da temática Quando o sistema é de grande escala, ou seja, que demanda uma grande quantidade de processamento para lidar com um grande volume de dados, um computador sozinho não tem a capacidade de executá-lo a contento. A resolução desse problema, tanto do ponto de vista de hardware como de software, passa pela distribuição desse sistema. Ou seja, um sistema distribuído. Segundo Souza (2010), pode-se identificar um sistema distribuído pelas suas principais características em hardware e software, conforme a seguir. 1 - O compartilhamento de recursos: elementos que podem ser compartilhados tanto na parte do hardware (como impressoras, discos rígidos) e também na parte de software (como banco de dados, arquivos e compiladores). O compartilhando tem uma grande redução de custos para a empresa que está utilizando o sistema. 2 - Transparência: é outra característica relevante quando se pensa em sistemas distribuídos. Isto porque quando o usuário está navegando pelo sistema, ele não sabe se está ou não em um sistema distribuído. Os tipos de transparência mais comuns encontrados são: 2.1 - Acesso: quando é possível acessar ou interagir com um recurso dentro do sistema. Precisa-se de um meio para que faça essa comunicação, a transparência de acesso, neste caso, vai caracterizar a forma de acesso ao recurso. 2.2 - Localização: dados como o local de origem do recurso, não têm uma importância para o usuário final. O usuário apenas quer que o recurso esteja 182 SETIS- III Seminário de Tecnologia Inovação e Sustentabilidade 4 e 5 de novembro de 2014. ____________________________________________________________________________ funcionando de uma maneira correta, não importando se este está localizado no Brasil ou na China, por exemplo. 3 - Migração: com o uso constante da internet é bem provável que se tenha instabilidades quando um recurso precisa ser migrado de um servidor. Então, é necessário que haja transparência quando ocorrer essa migração, sendo que o usuário não pode perceber nenhum tipo de instabilidade no sistema e no uso deste recurso durante a migração. 4 - Segurança: um sistema distribuído precisa ser confiável. Não pode ocorrer, por exemplo, uma falha no sistema enquanto o usuário está utilizando ou compartilhando-o. Com estas características pode-se identificar um sistema distribuído. Com destaque para a característica de segurança quando as falhas não podem ocorrer. Se o sistema é distribuído, quando há uma falha em um determinado servidor, ela se espalha e será muito mais complexo resolver este problema. Outra característica muito importante é a transparência, em que o usuário está em um sistema distribuído, mas ele não pode percebê-lo como tal, como, por exemplo, quando certa funcionalidade do sistema está mais demorada que a outra pelo fato dela estar localizada em regiões geográficas distantes. No conceito de sistemas distribuídos uma dos paradigmas mais importantes envolvidos do ponto de vista de software, é a Orientação a Objetos (OO). A junção de Orientação a Objetos e Sistemas distribuídos origina os Objetos Distribuídos. A indústria de objetos distribuídos vem crescendo rapidamente e tem o potencial de ultrapassar a indústria de banco de dados se tornando então o maior e principal comércio na computação. (MAINETTI Jr., 1997) Objetos Distribuídos é basicamente usar a tecnologia de orientação a objetos em um ambiente distribuído. Como estas duas tecnologias já estão se transformando em realidade atual na grande maioria das empresas, será uma evolução natural. OD começou a sua trajetória através do middleware (a parte de software responsável pela intercomunicação entre os vários componentes distribuídos em uma rede), mas hoje está invadindo todas as áreas, inclusive a Internet (MAINETTI. 1997. p.6). Destaca-se que os objetos distribuídos se comunicam através de um sistema em rede ao invés de interagir apenas em certa máquina. Neste sentido, existem várias arquiteturas de ambientes que suportam sistemas distribuídos como DCOM, RMI e 183 SETIS- III Seminário de Tecnologia Inovação e Sustentabilidade 4 e 5 de novembro de 2014. ____________________________________________________________________________ CORBA. Estas tecnologias são as mais utilizadas e conhecidas, contudo no restante do artigo será dado maior ênfase ao CORBA que é o principal ambiente para a utilização do sistema distribuído (LUNG, 2001). O CORBA foi desenvolvido pela OMG é um grupo de gerenciamento de projetos sem nenhum fim lucrativo e tem como principal objetivo estabelecer guias para o gerenciamento de objetos. A OMG foi fundada em 1989 e hoje conta com mais de 750 empresas ligadas a ela. (LUNG, 2001) Umas das principais ajudas que a OMG trouxe para as empresas é o padrão CORBA. Esse padrão define como objetos devem operar em um ambiente distribuído. O CORBA tem como principal característica o mecanismo de troca de mensagens entre os objetos em um ambiente de objetos distribuídos assim um objeto pode acessar a interface de outro e adquirir todas suas funcionalidades. O ambiente CORBA é muito propício para a “proliferação” de componentes, pois ele nos garante uma alta interoperabilidade entre objetos independentemente da linguagem e sistema operacional no qual são implementados, o que serve muito bem ao paradigma CBD. Além disso temos também o fato de que dentro do ambiente CORBA os objetos estão encapsulados e só ente suas interfaces são visíveis. Portanto, quando falamos em CORBA devemos ter em mente estas características dos objetos que “vivem dentro” deste ambiente e entendê-los como Componentes (BESSANI, on-line). O ORB é o núcleo de um CORBA que permite que objetos sejam chamados de lugares remotos e transparentemente ligados a outros objetos. A cada requisição de objetos que o usuário fizer, o ORB que vai ser responsável por intermediar o cliente com o sistema. Uma das principais características de um ORB CORBA é a associação das linguagens. O ORB CORBA permite utilizar linguagens de alto nível como C++, Java entre outras. Ela também permite criar seus objetos em qualquer outra linguagem que, mesmo assim, eles poderão se comunicar entre si. A Figura 1 mostra um sistema distribuído do ponto de vista de hardware e software. Figura 1 – Exemplo de sistemas distribuídos 184 SETIS- III Seminário de Tecnologia Inovação e Sustentabilidade 4 e 5 de novembro de 2014. ____________________________________________________________________________ Fonte: Adaptado de Pinto (2010) Um bom exemplo de sistema distribuído pode observar na imagem da Figura 1, que apresenta vários servidores interligados ao redor do globo com objetos distribuídos rodando dentro deles. Um dos principais e conhecidos sistemas distribuídos é o Facebook. Nessa rede social existem centenas de milhares de pessoas conectadas ao mesmo tempo, são adicionadas aproximadamente 100 milhões de fotos pelos usuários todos os dias e 30 bilhões de informação sendo compartilhada. Agora será que todo esse processamento seria possível se toda essa carga de informação fosse direcionada para um único computador? Por isso, que o sistema foi distribuído, tanto do ponto de vista de hardware como de software, em centenas de computadores espalhado pelo mundo, processam toda essa informação. Dessa forma, pode-se afirmar que “um sistema distribuído é um conjunto de computadores independentes que se apresenta a seus usuários como um sistema único e coerente.” (TANENBAUM; STEEN, 2008, p.1). 2 Considerações finais Com base nas reflexões propostas neste artigo, é possível destacar que, em muitas situações, um equipamento sozinho não suporta o grande volume e processamento de dados que o sistema requer. Nesse sentido, o sistema distribuído tem como principal características a transparência onde o usuário não percebe que está em 185 SETIS- III Seminário de Tecnologia Inovação e Sustentabilidade 4 e 5 de novembro de 2014. ____________________________________________________________________________ um sistema distribuído. Da mesma forma, quando uma funcionalidade migra de um servidor para o outro, o sistema não pode ter seu desempenho afetado. Referências GUARINO, Eduardo; et. al. Trabalho de sistemas distribuídos. Disponível em: <https://sites.google.com/site/sisdisfernandoedvaldo/caracteristicas-dos-sistemasdistribuidos.> Acesso em: 20 set. 2014. LUNG, Lau Cheuk. Sistemas distribuídos de larga escala. 2001.Disponível em: < http://repositorio.ufsc.br/handle/123456789/81470> Acesso em: 13 set. 2014. MAINETTI; Sergio. Objetos distribuídos. Visionnaire. 1-14 pp. Disponível em: <http://rblinux.com.br/Objetos%20distribuidos.pdf> Acesso em: 27 set. 2014. PINTO, Pedro. LAN, MAN, WAN, PAN, SAN … Sabe a diferença? 2010. Disponível em:< http://pplware.sapo.pt/tutoriais/networking/lan-man-wan-pan-san%E2%80%A6-sabe-a-diferenca/> Acesso em: 12 set. 2014. TANENBAUM, Andrew S.; STEEN, Maarten van. Sistemas distribuídos: princípios e paradigmas. 2. ed. São Paulo: Pearson Prentice Hall, 2008. TORRES, Diego. O que é um sistema distribuído? Disponível em: <http://www.ebah.com.br/content/ABAAABEpcAH/artigo-sistemas-distribuidos> Acesso em: 13 set. 2014. 186