|   |  | J/XFS (Java eXtension for Financial Services)  
      |  | Introdução - O que é o J/XFS?
        Basicamente o J/XFS (Java eXtension for Financial Services) é uma 
        interface para dispositivos bancários padronizada internacionalmente, 
        que surgiu após um acordo feito entre as maiores empresas do setor 
        bancário mundial (Diebold, DeLaRue, IBM, NCR, Wincor Nixdorf 
        International GmbH) e a Sun Microsystems. Essa interface torna o uso desses 
        dispositivos independente de suas características específicas, dos seus fabricantes e dos seus modelos. 
        Seu Kernel é 
        conhecido como FDI (Financial Device Interface). 
          
        
        
       A implementação de todas as suas camadas  é feita 100% em Java, logo, pode 
       ser, em teoria, executada em qualquer sistema operacional que forneça suporte para essa linguagem.
       
        
        
         
        
        
       O desenvolvimento do J/XFS foi baseado em um padrão previamente 
       existente que só funcionava em plataformas Windows, o XFS, que tinha praticamente o mesmo objetivo 
       que o J/XFS. 
        
        
         
        
        
       O J/XFS oferece essas interfaces padronizadas para 
       diversos dispositivos, tais como leitor de cartões, distribuidor de 
       dinheiro, etc... Dessa maneira, existe uma portabilidade muito grande de 
       aplicações J/XFS já desenvolvidas, pois um programa J/XFS que é 
       executado, digamos, em um caixa eletrônico, deverá rodar em QUALQUER 
       outro ATM cuja plataforma faça uso do J/XFS. 
 Além disso, com o J/XFS, um cliente não precisa ficar “amarrado” a um 
       determinado fornecedor de dispositivos, pois como o padrão deixa 
       transparente para a aplicação as peculiaridades de um certo periférico, 
       trocar um componente de uma plataforma se torna muito simples, bastando 
       apenas atualizar seu respectivo Device Service.
 
 
          |  |  | 
        A arquitetura básica do J/XFS (figura 1) tem definidas as seguintes 
        camadas:
 -J/XFS Device Manager
 -J/XFS Device Control
 -J/XFS Device Communication
 -J/XFS Device Service
 
 A implementação do kernel do J/XFS provê as três primeiras camadas, ao 
        passo que a camada do "Device Service" deve ser fornecida pelo 
        fabricante do hardware, como se fosse um driver.
 
 
        O "Device Manager" é um controlador central que organiza o acesso e a 
        localização dos diversos componentes de hardware instalados em uma 
        plataforma bancária. Existe somente uma instância do "Device Manager" em 
        uma determinada Java Virtual Machine (JVM). 
 A API do "Device Control" (DC) define a maneira pela qual a aplicação em 
        Java irá se comunicar com o dispositivo físico. Cada classe geral de 
        dispositivos possui um DC diferente. Por exemplo, existe um DC para 
        impressoras em geral, um DC para leitores de cartão em geral, etc...
 
 A camada "Device Communication" controla o compartilhamento dos 
        dispositivos e também gerencia acesso remoto. A presença da mesma é 
        transparente à aplicação, aos "Device Control" e aos "Device Service“.
 
 A camada do "Device Service" possui uma API definida que permite que as 
        camadas do "Device Control" e do "Device Communication" interajam de 
        fato com o hardware, traduzindo os comandos da interface J/XFS para 
        comandos específicos do dispositivo em uso.
 
 
        Cada dispositivo físico possui exatamente um "Device Service", mesmo que 
        esse dispositivo possua mais de uma funcionalidade, como por exemplo, um 
        leitor de cartão que possa ler trilhas magnéticas e também dados de um 
        chip "smart card". Esses tipos de dispositivos que incorporam múltiplas 
        funcionalidades, são chamados de "dispositivos compostos" ou 
        "dispositivos complexos". 
          
        Por outro lado, um mesmo "Device Service" pode ser usado por diversos "Device 
        Control" distintos. 
          
        A figura 1 ilustra a arquitetura descrita acima: 
          
        Figura 1 - Arquitetura Básica do J/XFS 
          
          
        Figura 2 - O J/XFS em funcionamento com a ferramenta de testes da 
        Diebold   |  |