Institui os critérios e diretrizes técnicas para o processo de desenvolvimento de módulos e serviços na Plataforma Digital do Poder Judiciário Brasileiro – PDPJBr.
O PRESIDENTE DO CONSELHO NACIONAL DE JUSTIÇA (CNJ), no uso de suas atribuições legais e regimentais,
CONSIDERANDO as diretrizes contidas na Resolução CNJ nº 335/2020, que institui a política pública para a governança e gestão de sistemas judiciais por meio da Plataforma Digital do Poder Judiciário Brasileiro – PDPJ-Br;
CONSIDERANDO que a Plataforma Digital do Poder Judiciário Brasileiro – PDPJ-Br é composta por um conjunto de aplicações e microsserviços mantidos de forma colaborativa por diferentes órgãos e instituições, e que deve funcionar de forma harmônica com o objetivo de padronizar o acesso ao trâmite processual, a troca de dados, a interação entre os diversos sistemas, favorecendo a centralização de acesso por todos;
CONSIDERANDO a conveniência da implementação de um conceito comunitário, no qual todos os tribunais, independentemente do segmento de justiça, possam contribuir com as melhores soluções tecnológicas em benefício comum, assegurando uma melhor gestão da jurisdição digital e respeitando-se a autonomia dos tribunais;
CONSIDERANDO o papel fundamental da implantação de uma política de governança e de gestão unificadas com o estabelecimento de padrões que possam atender à diversidade de soluções existentes em todos os segmentos do judiciário para o bom funcionamento da Plataforma;
CONSIDERANDO que a governança e a gestão devem ser pautadas por padrões que busquem a melhor experiência dos usuários no aspecto da usabilidade e acessibilidade, na velocidade da entrega de novas soluções de forma a atender ao cidadão e a sociedade com maior efetividade;
RESOLVE:
Art. 1º Instituir os critérios e diretrizes técnicas para o processo de desenvolvimento de módulos e serviços na Plataforma Digital do Poder Judiciário Brasileiro – PDPJ-Br.
Art. 2º A PDPJ-Br fornecerá padrões de ApplicationProgramming Interface (API), de modelos de dados e domínio, de eventos e mensagens, com os respectivos documentos de referência, que permitam desenvolvedores criarem, manterem e evoluírem as aplicações que compõem a Plataforma.
Art. 3º O processo de disponibilização de soluções para a Plataforma será comunitário e descentralizado, podendo dele participar quaisquer tribunais brasileiros, órgãos públicos externos e, nos termos desta Portaria, particulares.
§ 1º Os tribunais e órgãos externos, bem como os particulares admitidos a colaborar com a Plataforma, indicarão livremente os desenvolvedores e analistas que participarão dos projetos, os quais terão acesso às ferramentas centralizadas de controle de demandas e de versionamento de código e arquivos do CNJ.
§ 2º Os profissionais serão identificados por órgão e área de atuação (negocial ou técnica), devendo-se adotar mecanismos de reputação, tendo em vista a efetiva participação, quantidade e qualidade das contribuições dos participantes, a fim de criar incentivos positivos da participação comunitária.
Art. 4º O CNJ disponibilizará em sítio próprio (marketplace) a lista de projetos em andamento, concluídos, e pendentes de serem integrados à PDPJ-Br.
§ 1º O tribunal que desejar colaborar com o desenvolvimento de algum dos serviços e soluções, ou disponibilizar serviço ou solução por ele já desenvolvida, poderá formalizar seu interesse por e-mail dirigido ao endereço eletrônico , devendo ser realizada, na sequência, reunião inaugural (kickoff) para alinhamento de expectativas.
§ 2º O CNJ acompanhará a execução dos projetos em desenvolvimento, por meio da designação de líder técnico, que será o responsável por orientar os tribunais acerca dos critérios técnicos a serem seguidos para o desenvolvimento de cada solução, conforme as diretrizes desta Portaria.
§ 3º O andamento do projeto também será acompanhado pelo Escritório de Projetos do Departamento de Tecnologia da Informação e Comunicação do CNJ.
Art. 5º Os serviços e aplicações integrados à Plataforma serão classificados da seguinte forma:
I – serviços estruturantes: serviços que implementam as funcionalidades essenciais básicas para um sistema de processo judicial de tramitação eletrônica, bem como àqueles serviços necessários à integração, à coreografia e à interoperabilidade entre os serviços e soluções que compõe a Plataforma;
II – serviços negociais: serviços que implementam necessidade de negócio relevante para a tramitação de processo judicial eletrônico e sistemas judiciais, tais como distribuição de processos, controle de custas, comunicação de atos, controle de agendamento de audiências, central de mandados, dentre outros;
III – serviços de integração com sistemas externos: serviços que fazem interface com sistemas, serviços e/ou aplicações externas ao Poder Judiciário, como o sistema de penhora on-line fornecido em parceira com o Banco Central (Sisbajud), o sistema de envio eletrônico de correspondências pela Empresa Brasileira de Correios e Telégrafos (eCARTA), dentre outros de especial interesse à prestação do serviço jurisdicional; e
IV – soluções e aplicações da comunidade externa ao judiciário: serviços desenvolvidos por entes externos ao judiciário voltados a atender às suas necessidades, adotando padrões de API que se integrem à PDPJ-Br mediante chancela do Poder Judiciário.
Art. 6º A PDPJ-Br seguirá modelo arquitetural de microsserviços, preferencialmente modelados utilizando-se a metodologia Domain Driven Design (DDD).
Parágrafo único. A interação entre os microsserviços da Plataforma adotará o modelo de coreografia, em que cada microsserviço deve possuir inteligência sobre seu próprio domínio, com alto nível de desacoplamento, interagindo com os demais microsserviços por meio de serviço centralizado de mensageria (MessageBroker).
Art. 7º O módulo ou microsserviço que se assemelhar a uma ou mais funcionalidades presentes nos sistemas processuais, deverá observar a necessidade de decomposição da aplicação monolítica existente.
§ 1º O trabalho de decomposição começará pela identificação do domínio a ser extraído, utilizando-se estratégias baseadas em DDD. Identificado o domínio, será iniciada a modelagem por meio de histórias construídas em conjunto por desenvolvedores e especialistas do domínio (Domain Experts).
§ 2º Finalizada a modelagem de domínio, deverá ser iniciada a modelagem da API, que será implementada ainda dentro da aplicação monolítica, mas com vistas à implementação do microsserviço a ser desenvolvido. A criação da API servirá para delinear a construção do microsserviço fora da aplicação monolítica.
§ 3º A aplicação monolítica precisará ser adaptada para utilização da nova API, ao invés de mecanismos nativos, por exemplo, JSF, Richfaces, componentes Seam, etc.
§ 4º O modelo relacional precisará ser desacoplado com a extinção de constraints baseadas em chaves e os dados deverão ser migrados para o novo banco de dados do microsserviço.
§ 5º O CNJ proverá uma série de microsserviços denominados módulos estruturantes, que já disporão de diversas APIs comuns ao relacionamento com o processo judicial, com vistas a não ser necessária a incorporação de diversas APIs nos sistemas monolíticos legados.
Art. 8º Os registros dos microsserviços na PDPJ-Br ocorrerão no Service Discovery (SD) do CNJ, no qual um SD cataloga os serviços que compõem a Plataforma, registrando o nome da instância, o serviço ao qual ela responde e seu endereço de rede. Parágrafo único. O SD é implementado utilizando a ferramenta NetflixEureka, através da implementação do Spring CloudNetflix.
Art. 9º Os microsserviços deverão ser versionados utilizando o sistema de controle de versões Git.
§ 1º Os repositórios deverão ser hospedados na Plataforma disponibilizada pelo CNJ.
§ 2º A criação do repositório em seu respectivo grupo deve ser efetuada pela gestão da Divisão do Processo Judicial Eletrônico Nacional (DPJE).
§ 3º A partir da criação do repositório serão atribuídas as permissões de acesso e controleaos líderes técnicos de cada projeto.
Art. 10. Deverá ser adotada, preferencialmente, a linguagem de programação Java, utilizando-se o framework Spring com Springboot, utilizando como referência o projeto Sample Service, disponível no endereço eletrônico como template.
Parágrafo único. Na utilização de outra linguagem de programação ou framework de desenvolvimento, a solução deverá atender a todos os padrões de desenvolvimento descritos nesta Portaria.
Art. 11. O acesso aos microsserviços deverá ser protegido com mecanismos de autenticação e autorização baseado em OAuth2 a ser provido pelo serviço de Single Sign-On (SSO) da PDPJ-Br permitindo a interligação às diversas bases de usuários de diferentes sistemas de processo eletrônico e utilizando conceito de federação de bases pela implementação de provedores de acesso customizados.
§ 1º Todos os provedores implementados com o propósito de integração da PDPJ-Br ao PJe estão versionados no Git por meio do projeto PJe-KC.
§ 2º Os demais sistemas processuais deverão desenvolver seus próprios provedores de acesso, para integração ao serviço unificado de autenticação (SSO).
Art. 12. Os microsserviços desenvolvidos na PDPJ-Br precisam ser coesos e guardar a característica stateless, possibilitando maior escalabilidade em ambiente voltado à contêineres, como o Kubernetes. Parágrafo único. A escalabilidade deverá ter elasticidade em padrão horizontal, permitindo que réplicas do mesmo microsserviço possam ser instanciadas ou desmobilizadas de forma a atender mais adequadamente a demanda pelo respectivo serviço.
Art. 13. Deverão ser utilizados recursos de ContinuousIntegration (CI), permitindo execução de pipelines, testes automatizados e registro no repositório de imagens.
Parágrafo único. Sempre que possível deve ser adotada a prática de Continuous Delivery (CD), quando compatível com a natureza específica de cada projeto.
Art. 14. As soluções presentes na PDPJ-Br deverão conter artefatos de testes automatizados com incentivo às práticas de Test DrivenDevelopment (TDD), contando com testes de unidade e de integração.
Parágrafo único. É obrigatória a produção de relatório de cobertura de testes automatizados, o qual deverá ser atualizado a cada execução do pipeline de integração contínua.
Art. 15. A documentação de cunho negocial e técnico deverá ser produzida para cada solução presente na PDPJ-Br, e os microsserviços também terão que prover documentação técnica referente à API disponibilizada, utilizando o padrão OpenAPI 3.0.
Art. 16. Os microsserviços deverão prover APIs correspondentes a seu contexto de negócio ou funcional.
§ 1º As APIs deverão ser providas por meio de tecnologia REST e obedecer aos padrões definidos na Plataforma de documentações do CNJ, disponível em .
§ 2º A definição do design da interface das APIs, observando as melhores práticas e buscando atender o maior número de situações e contextos em que o microsserviço pode ser utilizado, deve constituir entrega própria e prioritária.
Art. 17. As soluções baseadas em microsserviços deverão empregar o mecanismo de messagebrokering, por meio do qual trafegam as mensagens com os eventos propagados pelos microsserviços, provocando comportamentos e ações de acordo com os contextos de cada serviço, bem como propiciando a declaração de filas para recebimento de mensagens relevantes produzidas por outros serviços.
Parágrafo único. O formato de comunicação entre os microsserviços por meio de mensageria dar-se-á conforme documentação provida pela Plataforma de documentações do CNJ.
Art. 18. As APIs disponibilizadas pelos microsserviços serão acessadas através de um serviço de borda denominado gateway, que é utilizado para receber requisições dos diversos clientes de API e direcionar essas requisições aos serviços responsáveis pelo processamento.
Art. 19. A identidade visual dos módulos desenvolvidos dentro da PDPJ-Br deverá adotar o conjunto de ferramentas desenvolvido pelo CNJ, denominada de UIKit, com a finalidade de padronizar a interface gráfica dos módulos, uniformizando os aspectos da usabilidade, acessibilidade e experiência do usuário.
Art. 20. As soluções da Plataforma podem utilizar recursos computacionais próprios em ambiente exclusivo ao de desenvolvimento mantido diretamente pelos órgãos e instituições aderentes ou contratados em serviço de nuvem computacional.
§ 1º No caso de utilização de nuvem computacional de terceiros deve-se observar os princípios e diretrizes relacionados à Segurança da Informação para o tratamento da informação em ambiente de Computação em Nuvem dispostos na Portaria SGI nº 9/2018.
§ 2º A nuvem de serviço utilizará a infraestrutura baseada em conteinerização de código aberto que permitirá a criação e uso de contêineres, bem como a orquestração desses contêineres sendo gerenciada por um sistema também de código aberto.
Art. 21. Soluções que utilizam Inteligência Artificial, deverão estar de acordo com o disposto nos termos da Resolução CNJ nº 332/2020, que disciplina a ética, a transparência e a governança na produção e no uso de Inteligência Artificial no Poder Judiciário e dá outras providências.
Art. 22. Cada tribunal ou ente participante do ecossistema de Justiça, para desenvolvimento de módulos ou usufruto dos serviços disponibilizados pela Plataforma, deverá assinar Termo de Cooperação Técnica, conforme modelo estabelecido pela Gerência Executiva da PDPJ-Br.
Art. 23. Cumprirá ao Departamento de Tecnologia da Informação e Comunicação do CNJ a responsabilidade de prover a manutenção e detalhamento dessas diretrizes técnicas em portal próprio, de modo a atender plenamente o disposto nesta Portaria.
Art. 24. Esta Portaria entra em vigor na data da sua publicação.
Ministro LUIZ FUX