Análise comparativa entre as ferramentas de Desenvolvimento nas Nuvens Aptana Studio e Wavemaker Studio com ênfase na infraestrutura utilizada.

Bianca R. Loiola1, Ludmila V. Arruda2, Teresa Patrícia Duarte3

1DEPARTAMENTO de Telemática –Instituto Federal de Educação, Ciência e Tecnologia do Ceará (IFCE) Caixa Postal 95 – 63.900-000 – Fortaleza – CE – Brasil {patriciaduartece, lud.varela}@gmail.com, [email protected] Abstract. The computing idea proposes the use of computational resources as services, through its use by the global network. Has as its base the payment on demand, in other words, the user only pays for the service he uses. The great advantage of this new concept is ensure ease of management, availability, scalability, beyond fact no longer need an potent machine for use of resources. Then we have the cloud that to guarantees the independence of physical location of data and applications. This work aims to present the operation of a system in the cloud and its practical features, making an analysis and comparison between two development tools in the clouds: Aptana Studio and WaveMaker Studio. Both tools are willing to build programming environments and applications for developers and users. We will also explain how to use the infrastructure implemented in this system. Resumo. A ideia de computação nas nuvens propõe a utilização dos recursos computacionais como serviços, através de sua utilização pela rede mundial. Tem ainda como alicerce o pagamento sob demanda, ou seja, o usuário paga somente pelo serviço que utiliza. A grande vantagem desse novo conceito se dá pela garantia de facilidade de gerência, disponibilidade, escalabilidade e o fato de não mais precisarmos de uma máquina de última geração para utilização dos recursos. Temos então a computação nas nuvens como um serviço que garante a independência de localização física de dados e aplicações. Este trabalho se dispõe a apresentar o funcionamento de um sistema nas nuvens e suas características práticas, fazendo a análise e comparação entre duas ferramentas de desenvolvimento nas nuvens: Aptana Studio e WaveMaker Studio. As duas ferramentas se dispõem a construir ambientes de programação e aplicações para desenvolvedores e usuários. Abordaremos também explicações quanto a infraestrutura implementada para utilização desse sistema.

1. Computação nas Nuvens Computação nas nuvens é um tema muito discutido atualmente, porém poucos sabem realmente o que significa. O termo “nuvem” é bem entendido por ser uma representação da , mas a computação nas nuvens não é baseada somente na rede mundial. Suas aplicações são fundamentadas na ideia dos usuários poderem ter acesso a serviços e programas de maneira transparente, sem que estes recursos estejam arquivados em uma máquina local. Este tema tem como principais características um modelo de negócio de compartilhamento de recursos, banda larga e armazenamento maciços, além de fornecer poder de escalabilidade. Ao invés de ter que instalar diversos programas em um computador, o usuário pode realizar seu cadastro em um serviço web, que funcionará como um disco rígido, sem a necessidade de hardware e software por parte do usuário. Para completar o conceito de computação nas nuvens é necessário que conheçamos os serviços propostos por este: • SaaS (): Neste serviço, não há uma preocupação com relação ao controle da infraestrutura. Sua ideia básica é a de que uma instância do software será executada nas nuvens, para que assim vários usuários finais possam acessá-lo através da internet. “Normalmente, softwares que executam tarefas simples e que não tem muita necessidade de interação com outros softwares, facilitam a utilização do SaaS. Clientes carecem de um serviço disponível comercialmente, onde possam utilizá-lo via web.” [VELTE, et all., 2010] • PaaS (): Esse outro serviço sugere linguagens de programação, bem como interfaces de desenvolvimento para que sejam construídas aplicações e softwares nas nuvens. Este ponto será o tema central deste trabalho. • IaaS (Infrastructure as a Service): Esse serviço tem como base a fonte de recursos para que os dados e aplicações sejam acessados. É uma técnica baseada em virtualização, que permite compartilhar e utilizar recursos de um único sistema computacional em vários outros denominados de máquinas virtuais. Cada máquina virtual oferece um sistema computacional completo muito similar a uma máquina física. Assim, o cliente recebe esse serviço de forma terceirizada, porém não tem acesso à administração dessa infraestrutura em si.

2. Aptana Studio A Aptana se caracteriza por ser uma IDE de desenvolvimento para aplicações Web. É também uma ferramenta gratuita e open-source. Levando isto em consideração, o serviço proposto pela Aptana Cloud está integrado diretamente com esta interface para gerar aplicações na nuvem com suporte a PHP escalável, MySQL, Apache e plataformas Aptana Jaxer, que são as que possuem um servidor para aplicações Ajax. É importante saber que este serviço nas nuvens é gratuito, mas o usuário passa a pagar a sua utilização depois da configuração do seu ambiente de trabalho. Tem como provedor de infraestrutura o Aptana Joyent que fornece endereços IP estáticos. É uma iniciativa recente, que surgiu no segundo trimestre de 2008 e que propõe um conjunto de recursos além da plataforma de computação em nuvem da Joyent. Uma implementação feita com base neste serviço possui todas as características de qualquer implementação feita no Joyent Accelerator, que é uma plataforma básica nas nuvens, diferentemente da Aptana. De acordo com esta análise, temos que o Aptana Studio se caracteriza por ser um ambiente de desenvolvimento, testes, implementação e gerenciamento compactado em um único local. Acessando o site oficial da ferramenta (www.aptana.com), podemos baixar a versão Professional 2.0. Após a instalação, é necessário criarmos uma conta de cadastro para aplicações futuras através da Opção “Sign-in” alocada no canto inferior direito da IDE. Na figura 1, observamos sua interface inicial. Figura 1: Interface inicial – Aptana Studio [nsa08.casimages.com]

3. Wavemaker Studio Wavemaker é uma ferramenta de desenvolvimento para aplicações nas nuvens e traz como vantagem sua flexibilidade, principalmente para quem desenvolve software por si, sem depender de uma empresa, já que não tem a necessidade de pagar uma licença e, além disso, possui fácil utilização. Falando um pouco sobre a interface, a página de apresentação do Wavemaker é chamada de WaveMaker Studio Designer. A página onde será construída as aplicações é chamada de Canvas e esta é exibida assim que um projeto é criado. Esta interface pode ser vista na Figura 2.

Figura 2: Interface do Wavemaker Ainda podemos visualizar os projetos criados, na aba Projects. Temos também a opção Palette, que auxilia na interface gráfica da aplicação a ser desenvolvida, podendo selecionar e configurar elementos da aplicação. Para utilizar os componentes dessa opção, basta arrastá-los para a página principal do projeto. Já na aba Model pode ser visualizada uma árvore hierárquica dos componentes visuais e não visuais no projeto. Essa árvore é uma ajuda para selecionar os componentes adicionados na interface da aplicação. Outra parte fundamental para compor a interface de uma aplicação a ser desenvolvida é a Árvore de propriedades (Property). É utilizada para editar as propriedades do elemento selecionado. Essa árvore de propriedade e o seu editor podem ser vistos na Figura 3 e 4.

Figura 3: Property Figura 4: Property Editor

4. Comparativo entre as ferramentas Aptana e Wavemaker Levando em consideração os estudos realizados entre as duas ferramentas, percebe- se que a escolha entre elas deve ser feita levando em consideração a aplicação que será construída. Na Aptana, temos que construir o código e configurar o banco de dados de acordo com a aplicação que queremos construir. Depois deste passo, implementamos o Aptana Cloud, escolhendo a opção “Aptana> Cloud> Implantar o projeto” no menu de funcionalidades da ferramenta. É importante lembrar também que a ferramenta Aptana usa o Subversion, que estabelece um repositório de controle de código-fonte sobre a nuvem. Pode-se também usar a ferramenta para atualizar quaisquer mudanças incrementais que fizermos no aplicativo. Esta também fornece uma interface de usuário para adicionar outros membros na equipe de desenvolvimento para que assim a aplicação se torne mais robusta. Outro ponto importante é que a Aptana tem várias definições para gerenciar banco de dados, o que nos proporciona a vantagem de podermos ter acesso aos arquivos que criamos no nosso banco de dados na nuvem. Mas é importante ter um bom processamento de hardware e conhecimento em programação para que a ferramenta seja bem manuseada. Analisando a ferramenta WaveMaker, não é necessário um conhecimento profundo em desenvolvimento para que seja feita uma aplicação simples. Podemos montar a interface da nossa aplicação e adicionar os eventos necessários através da aba de edição de propriedades, além da facilidade de podermos importar códigos já prontos. Por outro lado, temos a dificuldade em colocar esse projeto na nuvem, pois para que isto aconteça é necessário criar uma conta em alguma empresa que fornece infraestrutura na nuvem. Outro fator fundamental para o bom desempenho da ferramenta é ter uma ótima conexão com a internet, caso contrário, teremos dificuldade ao executar a aplicação desenvolvida. A tabela 1 demonstra algumas principais características que foram utilizadas para compará-las:

Características Aptana WaveMaker Linguagem padrão PHP Java, JavaScript Disponibilidade nas 21 dias disponível para Disponível depois de ter Nuvens teste uma conta paga Provedor de Aptana Joyent Amazon Elastic Compute Infraestrutura Cloud (EC2) Eucalipto OpSource Cloud

Desempenho Depende da aplicação Bom Reconhecimento no Baixo Baixo Mercado Vantagem Suporte garantido Flexibilidade Usabilidade Mediana Simples Banco de dados MySQL MySQL

Tabela 1: Comparativo das características das ferramentas

Portanto, seguindo a comparação entre duas aplicações desenvolvidas através das ferramentas apresentadas, além das semelhanças e diferenças que já foram citadas e observadas, podemos traçar aqui o fator mais importante que difere ambas as ferramentas: A ferramenta Aptana possui a grande vantagem de disponibilizar um período de tempo para testar a aplicação construída, já funcionando nas Nuvens. A partir desta perspectiva, podemos analisar e experimentar como se comportam os programas que estão em nuvens e como esse processo é desenvolvido, entendendo sua infraestrutura. A ferramenta WaveMaker não disponibiliza esse tempo para teste, porém se destaca por facilitar a construção da aplicação em si, ou seja, o desenvolvedor não precisa preocupar-se com a implementação, pois a interface do WaveMaker já flexibiliza todo o processo, diferentemente da primeira ferramenta. Podemos então citar o exemplo de que, para construir um simples aplicativo, como uma Agenda de Contatos, não há muita diferença em escolher uma ou outra ferramenta, visto que a aplicação é de fácil codificação e utilização. Porém, para aplicações maiores, sugere-se uma análise mais detalhada, observando os requisitos já mencionados anteriormente. Por fim, com relação a infraestrutura, é importante saber que o Aptana Joyent pode não ser um nome tão conhecido como Amazon ou IBM, mas rapidamente ganhou uma reputação impressionante como um provedor de plataforma de computação em nuvem para inicializações baseadas na Web. Já o Joyent Accelerator se destacou por possuir a flexibilidade dos provedores de hosting tradicionais. Suas principais ofertas tratam de forma melhorada os picos de uso por parte dos usuários, o que o tornou muito popular para as organizações. Com Joyent, qualquer tecnologia compatível com OpenSolaris é suportada. Isso inclui qualquer tecnologia LAMP e linguagem de programação de software livre, além de outras linguagens, como Java e Ruby. Joyent também permite usar quaisquer ferramentas ou UNIX® disponíveis para proteger e manter seu site e seus dados. O Aptana, portanto, herda muito suporte para tecnologias de software livre e programação do Joyent. Assim como no Aptana, as aplicações que são geradas com WaveMaker podem ser implantadas em vários tipos de ambientes, incluindo os servidores locais, nuvens públicas e privadas. Para que qualquer aplicação esteja disponível na nuvem, o Wavemaker dispõe de parcerias com algumas empresas voltadas para infraestrutura, que disponibilizam o armazenamento da ferramenta na nuvem. São elas: Amazon Elastic Compute Cloud (EC2); Amazon S3; Eucalyptus Eucalipto; OpSource Cloud e RackSpace Cloud. Enfim, a aplicação será posta na nuvem através da realização de um registro e abertura de uma conta na empresa. A partir dessa conta, você pode acessá-la pelo Wavemaker.

5. Referências Bibliográficas • MATHER, T; KUMARASWAMY, S. Cloud Security and Privacy. 1ª ed. Estados Unidos. O’Reilly, 2009; • HICKEY, A. “Study: Enticing Repeat Customers”. Channel Web, 2010; • SOUSA, F. Computação em Nuvem: Conceitos, Tecnologias, Aplicações e Desafios, 2009; • National Institute of Standards and Technology, Maio, 2009, Cloud Computing: http://csrc.nist.gov/groups/SNS/cloud-computing; • www.aptana.com ; • TAURION, Cezar, “Cloud Computing: Computação em nuvem: transformando o mundo da tecnologia da informação”, Rio de Janeiro, RJ, 2009; • CHIRIGATI Fernando Seabra, 2009, Computação Nas Nuvens; • www.gta.ufrj.br/ensino/eel879/trabalhos_vf_2009_2/seabra/introducao.html ; • NOVAES, Cláudio, 2009, “Aptana o substituto do dreamweaver”; • http://ubuntued.info/aptana-o-substituto-do-dreamweaver-para-linux ; • “WaveMaker Documentation”: http://dev.wavemaker.com/wiki/bin; • “WaveMaker Tutorials”: http://dev.wavemaker.com/wiki/bin/Tutorials; • TAURION, Cezar, Junho, 2010; • SOUSA, Flávio, MOREIRA, Leonardo , MACHADO, Javam, “Computação em Nuvem: Conceitos, Tecnologias, Aplicações e Desafios”. Universidade Federal do Ceará em Quixadá (UFC).