An Open Source Distributed Application for Network Data Sharing RESUMO

  • 格式:pdf
  • 大小:201.94 KB
  • 文档页数:6

VII Semana de Engenharia da UFF IV Seminário Fluminense de Engenharia Niterói, RJ, Brasil, 8-10 de novembro de 2005

An Open Source Distributed Application for Network Data Sharing

Douglas Teixeira, Luiz Claudio Magalhaes e Maria Luiza Sanchez Centro Tecnológico, Escola de Engenharia – Universidade Federal Fluminense Rua Passo da Pátria, 156 – Bloco D – São Domingos – CEP: 24.210-240 Niterói, RJ – Brasil

{vidal,mluiza,schara}@midiacom.uff.br

RESUMO Este artigo descreve uma aplicação construída para o compartilhamento de informações em Redes. É uma ferramenta útil construída sobre o protocolo de transporte UDP para compartilhamento em tempo real de qualquer tipo de informação, como textos digitados por usuários ou informações presentes localmente nas máquinas. Fácil de adaptar e de implementar mudanças. Além disso, discutimos nossas experiências pessoais sobre programação concorrente em Redes usando UDP como comportamentos inesperados do Sistema Operacional. Apresentamos os mecanismos desenvolvidos para a obtenção de boa usabilidade e desempenho, mantendo a consistência e a confiança na troca de informação entre os processos concorrentes.

Palavras-Chave: Protocolos de comunicação; Aplicação distribuída em redes.

1. INTRODUCTION AND BACKGROUND The work presented is part of larger project on Interactive Television within the free-software initiative funded by the Brazilian Government. This project has been developed in the MIDIACOM lab from the Telecommunications Engineering Department from the Federal Fluminense University. This paper presents a C implementation that has become an efficient and applicable tool for network data sharing over UDP (STEVENS, W.RICHARD, 2001). The project is a fully distributed network application that allows users to interact in real time for dynamic information sharing. Also, it allows users to change, with simple code modifications, the type of the shared data. Instead of sharing specific user information it can share the local machine running processes or external users who are logged in, etc. Although the implementation is short, the resulting application is quite complex due to the implemented mechanisms applied to overcome some OS (Operating System) difficulties. During our work, we had to deal unexpected OS behaviors related to the environment we have chosen to work The OS is Slackware Linux with kernel version 2.4.26 and also 2.6.9 for test. Reporting those experiences and our solutions can offer some help to programmers who may be dealing with the same issues.

Internet has become an important subject for studies and emerging applications for different types of needs. However, most applications use TCP because it offers stronger network semantics. The reason for this is that the underlying Internet protocol does not offer reliable delivery. Today, both bandwidth available to Internet applications and their VII Semana de Engenharia da UFF IV Seminário Fluminense de Engenharia

complexity have increased. UDP gives applications programmers more liberty to change and build their own approaches in the transport level than TCP does. Thus, depending on the purpose, UDP can be used as a tool for applications programmers build their own protocols.

In terms of functionality, our application is very similar to the NETBIOS network service (www.netbiosguide.com, 2005). However, NETBIOS is a network identification service while our application implements a database working similar to it for the machines identification. A sample of a complex distributed application using UDP can be seen in (ZHUAN, GEELS, STOICA AND KATZ; SHELLEY, DENNIS, ION AND RANDY, 2003), where a keep-alive framework was built with high level of reliability and efficiency. In (L. MAGALHAES AND R. KRAVETS, 2001) there is a suite of protocols, each one for different purposes, all implemented over UDP. In (L. MAGALHAES AND R. KRAVETS, 2001), besides being also related to the previous work, it is specified a new transport protocol for multimedia applications, relaying mobility and packet priority, therefore, control and flow mechanisms are also implemented. We can find in (BIRMAN, KENNETH P, 1995) a good reference for implementing distributed network applications, where some very interesting discussions can be found about the evolution of distributed OS and related subjects. The basic knowledge about distributed OS and network applications can be found in (TANENBAUM, ANDREW S, 2000). Furthermore, a good reference for distributed programming can be found in (GALLMEISTER, BILL O, 1995).