PowerBuilder x Java

Fala galera, blz?

Ganhei um presente de grego :slight_smile:

Preciso cuidar da migração de um sistema feito em POWERBUILDER que roda em um AS/400 para Java.

Nunca tinha ouvido falar desta linguagem.

Gostaria de saber se alguém já fez algo do tipo, se teve dificuldades e quais foram?

Se sabem de materiais sobre essa linguagem?

E algumas dicas dos veteranos de migração, já que este tipo de função é um pouco nova para mim e terei que dizer oque usar, tempo que vamos demorar e tal, a previsão inicial é de 7000 horas, mas creio que isso pode aumentar devido as dificuldades.

Acredito que toda modelagem e especificações terão que ser refeitas, ou melhor, recriadas, visto que será outra linguagem, outros comportamentos.

Ainda tenho poucas informações sobre o sistema do cliente, so sei que está rodando e atua como um conjunto de soluções, vários módulos, mas já gostaria de me adiantar para saber onde estou pisando.

Grato pelas possíveis respostas e dicas.

Duvida: como vcs tem uma previsao inicial de 7000 horas se conhecem muito pouco do sistema e nao tem dominio sobre a tecnologia utilizada atualmente no mesmo?

Rafael

Se não me engano esse PowerBuilder é uma linguagem C da Sybase.
Você tá fu…

1 mês = ~160 horas
7000 / 160 = 43,75

Isso é mais que 3 anos e meio para 1 programador fazer a migração do sistema sozinho.

Vocês construiram um sistema em PowerBuilder ou um SO? :smiley:

Onde está a regra de negócios? No PowerBuilder ou em procedures do banco de dados?

Não conheço PowerBuilder mas acredito ser um paradigma bastante diferente do Java. Então vocês vão precisar decidir se vão fazer apenas uma “tradução” de PowerBuilder para Java ou se vão escrever o sistema em Java de maneira a aproveitar todos os benefícios da linguagem.

Acredito que a segunda opção vá levar muito mais tempo, pois talvez mude a forma como a aplicação foi modelada.

[]'s
Marco Campêlo

[quote=Rafael Steil]Duvida: como vcs tem uma previsao inicial de 7000 horas se conhecem muito pouco do sistema e nao tem dominio sobre a tecnologia utilizada atualmente no mesmo?

Rafael[/quote]

Pois é Rafael, está tal previsão não foi feita por mim hehe só mencionei o que me disseram, a questão é justamente esta, eu acredito que não deverá ser somente isso, e atrás disso que vim ao GUJ, aqui todo mundo já fez de tudo eheh alguém poderia me dar dicas sobre essa questão de migração com PowerBuilder.

O papel será meu agora, de fazer todo o levantamento do qual sairá o orçamento e demais coisas.

Olá

PowerBuilder era uma linguagem de alta produtividade lá dos idos de 1994/95 (IDE tipo VB = clica e arraste + copy&paste) competidora do Clipper e do VB. Só depois de fazer sucesso foi comprada pela Sybase e depois está morimbunda (ainda respira por aparelhos). Aconteceu com o PowerBuilder o mesmo que aconteceu com o Watcom C

Acho que quando muito você poderá aproveitar a base de dados e as consultas SQL (caso não use Hibernate)

Mas como todo sistema sempre pode ser melhorado, talvez seja preferível usar o sistema pronto apenas para ver o que ele faz e desenvolver um novo a partir do zero.

[]s
Luca

[quote=jprogrammer]Se não me engano esse PowerBuilder é uma linguagem C da Sybase.
Você tá fu…
[/quote]

Que é da sysbase eu já descobri uaua, agora o resto só deus vais saber ou eu quando terminar esse tal sistema hehehehe

[quote=mcampelo][quote=skill_ufmt]
Acredito que a segunda opção vá levar muito mais tempo, pois talvez mude a forma como a aplicação foi modelada.

[]'s
Marco Campêlo[/quote]
[/quote]

Marco,

O sistema já está lá no cliente, não fomos nós que fizemos, mas agora nos pediram uma colsultoria a respeito da migração para java.

O sistema será feito por uma equipe e tal, não só por mim hehe meu papel inicial é ser o Analista(to fu) da coisa, entende?

Aceitei porque gosto de desafios e isso me parece um puta de um desafio hehehe

Mas com as dicas de vocês certamente a coisa acontecerá.

[quote=Luca]Olá
Mas como todo sistema sempre pode ser melhorado, talvez seja preferível usar o sistema pronto apenas para ver o que ele faz e desenvolver um novo a partir do zero.

[]s
Luca[/quote]

Luca,
sou da mesma opinião, e acredito como citei no início do tópico, terei que fazer tudo novamente, o que eu terei são os caras que dão manutenção nisso lá para consultar, e demais envolvidos, afim de criar todo uma nova modelagem e estruturação para Java.

Um dúvida já básica, existem servidores que rodam java para um AS/400(acho que é isso que roda o Powerbuilder lá) ?

Galera, estou realmente pedindo dicas e conselhos e informações, sei que terei que ter muito mais informação para realizar a coisa e certamente voltarei aqui para futuros auxílios hehehe

Só pela frase no link que o Luca passou: “The language does not support static methods or variables, or parameterized constructors. It does support overloading, inheritance, encapsulation, polymorphism.”

A coisa realmente vai ser chocante kkkk

Cara, procure por tudo quanto é tipo de documentação dos processos, da lógica do negócio.

Se tiver isso documentado, só olha pra cara do Powerbuilder pra ver como estão os menus, formulários e relatórios, pra minimizar o impacto visual, mas o jeito é refazer tudo pra não se arrepender depois do 1º mes de implantação.

Outra dica: não baseie o novo sistema ninteiramente no anterior, se algo tá errado, corrija! Não use a velha desculpa: "Mas no outro sistema funcionava assim…"
Não cola…

Eu já passei por uma traumática migração de sistemas. (Informix+4Gl em um Alpha Digital Unix pra VB+Oracle)

A empresa simplesmente queria apenas fazer a tradução do 4GL (linguagem proprietária do Informix) pra VB, inclusive mantendo os erros e falando que era assim mesmo e que no anterior funcionava desse jeito.

[quote=skill_ufmt]Só pela frase no link que o Luca passou: “The language does not support static methods or variables, or parameterized constructors. It does support overloading, inheritance, encapsulation, polymorphism.”

A coisa realmente vai ser chocante kkkk[/quote]

Voê realmente tinha a ilusão que iria migrar algum código? Assim como no Delphi, mesmo que a linguagem fosse um primor de OO, fatalmente os programadores fariam programação estruturada. O Powerbuilder é mais “arrastar e soltar” que o próprio Delphi. O objetivo é a produtividade.
Tem mais: é bem capaz de você encontrar muitos objetos do tipo label1, label2, label3 e nomes bizarros criados automaticamente pela ferramenta.

Dica: dê uma olhada em como ele funciona (como um usuário) e aproveite a análise e as soluções de interface já feitas. Os usuários estarão acostumados com janelas melhores do que a maioria dos programas em java. Você vai ter que se esforçar para agradar.

boa sorte.

Caras, respondendo,

Eu não imaginava migrar nenhum código mas sim recriar tudo, o meu problema será somente achar a lógica do negócio para fazer a reestruturação.
Não vou reescrever erros hehe, minha empresa não tem esta visão, mas sim prima pela qualidade do que está fazendo e como eu vou cuidar disso, as coisas serão mais fáceis neste sentido.

Valeu pela dica dsiviotti, ontem em uma das minhas pesquisas iniciais, encontrei uma frase interessante: “O PowerBuilder é uma linguagem de alta produtividade, uma espécie de delphi misturado com Forms da oracle”

To até ancioso para ver oque esse treco gera de código hehe
E por ser uma geração desordenada, deverá mesmo ser terrível visualizar o código gerado por ele.

Mais uma informação, a aplicação utiliza o DB2, não trabalhei com este banco ainda, apenas Oracle e Postgree, há alguma recomendação especial quanto a este detalhe?
seria possível uma migração destas informações antigas do DB2 para outro banco, oracle por exemplo?

Ola caso queira alguma ajuda eu trabalho com PowerBuilder a 5 anos… e atualmente estou migrando varios projetos de PB para J2EE :slight_smile:

falow

[quote=smorigo]Ola caso queira alguma ajuda eu trabalho com PowerBuilder a 5 anos… e atualmente estou migrando varios projetos de PB para J2EE :slight_smile:

falow[/quote]

Legal cara, pode dar algumas dicas, ou só mediante $$$?

Galera, reativando o tópico para não criar outro.

Recorro a experiencia da galera mais uma vez, estou tentando montar uma arquitetura para a migração do sistema e me deparei com umas dúvidas.

Tenho o powerbuilder que faz a frente da aplicação com operações básicamente CRUD, este modulo em PowerBuilder acessa outro módulo em COBOL que é responsável pela autenticação de usuários e operações com o banco DB2.

|Powerbuilder|-----------|COBOL|-----------|DB2|

Surgiu algumas opções, uma delas EJB, no caso de distribuiçao do módulo powerbuilder que migrará para java e este acessar o banco remotamente, não sei se é possível EJB conversar com COBOL, ou um webservice entre eles, nao conheço EJB profundamente.

Queria fugir de EJB e me surgiu outra opção, o Spring para cuidar desta tarefa.

Ou ainda um MVC comum(WW, Struts, …) + webservice.

Enfim, várias, e espero que me auxiliem a avaliar qual destas me atende ou dar outra opção, será que o Spring consegue resolver este problema?

Outra opção poderia ser retirar também o módulo em cobol migrando para java também oque seria mais fácil, mas gosta de ver uma boa solução, se é que é possivel, para o java remotamente ou localmente conversar com um sistema em cobol, como disse anteriormente não conheço nem poweerbuilder, nem cobol profundamente, e a experiencia de quem ja fez isso será muito bem vinda para firmar meus conceitos teóricos.

Abraço.

Olá

O que vc chama acessar o banco remotamente? Você está dizendo que o sistema PowerBuilder + COBOL roda em uma WAN (sem VPN)?

Em princípio pela importante informação que vc passou que não conhece EJBs já posso afirmar peremptoriamente que não deve usar EJBs. Mesmo para quem é craque já dificil, imagine para quem não sabe.

Use o feijão com arroz: WW + hibernate e coisas assim

[]s
Luca

[quote=Luca]Olá

O que vc chama acessar o banco remotamente? Você está dizendo que o sistema PowerBuilder + COBOL roda em uma WAN (sem VPN)?

Em princípio pela importante informação que vc passou que não conhece EJBs já posso afirmar peremptoriamente que não deve usar EJBs. Mesmo para quem é craque já dificil, imagine para quem não sabe.

Use o feijão com arroz: WW + hibernate e coisas assim

[]s
Luca[/quote]

Opa Luca,

Então, a questão não é eu saber, porque isso vai pra fábrica e lá contrata-se alguém que saiba, mas o fato mesmo é que não vejo a necessidade de usá-los, seria um onus sem causa :slight_smile:

Remotamente eu digo no caso de o sistema em cobol ficar numa matriz por exemplo, onde esta o servidor de banco de dados, e nas filiais eu ter o módulo em Java com as regras de negócio.

Spring + hibernate me parece muito mais interesante, além de uma solução bem mais simples, e que me parece antender bem ao que preciso.

só uma dúvida, se eu precisar acessar o cobol, quais solução acha mais simples?
e no caso de acessar o cobol, ficaria sem hibernate, pois o cobol cuida da camada de dados.

[]s