SW Infor
Ferramentas de Migração
Java/Bancos de dados Relacionais/Shell Script



Migração automatizada de Mainframe: Uma estratégia vencedora

Produtos


SW-Eagle


Framework SW-Eagle framework é um conjunto de classes e scripts para uso por desenvolvedores para criação de aplicações Java Online e Batch. Originalmente criada para suportar sistemas Cobol migrados de mainframes, possibilita o desenvolvimento de sistemas com múltiplos recursos para monitoração e controle do ambiente de produção.

SW-Eagle possui vários módulos com recursos que podem ser utilizados pelas equipes de desenvolvimento e produção:

     
  • Recursos para desenvolvimento de aplicações Online e Batch
  • Classes especializadas para acesso a bancos de dados relacionais e arquivos de dados
  • Relatórios gráficos e em formato texto
  • Scripts para execução de classes batch
  • Utilização de IDEs de mercado
  • Aplicação Web baseada em banco de dados para monitorar, controlar e enviar comandos para classes Online, Batch e scripts shell em ambiente de teste e produção
  • Geração automática de log de execução para todas os processamentos de classes e scripts
  • Ambiente escalável para execução das aplicações com uso de servidores especializados: banco de dados, online, batch e script
  • Daemons para execução de interfaces entre os servidores, classes, scripts a aplicação Web de gerenciamento
  • Servidor de mensagens para comunicação entre sistemas
  • Vários níveis de debug que podem ser ativados e desativados dinamicamente, durante a execução das classes batch ou online
  • Controle de liberação para uso de transações online e classes batch


  • A framework SW-Eagle possui recursos para simplificar o desenvolvimento tanto de classes online como de classes batch. Os exemplos abaixo mostram classes simples usando a framework e os resultados das execuções.



    Um exemplo de classe batch é apresentada abaixo, mostrando as mensagens "Class HelloWorld" e "HELLO WORLD!", estendendo a classe SWBatch do SW-Eagle.



    
    package test;
    
    import sw.SWBatch;
    
    public class HelloWorld extends SWBatch {
    
    	 public static void main(String argv[])  {
    		 HelloWorld exec = new HelloWorld();
    		 exec.EXECUTE("HelloWorld",argv);
    	 }
    
    	public void process() {
    		DISPLAY("Class HelloWorld");
    		DISPLAY("HELLO WORLD!");
    	}
    }
    


    O resultado dessa execução fica registrado em um arquivo de log automaticamente criado pelo SW-Eagle, contendo informações sobre a execução, como nome da classe básica executada, PIDs de execução, servidor onde foi executada a classe, versão do java utilizado, versão do sistema operacional, hora de início e término de execução, e toda a mensagem gerada pelo processamento da classe. Cada execução de uma classe batch cria seu próprio log.



    17/01/2017 13:04:39.681 (3761398) DEBUG SPECIFIED IN COMMAND LINE
    17/01/2017 13:04:39.701 (3761398) MYSELF PROGRAM TYPE=B
    17/01/2017 13:04:39.702 (3761398) BEGIN OF TASK 3761398/3761398/15876-HelloWorld
    17/01/2017 13:04:39.703 (3761398) PROGRAM TYPE IS BATCH
    17/01/2017 13:04:39.704 (3761398) HOSTNAME  =HM7
    17/01/2017 13:04:39.704 (3761398) USERCODE  =test
    17/01/2017 13:04:39.705 (3761398) OSUSER    =test
    17/01/2017 13:04:39.706 (3761398) RUN IN DEBUG MODE 1
    17/01/2017 13:04:39.707 (3761398) FRAMEWORK VERSION IS 8.5.1
    17/01/2017 13:04:39.709 (3761398) REVISION VERSION IS $Revision: 68 $
    17/01/2017 13:04:39.711 (3761398) CURRENT DIR IS P:\projeto1\testeLinc
    17/01/2017 13:04:39.714 (3761398) PROGRAM VERSION IS 0.76.1
    17/01/2017 13:04:39.717 (3761398) SYSTEM ARCHITECTURE IS amd64
    17/01/2017 13:04:39.718 (3761398) OS NAME IS Windows 10
    17/01/2017 13:04:39.719 (3761398) OS VERSION IS 10.0
    17/01/2017 13:04:39.720 (3761398) JAVA RUNTIME VERSION IS 1.8.0_101-b13
    17/01/2017 13:04:39.721 (3761398) JAVA VM VERSION IS 25.101-b13
    17/01/2017 13:04:39.722 (3761398) JAVA VENDOR IS Oracle Corporation
    17/01/2017 13:04:39.722 (3761398) 
    17/01/2017 13:04:39.733 (3761398) Class HelloWorld
    17/01/2017 13:04:39.733 (3761398) HELLO WORLD!
    17/01/2017 13:04:39.787 (3761398) 
    17/01/2017 13:04:39.833 (3761398) USER PROC TIME  =0:00:00.046
    17/01/2017 13:04:39.836 (3761398) SYSTEM PROC TIME=0:00:00.075
    17/01/2017 13:04:39.841 (3761398) EXECUTION TIME  =0:00:00.172
    17/01/2017 13:04:39.843 (3761398) TASKVALUE       =0
    17/01/2017 13:04:39.844 (3761398) TASKSTRING      =
    17/01/2017 13:04:39.853 (3761398) END OF TASK HelloWorld
    



    As transações de projetos online são desenvolvidas utilizando página JSP, classe de interface e classes de regra de negócio. O SW-Eagle possui um container chamado SWManager, que é responsável por todo o direcionamento das mensagens recebidas, trabalhando com um esquema de filas e cópias. Um exemplo de classe online, que é definida como um POJO, é apresentada abaixo. Ela recebe uma informação no campo USERNAME, existente no JSP, e se o conteúdo for espaço, devolve uma mensagem de erro. O campo de mensagem de erro, por exemplo, é um dos vários recursos internos do SW-Eagle e pode ser posicionado em qualquer lugar da página JSP. Da mesma forma que nas classes batch, um log de execução é criado para cada classe online, contendo informações geradas durante o processamento e estatísticas de execução ao final.



    package test;
    
    import sw.SWOnline;
    import test.screen.S_OnlineTrans1;
    
    public class OnlineTrans1 extends SWOnline {
    
    	private static final long serialVersionUID = 1L;
    
    	public OnlineTrans1() {
    		PROGRAM.MOVE("OnlineTrans1");
    	};
    	
    	S_OnlineTrans1 scr = new S_OnlineTrans1();
    	
    	//The process method is called every time a transaction is received by SWManager. 
    	//When the last command in process() is executed, SWManager resume its process and sends the result page back to user 
    	public void process() {
    		
    		//All field contents on the JSP page are available in screen class(S_OnlineTrans1)
    		if ( scr.USERNAME.EQ("") ) {
    			//This text will be shown on SW_MESSAGE field at JSP page
    			MESSAGE("INVALID USERNAME");
    		}
    		
    	}
    }
    


    O diagrama básico para ambiente online pode ser visto abaixo. O SWManager se encarrega de identificar a mensagem recebida, através de browsers ou outros servidores, e direciona a transação para a fila da classe correspondente. Essa abordagem torna a utilização de memória da JVM estável, sem altos e baixos, além de evitar situações de Java Heap Space.





    Para execução das classes criadas com o SW-Eagle, servidores para classes batch, online, scripts e banco de dados são definidos. A imagem seguinte mostra como é como a arquitetura de execução pode ser configurada. Servidores especializados permitem escalabilidade e bons tempos de execução para classes online e batch.



    O link abaixo possibilita visualizar um documento com os principais conceitos e definições do framework SW-Eagle.


    Framework SW-Eagle - Overview








Copyright © 2017 SW Infor