Glenn Johnson – Senior Vice President – Magic Software Americas
Recentemente, realizamos um desafio interessante com uniPaaS Jet. Pedimos a um desenvolvedor independente, já familiarizado com programação Java e sem nenhuma experiência anterior em uniPaaS, para fazer o download do uniPaaS Jet, estudá-lo e criar um programa simples (nós já havíamos pedido a ele para criar o mesmo programa em Java.) Solicitamos que ele anotasse cuidadosamente os recursos necessários e todo esforço envolvido. O uniPaaS mostrou-se mais eficiente em cada categoria analisada. O uniPaaS utilizou metade da memória e metade do armazenamento do arquivo. O uniPaaS exigiu apenas 1% de linhas lógicas e 7% de linhas físicas de código. O programa uniPaaS foi executado pela primeira vez em 1 décimo da quantidade de tempo. O esforço aplicado foi de 202 horas em Java e apenas 3,2 horas em uniPaaS. A duração do projeto foi de 2,63 meses em Java e parte de um único dia em uniPaaS.
Nosso objetivo em relatar esses resultados não é criticar o Java ou apontar suas fraquezas, na verdade o uniPaaS é muito amigável ao Java. Temos alguns desenvolvedores Java em nosso departamento de pesquisa e desenvolvimento. E o mais importante é que nós acreditamos que o uniPaaS pode oferecer muito para as equipes de desenvolvimento Java fornecendo-lhes ferramentas que podem tirar aproveitar de seu investimento em Java, dando-lhes o tipo de vantagens experimentado pelo desenvolvedor independente mencionado acima.
A Integração Java embutida no uniPaaS permite que o uniPaaS faça interface com uma classe Java ou Enterprise JavaBeans (EJB), usando pseudo-referências que representam instâncias de classes Java ou arquivos EJB. Pseudo-referências são um identificador que representa os valores de uma instância de classe em uma variável BLOB. Os programas devem passar este identificador para acessar os métodos e variáveis de uma instância da classe. Uma classe Java é uma definição de modelo dos métodos e variáveis em um determinado tipo de objeto. Um objeto pode ser uma instância específica de uma classe e pode conter valores reais ao invés de variáveis. Para a integração de classes Java através de uma aplicação uniPaaS, você pode acessar métodos estáticos e variáveis, sem a pseudo-referência.
Instâncias Java, métodos estáticos e variáveis são invocados pelo Java uniPaaS e funções EJB. No Java, uma instância de classe é uma implementação específica da classe Java, enquanto um método de classe estática é um método de classe que pode ser chamado sem instanciar a classe. Da mesma forma, uma variável de classe estática é uma variável de classe que pode ser acessada sem instanciar a classe.
Um Enterprise Java Bean (EJB) é uma arquitetura para definição dos componentes do programa Java que são executados em uma rede cliente / servidor. O uniPaaS EJB Component Generator é um assistente que gera um componente contendo programas uniPaaS que chamam uma classe Java ou funções EJB. A Java Native Interface (JNI) permite que programas não-Java possam interagir com os programas Java. O Java Component Generator é um assistente que permite que o uniPaaS automaticamente acesse classes Java ou arquivos EJB, criando um componente que elimina a necessidade de especificar assinaturas JNI. Você também pode usar o uniPaaS para gerar Enterprise Java Beans (EJBs). Clientes que rodam em um ambiente J2EE são capazes de visualizar e ativar programas uniPaaS como métodos EJB. Você cria os EJBs usando o utilitário Component Builder do uniPaaS.
O uniPaaS pode criar uma instância de uma classe Java que permite que você ative um método, ou consulte e atualize variáveis usando uma pseudo-referência. A pseudo-referência é uma variável BLOB que representa a instância da classe Java. Quando um método é invocado, a variável BLOB retorna para o programa uniPaaS como códigos de retorno de função. Métodos estáticos de classes e variáveis também podem ser acessados sem uma instância da classe Java usando o nome da classe e o método ou o nome da variável.
As funções uniPaaS Java são usadas para simular os métodos de chamada em Java. Cada contexto do motor internamente mapeia entre a pseudo-referência e a referência real.
Por exemplo, um programa uniPaaS pode chamar a função JCreate para criar uma pseudo-referência como Variável Virtual A. A referência real para a instância é, então, internamente, associada com o Variável Virtual A. Qualquer programa uniPaaS no contexto será capaz de acessar os métodos e variáveis do objeto usando JCall (A ,…).
As funções do Java pode ser chamadas por um programa uniPaaS para:
• Criar uma nova instância de uma classe Java
• Chamar um método diretamente da classe Java ou de uma instância
• Reportar e retornar exceções
• Consultar e atualizar valores de variáveis
As funções EJB permitem ao uniPaaS explorar e chamar Enterprise JavaBeans.
Acho que a mensagem importante aqui é que o uniPaaS pode ajudar programadores Java a fazerem uso eficiente de classes Java e EJBs enquanto se beneficiam da eficiência da plataforma de aplicativos inteligente do uniPaaS. Para maiores informações acesse o Magic Software DevNet ou contate nosso representante local.
O uniPaas realmente agiliza o desenvolvimento de softwares feitos do zero, pois ele mesmo implementa toda a parte de framework que em outras linguagens deverão ser criadas.
Porém a parte ruim do uniPaas é que em sistemas que já estão prontos a manutenção dos mesmo é dificil de ser feita e a chance de estragar tudo apenas adicionando uma linha é muito grande, porque o uniPaas tem esse esquema de referência por linhas e não pelo nome da linha ou algum outro identificador, ou seja, adicione uma linha entre as outras e parabéns, você acaba de bagunçar todo o projeto, para voltar, CTRL + Z? não! Vá pedir ao gerente para voltar o backup anterior.
Sem falar no editor de expressões do uniPaas que é simplesmente ridículo.
Espero sinceramente que o uniPaas melhore pois tem muito à melhorar, bastaria implementar as dicas que fornecemos.
Abraço