Utilizao de Micro servios Java em Nuvem com
- Slides: 58
Utilização de Micro serviços Java em Nuvem com Oracle APEX Igor Augusto de Faria Costa Auditor Federal de Finanças e Controle Fabio dos Santos Barbosa Auditor Federal de Finanças e Controle
Apresentação 1. Introdução 2. Stored Procedures em Java – Vantagens e Desvantagens 3. Micro serviços 1. Arquitetura descentralizada e suas vantagens; 2. Criação de um micro serviço em Java; 3. Execução na nuvem 4. Integração no APEX com micro serviços: 1. Por meio do Plug-in Servitium; 2. Por meio do Micro: APP e Plug-in APEX. 3. Demonstração.
Introdução Oracle APEX Programação em PL/SQL
Introdução Oracle APEX Programação em PL/SQL
Introdução Processos Dynamic Actions PL/SQL Dynamic Regions Relatórios Plug-ins
Introdução Processos Dynamic Actions PL/SQL Dynamic Regions Tem como. PL/SQL fazer de tudo? Relatórios Plug-ins
Introdução Possível PL/SQL • • • Cálculos Matemáticos Reorganização de dados Envio de E-mails Geração de HTML padronizado Integração com Web Services E infinitas outras coisas! Quase tudo. . . “Impossível” • Integração com SMTP; • Listar arquivos em um diretório;
Introdução PL/SQL Possível • • • Java Cálculos Matemáticos Reorganização de dados Envio de E-mails Geração de HTML padronizado Integração com Web Services E infinitas outras coisas! Quase tudo. . . “Impossível” • Integração com SMTP; • Listar arquivos em um diretório;
Introdução Java Stored Procedures Java PL/SQL
Java Stored Procedures Java public class Hello. World { // Método estático que retorna o texto do Hello World public static String get. Hello. World. Text() { return "Hello World all the folks from ODT 2017!"; } }
Java Stored Procedures
Java Stored Procedures
Java Stored Procedures
Java Stored Procedures
Java Stored Procedures CREATE FUNCTION GET_HELLO_WORLD_TEXT RETURN VARCHAR 2 AS LANGUAGE JAVA NAME 'Hello. World. get. Hello. World. Text() return java. lang. String';
Java Stored Procedures
Java Stored Procedures Vantagens Desvantagens • Flexibilidade e organização do Java no PL/SQL ou APEX; • Bibliotecas; • SQLJ • Demora para atualizar as classes; • Dificuldade em incluir bibliotecas; • Dificuldades de migração na atualização do APEX ou do Oracle. • Executa direto no banco.
Micro serviços
Micro Serviços • Arquitetura onde a aplicação é uma coleção de serviços com baixo acoplamento e que implementam capacidades de negócio. (Chris Richardson – Microservices. io) • Uma forma de projetar aplicações como conjuntos de serviços independentes publicáveis (Martin Fowler) Componentes SOA Web Services REST Containers
Micro Serviços - Características Arquitetura descentralizada Containers Escalabilidade Especificidades das linguagens Python Java C# PHP Organização e Otimização Baixo acoplamento e autônomos Manutenções do APEX independentes. Reutilizáveis.
Micro Serviços – Exemplo de paradigmas SISTEMA ABC Módulo cadastral em APEX ID as a Service candidatos Candidatos Apuração Login Múltiplas Instâncias Apuração
Micro Serviços – O que eu preciso • Monitoramento mínimo • Integração contínua • Deploy Ágil • Cultura devops • Código compatível
Micro Serviços – The Twelve-Factor App • • • Codebase Dependencies Config Backing services Build, release, run Processes Port binding Concurrency Disposability Dev/prod parity Logs Admin processes
Micro Serviços – Demo utilizando SPARK Demonstração.
Micro Serviços – Demo utilizando SPARK <dependencies> <!-- api de microserviços --> <dependency> <group. Id>com. sparkjava</group. Id> <artifact. Id>spark-core</artifact. Id> <version>2. 6. 0</version> </dependency> <!-- Biblioteca de log --> <!-- https: //mvnrepository. com/artifact/org. slf 4 j/slf 4 j-simple --> <dependency> <group. Id>org. slf 4 j</group. Id> <artifact. Id>slf 4 j-simple</artifact. Id> <version>1. 7. 25</version> </dependency> </dependencies>
Micro Serviços – Demo utilizando SPARK Build/plug-ins/plugin Group id: org. apache. maven. plug-ins artifact. Id: maven-compiler-plugin version: 2. 3. 2 Configuration/Source e Configuration/Target: 1. 8 artifact. Id: maven-assembly-plugin executions/execution phase: package goals/goal: single configuration/descript. Refs/descriptor. Ref: jar-with-dependencies archive/manifest/main. Class: br. gov. tesouro. main. Main
Micro Serviços – Demo utilizando SPARK package br. gov. tesouro. main; import static spark. Spark. *; public class Main { public static void main(String[] args) { get("/hello", (req, res) -> "Hello World"); } }
Micro Serviços – Demo utilizando SPARK
Micro Serviços – Demo utilizando SPARK
Micro Serviços – Demo utilizando SPARK #DOCKERFILE FROM openjdk: 8 -jdk-alpine WORKDIR /opt/ ADD target/Hello. World-0. 0. 1 -SNAPSHOT-jar-with-dependencies. jar /opt/Hello. World-0. 0. 1 -SNAPSHOT-jar-with-dependencies. jar EXPOSE 4567 CMD ["java", "-jar", "/opt/Hello. World-0. 0. 1 -SNAPSHOT-jar-withdependencies. jar"]
Micro Serviços – Demo utilizando SPARK
Micro Serviços – Demo utilizando SPARK
Integração no Oracle APEX Servitium Micro Serviço Aplicação APEX Plug-in
Integração no Oracle APEX Servitium Micro Serviço Aplicação APEX Plug-in
Integração no Oracle APEX Servitium Plug-in do tipo “Processo” Conexão REST com serviços Interpreta os resultados JSON e XML
Endereço do Serviço Método do Serviço (GET/POST/PUT/DELETE) Headers do Serviço Payload Onde será guardado o resultado Num Item O texto inteiro
O resultado será guardado num Item O Item é P 90_VALOR Parseando XML Usando este caminho
O resultado será guardado num Item O Item é P 90_VALOR Parseando JSON Usando este caminho
Tabela APEX_COLLECTIONS Nome Nulo? Tipo -------------COLLECTION_NAME NOT NULL VARCHAR 2(255) SEQ_ID NOT NULL NUMBER C 001 VARCHAR 2(4000) C 002 VARCHAR 2(4000) C 003 VARCHAR 2(4000) C 004 VARCHAR 2(4000) C 005 VARCHAR 2(4000) C 006 VARCHAR 2(4000) C 007 VARCHAR 2(4000) C 008 VARCHAR 2(4000) C 009 VARCHAR 2(4000) C 010 VARCHAR 2(4000) C 011 VARCHAR 2(4000) C 012 VARCHAR 2(4000) C 013 VARCHAR 2(4000) C 014 VARCHAR 2(4000) C 015 VARCHAR 2(4000)
Resultado estará em Collection Na collection “MINHA_COLLECTION” O texto inteiro Ele vai colocar o resultado em uma linha da collection e na coluna c 001.
Resultado estará em Collection Na collection “MINHA_COLLECTION” Vai fazer parse do XML Usando este caminho para loop E estes caminhos para os atributos
<turma> Para cada linha que se repetir com o caminho: <aluno> <nome>Arlindo</nome> /turma/aluno/ <sobrenome>da Souza</sobrenome> <idade>12></idade> </aluno> Ele vai procurar esses 3 atributos: <aluno> <nome>João Pedro</nome> /aluno/nome/text(), /aluno/sobrenome/text(), /aluno/idade/text() <sobrenome>Barbosa</sobrenome> <idade>15></idade> </aluno> <nome>Fulano</nome> <sobrenome>de Tal</sobrenome> <idade>11></idade> /aluno/nome/text() c 001 </aluno> <nome>Ciclano</nome> /aluno/sobrenome/text() c 002 <sobrenome>de Tal</sobrenome> <idade>16></idade> </aluno> /aluno/idade/text() c 003 </turma> XML Collection
<turma> <aluno> <nome>Arlindo</nome> <sobrenome>da Souza</sobrenome> <idade>12></idade> </aluno> <nome>João Pedro</nome> <sobrenome>Barbosa</sobrenome> <idade>15></idade> </aluno> <nome>Fulano</nome> <sobrenome>de Tal</sobrenome> <idade>11></idade> </aluno> <nome>Ciclano</nome> <sobrenome>de Tal</sobrenome> <idade>16></idade> </aluno> </turma> select COLLECTION_NAME, SEQ_ID, c 001, c 002, c 003 from apex_collections where collection_name = 'MINHA_COLLECTION' COLLECTION_NAME SEQ_ID C 001 C 002 C 003 MINHA_COLLECTION 1 Arlindo da Souza 12 MINHA_COLLECTION 2 João Pedro Barbosa 15 MINHA_COLLECTION 3 Fulano de Tal 11 MINHA_COLLECTION 4 Ciclano de Tal 16
Resultado estará em Collection Na collection “MINHA_COLLECTION” Vai fazer parse do JSON Usando este caminho para loop E estes caminhos para os atributos
Integração no Oracle APEX Micro Serviço Aplicação APEX Plug-in e App APEX
Basta referenciar o serviço cadastrado no MICRO e o Método. É possível passar parâmetros, que são substituídos no header e no payload, onde eles estiverem. Por fim, define onde será gravado o resultado.
Também disponível para uso em PL/SQL: declare r_micro pkg_micro. t_micro; r_collections pkg_micro. t_table_collection; begin r_micro : = pkg_micro. cria_servico(OBTEM_DADOS_TURMA', 'GET'); pkg_micro. add_parametro(r_dados_micro, 'ID-TURMA‘, 1); r_collections : = pkg_micro. get_table_collection_resultado(r_micro); for i in 1. . r_collections. count loop dbms_output. put_line(r_collections(i). c 001); end loop; end;
Micro Serviços – para saber mais • https: //martinfowler. com/articles/microservices. html • Microservices. io • https: //12 factor. net/ • http: //sparkjava. com/ • https: //youtu. be/h. CMc. Qf. Gb 4 c. A
Plug-ins e Apps disponibilizados no SCIENTIA https: //sisweb. tesouro. gov. br/apex/f? p=SCIENTIA: 1: :
Obrigado! Igor Augusto de Faria Costa Fabio dos Santos Barbosa Auditor Federal de Finanças e Controle igor. a. costa@tesouro. gov. br Auditor Federal de Finanças e Controle fabio. s. barbosa@tesouro. gov. br Agradecimentos à Equipe: Fabio Alexandre de Araújo Lima Gerente Gabriel Reis de Sousa Diego Carvalho Souza Auditor Federal de Finanças e Controle João Rodrigo Ferreira de Silva Sousa José Gabriel Hermes Cavalcanti Auditor Federal de Finanças e Controle Estagiário
- Servios pizza
- Dậy thổi cơm mua thịt cá
- Cơm
- Serviços em nuvem apex
- Nuvem
- Convites de cha de panela
- Nuvem
- Unifi controller na nuvem
- Nuvem tetra
- Java platform micro edition
- Import java
- Programming language b
- Import javax.swing.*
- Java import java.util.*
- Java import java.io.*
- Javatpoint ejb
- Java.util.random
- Import java util
- Perbedaan antara java swing dan awt adalah
- Java number
- Import java.io.*
- Import java.util.*
- Import java.awt.event
- Import java.util.*
- Micro albumine waarde
- Micro computer security
- Definitions of microteaching
- Paw welding process
- Site:slidetodoc.com
- Micro service transition
- Mini lab extruder
- Micro schedule
- Macro environnment
- Port agp
- Micro datacenter
- How to find excess capacity on a graph
- How to use a micro pipette
- San francisco vikings soccer club
- History of software
- Dragalin
- Micro bit torrent
- What are the advantages of micro teaching
- Mtca system
- Micro and macro circulation
- Advantage of micro teaching
- Micro meso macro
- Nano puissance de 10
- Micro watershed
- Explain the register transfer language
- Sdn controller open source
- Macro entorno
- Micro-plan
- Prefijos y notacion cientifica
- Micro biit
- Micro unit symbol
- Micro leasing meaning
- Attawfiq microfinance
- What are the disadvantage of micro teaching
- Milli chemistry