100 likes | 292 Views
Numeração Única de Processos Judiciais. Cálculos dos Dígitos Verificadores e Considerações sobre implementação Tribunal de Justiça do RS. Cálculo de Dígitos de Verificação. Objetivo principal Adotar algoritmo eficiente para detecção de erros de digitação Objetivo secundário
E N D
Numeração Única de Processos Judiciais Cálculos dos Dígitos Verificadores e Considerações sobre implementação Tribunal de Justiça do RS
Cálculo de Dígitos de Verificação • Objetivo principal • Adotar algoritmo eficiente para detecção de erros de digitação • Objetivo secundário • Simplificar a consulta aos processos
Etapas • Coleta de subsídios • Padrões existentes • Norma ISO 7064:2003 (Tecnologia da Informação, Técnicas de Segurança, Sistemas de Verificação de Caracteres) • Algoritmos avaliados • Algoritmo de Luhn ou Módulo 10 (Norma ISO 7812) • Algoritmo Diédrico de Verhoeff • Algoritmo Módulo 11 Base 10 (Norma ISO 7064) • Algoritmo Módulo 97 Base 10 (Norma ISO 7064)
Algoritmo Escolhido • Algoritmo Módulo 97 Base 10 (Norma ISO 7064) • Alta eficiência na detecção de erros • Erros simples • Omissão ou adição de um dígito • Inversões adjacentes • Erros “gêmeos” • Inversões intercaladas • Erros “gêmeos” intercalados • Erros fonéticos • Baixa complexidade algorítmica • Alta eficiência computacional em testes de stress
Estrutura do Número Único NNNNNNN–DD.AAAA.J.TR.OOOO N6 N5 N4 N3 N2 N1 N0 D1 D0 A3 A2 A1 A0 J2 T1 R0 O3O2O1O0
Cálculo dos Dígitos • Etapa 1 – Preparação N6 N5 N4 N3 N2 N1 N0 D1 D0 A3 A2 A1 A0 J2 T1 R0 O3O2O1O0 N6 N5 N4 N3 N2 N1 N0 A3 A2 A1 A0 J2 T1 R0 O3 O2 O1 O0 01 00 • Etapa 2 – Cálculo D1 D0 = 98 – (N6 N5 N4 N3 N2 N1 N0 A3 A2 A1 A0 J2 T1 R0 O3 O2 O1 O0 01 00 mod 97)
Verificação dos Dígitos • Etapa 1 – Preparação N6 N5 N4 N3 N2 N1 N0 D1 D0 A3 A2 A1 A0 J2 T1 R0 O3O2O1O0 N6 N5 N4 N3 N2 N1 N0 A3 A2 A1 A0 J2 T1 R0 O3 O2 O1 O0 D1 D0 • Etapa 2 – Cálculo (N6 N5 N4 N3 N2 N1 N0 A3 A2 A1 A0 J2 T1 R0 O3 O2 O1 O0 D1 D0 mod 97) Se o resultado for 1 → 99,4% de chance de não ter havido erro de digitação
Redução da Complexidade Algorítmica • Fatoração do cálculo pela aplicação do Teorema Chinês do Resto N6 N5 N4 N3 N2 N1 N0 A3 A2 A1 A0 J2 T1 R0 O3 O2 O1 O0 01 00 R1 = (N6 N5 N4 N3 N2 N1 N0 mod 97) R2 = ((R1 concatenado com A3 A2 A1 A0 J2 T1 R0) mod 97) R3 = ((R2 concatenado com O3 O2 O1 O0 01 00) mod 97) D1 D0 = 98 - R3
Implementação • Relevância do Número do Processo • Técnicas de Pesquisa • Todo o algoritmo de cálculo de DV gera colisões • Redução de colisões → redução do escopo de pesquisa • Uso de AJAX na Internet • Máscaras de Digitação • Simplificação da digitação • Sensíveis ao escopo
Implementação • Chaves Naturais X Chaves Internas • Complexidade da chave X eficiência • Migração de chaves • Ambientes Orientados a Objetos → ObjectID • Frameworks de persistência • Utilização de visões