Mainframe e Java

Olá pessoal. Recentemente entrei em um novo projeto onde temos uma aplicação Java que se comunica com mainframes através de serviços de mensageria. Nossa aplicação é um servidor de transações, e o módulo administrativo é front end tanto da nossa aplicação como do mainframe. Eu não entendo absolutamente nada sobre mainframes, apenas ouvi falar de algumas coisas relacionadas ao Cobol e DB2. Preciso conhecer pelo menos os fundamentos desse tipo de arquitetura, das melhores formas de comunicação e dos paradigmas utilizados para poder conversar com propriedade com os analistas desse cliente (um grande banco nacional).

Por onde devo começar?

Deve começar se concentrando nas especificações do projeto. A não ser que você tenha que programar para Mainframe, aí sim, preocupe-se com isto. Senão, tenha em mente que as regras de negócio não mudam de linguagem para linguagem.

O Cobol é capaz de trabalhar com XML, OO e também existe uma forma de integrar Cobol e Java através de EJB. Tanto é capaz de realizar uma chamada Cobol pelo Java e vice-versa

http://supportline.microfocus.com/documentation/books/nx40/dijint.htm

Na parte do overview tem os links que provavelmente você vai precisar estudar.

Boa sorte

Pelo que entendi, será utilizada uma estrutura de mensagens assíncronas, como o JMS do java.

Verdade, lá onde trabalho usamos essa arquitetura, porém ela foi utilizada pela falta de conhecimento na época de fazer a integração entre Java e COBOL.

Bom se for através de fila de mensagens do banco de dados e JMS em Java é mais simples, porém tem perda de performance e corre o risco de não enviar/receber a mensagem, além de que vai ter a dependência do BD no processo.

Qual o banco de dados utilizado? Lá usamos Oracle, se o seu banco for este também, já vou adiantando alguns links para você.

A documentação do pacote de fila é a DBMS_AQ que segue o link: http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_aq.htm

Basicamente você tem que configurar as propriedades(visibilidade, tempo de espera…) , usar o enqueue e dequeue

Aqui tem um exemplo de enqueue: http://dbpedias.com/wiki/Oracle:DBMS_AQ.ENQUEUE

Na parte Java você vai usar JMS com um pool de conexões para obter as mensagens. Existem vários exemplos internet a fora.

[quote=Maracuja][quote=Vina]Olá pessoal. Recentemente entrei em um novo projeto onde temos uma aplicação Java que se comunica com mainframes através de serviços de mensageria. Nossa aplicação é um servidor de transações, e o módulo administrativo é front end tanto da nossa aplicação como do mainframe. Eu não entendo absolutamente nada sobre mainframes, apenas ouvi falar de algumas coisas relacionadas ao Cobol e DB2. Preciso conhecer pelo menos os fundamentos desse tipo de arquitetura, das melhores formas de comunicação e dos paradigmas utilizados para poder conversar com propriedade com os analistas desse cliente (um grande banco nacional).

Por onde devo começar?[/quote]

Na maioria (senao todas!) das vezes em que trabalhei em projetos assim, a comunicacao entre a alta plataforma (mainframe) e a baixa plataforma (Front-end em java por exemplo) se dava via mensagens (CICS transaction server + IBM Websphere MQ).

Pelo que entendi vc vai trabalhar somente no Front-end, basicamente vc vai ter que entender quais transacoes vc vai consumir da alta plataforma (entrada e saida, geralmente os bancos tem algo que eles chamam copybook onde existe essa definicao de entrada e saida).

Segundo um dos links que te passei, 90% das 500 maiores empresas da Fortune 500 rodam CICS. Incluindo a maioria dos bancos.

Alias, pode comecar pelos links que te passei! :smiley:

É mexer caixa de marimbodos.

Olá gente. Agradeço pelas respostas. O que eu queria era entender a arquitetura de envio de mensagens, e os links que vocês me passaram supriu minhas dúvidas.

Nesse cliente usamos o WebSphere MQ realmente, e nossa aplicação se comunica via JMS. Já estou estudando para não boiar nesse ponto.

Abraço, e podem fechar o tópico!

[quote=Vina]Olá pessoal. Recentemente entrei em um novo projeto onde temos uma aplicação Java que se comunica com mainframes através de serviços de mensageria. Nossa aplicação é um servidor de transações, e o módulo administrativo é front end tanto da nossa aplicação como do mainframe. Eu não entendo absolutamente nada sobre mainframes, apenas ouvi falar de algumas coisas relacionadas ao Cobol e DB2. Preciso conhecer pelo menos os fundamentos desse tipo de arquitetura, das melhores formas de comunicação e dos paradigmas utilizados para poder conversar com propriedade com os analistas desse cliente (um grande banco nacional).

Por onde devo começar?[/quote]

Na maioria (senao todas!) das vezes em que trabalhei em projetos assim, a comunicacao entre a alta plataforma (mainframe) e a baixa plataforma (Front-end em java por exemplo) se dava via mensagens (CICS transaction server + IBM Websphere MQ).

Pelo que entendi vc vai trabalhar somente no Front-end, basicamente vc vai ter que entender quais transacoes vc vai consumir da alta plataforma (entrada e saida, geralmente os bancos tem algo que eles chamam copybook onde existe essa definicao de entrada e saida).

Segundo um dos links que te passei, 90% das 500 maiores empresas da Fortune 500 rodam CICS. Incluindo a maioria dos bancos.

Alias, pode comecar pelos links que te passei! :smiley:

Espero que ajude.