SlideShare uma empresa Scribd logo
1 de 40
Perguntas Apresentação Anterior
- Pop e remove qual a diferença ? Pop retorna o objeto, remove um booleano.
- Variaveis atomicas no syncronized ? São variaveis thread-safe, trabalham com
dois parametros(atual valor,novo valor) sempre apos um set fazem um get.
- Daemon Thread o que e como funciona ? Daemon threads são interrompidas
quando a thread principal, servem as threads user.(GC)
- Como funciona a comparação em java ? Com “==” compara a referencia do
objeto, para comparar se um objeto tem os mesmos atributos deve-se sobreescrever o
equals e hash
- Como a jvm trabalha com threads ? as threads são escalonadas de forma
preemptiva seguindo a metodologia “round-robin”. Isso quer dizer que o
escalonador pode pausá-las e dar espaço e tempo para outra thread ser executada.
Java 8 – Interfaces Funcionais
Exemplo:
#Somente um metodo abstrato.
#Instanciação em classe anonima.
#Possibilita o uso de lambda.
Thread implementa Runable esta tendo apenas run();
Java 8 – Streams(JEP 107)
Reduzir a preocupação do
desenvolvedor com a forma de
implementar controle de fluxo
ao lidar com coleções,
deixando isso a cargo da API.
Motivo:
Java 8 – Streams(JEP 107)
Exemplo De Uso
Java 8 – Metodos Default
Interface Iterable metodo forEach implementado Default.
Java 8 – Metodos Default
Java 7 – Metodos eram declarados nas interfaces e tinham
que ser implementados na classe que a utilizava.
Java 8 – Metodos default permitem ser implementados na
interfaces fazendo com que não há a necessidade da classe
abaixo implementa-lo. E ainda podem ser sobrescritos.
Facilita a manutenção, caso necessite alterar a interface não
será necessario alterar quem a implementa.
Java 9 – Java Modular(Jigsaw JEP 200;376)
#Modularizar o jdk
#Permitir o desenvolvimento de aplicações modulares.
#isolar as bibliotecas de terceiros
#melhorar o encapsulamento e fugir do famoso jarHell.
Motivação :
Java 9 – Java Modular(Jigsaw JEP 200;376)
Estrutura java 9
Java 9 – Java Modular(Jigsaw JEP 200;376)
EXEMPLO ARQUIVO MODULE-INFO
Exports: Para poder importar um pacote de outro modulo primeiro deve exporta-lo.
Requires: Adiciona uma dependencia ao pacote solicitado.
Caso seja declarado como static ele se torna opcional em tempo de execução.
Java 9 – Java Modular(Jigsaw JEP 200;376)
Modularizado:
#O que não era necessario importação continua dessa forma
(fazem parte do modulo principal).
#Encapsulamento mais forte.
#redução e explicitação de dependencias entre componentes.
#não teremos mais de uma versão da mesma classe em
runtime(ResolutionException) assim evitando jarhell.
Java 9 – Java REPL(Jshell JEP222)
Read-Evaluate-Print-Loop(REPL) – Fornece algo ao console e
é processado automaticamente.
Java 9 – Java REPL(Jshell JEP222)
Detalhes :
#Jshell necessita dos imports eternos tambem.(Shift+Tab+i) .
#Pode usar classes locais criadas pelo usuario.
Vantagens :
Principal vantagem no uso do jshell é não ter a necessidade de criar todo o
projeto para testar algo simples...modificando muito a forma de se aprender java.
Java 10 – Local-Variable Type Inference (JEP286)
Var :
Java 9
Java 10
Java 10 – Local-Variable Type Inference (JEP286)
#Somente variáveis locais com inicializadores.
#Não funciona com retorno de metodo nem com lambda.
Java 10 – Garbage Collector Interface(JEP 304)
Antes : Codigo utilizados pelos GC’s espalhados pelo jdk.
Depois: Interface controlando os GC’s assim facilitando a evolução
dos mesmos e criação de novos, alem de organizar o codigo dos
mesmos.
Tornar mais fácil excluir um GC de uma compilação do JDK
A interface do GC pela classe existente CollectedHeap, que todo GC
precisa implementar. Conduziria a maioria dos aspectos de
interação entre o GC e o restante do HotSpot
Java 11 - Local-Variable Syntax for Lambda
Parameters(JEP 323)
Permite a inferência de tipos para variáveis locais em expressões
lambda.
Todas as veriaveis(var);
Utilidade:
Exemplo:
Java 11 - Local-Variable Syntax for Lambda
Parameters(JEP 323)
Vantagem :
#ajudam a reduzir o número de erros no código.
#O compilador pode emitir alertas ao concluir que o código
não atende a certos requerimentos.
Exemplo de Erro:
Programas de arquivo único - em que todo o programa se encaixa em um único
arquivo de origem - são comuns nos estágios iniciais de aprendizado do Java.
Famoso HelloWorld.java.
Por exemplo, se um arquivo chamado HelloWorld.java contém uma classe chamada
hello.World, então o comando abaixo vai compilar e executar o HelloWorld
java HelloWorld.java.
Java 11 - Launch Single-File Source-Code
Programs(JEP 330)
Protocolo HTTP
HyperText Transfer Protocol
● ​​​​permite a comunicação entre
clientes(User-agent) e servidores
através da internet.
● Request = requisição.
● Response = resposta.
Protocolo HTTP
GET:
#Exemplo de GET no java:
#Mensagem referente a solicitação:
#Resposta da solicitação:
Protocolo HTTP
POST:
#Exemplo de POST no java:
#Mensagem referente a solicitação:
#Resposta da solicitação:
Protocolo HTTP
Protocolo HTTP
● GET
Solicita a representação de um determinado recurso.
● POST
As informações enviadas no corpo (body) da requisição são utilizadas para criar um novo recurso.
● PUT
Atualiza um recurso na URI especificada. Caso o recurso não exista, ele pode criar um..
● DELETE
O método DELETE remove um recurso específico.
Metodos (Verbos HTTP).
Protocolo HTTP
● OPTIONS
É utilizado para que um cliente possa descobrir quais as opções de requisição permitidas para um
determinado recurso em um servidor.
● CONNECT
Serve para uso com um proxy que possa se tornar um túnel SSL (um túnel pode ser usado, por
exemplo, para criar uma conexão segura).
● TRACE
Devolve a mesma requisição que for enviada veja se houve mudança e/ou adições feitas por
servidores intermediários.
● HEAD
O método HEAD solicita uma resposta de forma idêntica ao método GET, porém sem conter o corpo
da resposta.
Metodos (Verbos HTTP).
Protocolo HTTP – STATUS
Status:
200 OK
A requisição foi bem sucedida.
301 Moved Permanently
O recurso foi movido permanentemente para outra URI.
302 Found
O recurso foi movido temporariamente para outra URI.
304 Not Modified
O recurso não foi alterado.
401 Unauthorized
A URI especificada exige autenticação do cliente. O cliente pode tentar fazer novas requisições.
403 Forbidden
O servidor entende a requisição, mas se recusa em atendê-la. O cliente não deve tentar fazer uma nova requisição.
404 Not Found
O servidor não encontrou nenhuma URI correspondente.
405 Method Not Allowed
O método especificado na requisição não é válido na URI. A resposta deve incluir um cabeçalho Allow com uma lista dos métodos aceitos.
410 Gone
O recurso solicitado está indisponível mas seu endereço atual não é conhecido.
500 Internal Server Error
O servidor não foi capaz de concluir a requisição devido a um erro inesperado.
502 Bad Gateway
O servidor, enquanto agindo como proxy ou gateway, recebeu uma resposta inválida do servidor upstream a que fez uma requisição.
503 Service Unavailable
O servidor não é capaz de processar a requisição pois está temporariamente indisponível.
Protocolo HTTP2
●
Fluxos multiplexados - capacidade de dividir uma mensagem HTTP em frames
independentes;
●
Server Push - pode mandar alguns recursos para o navegador sem ele mesmo ter
requisitado ainda;
● Headers HPACK - os headers são binários e comprimidos usando um algoritmo
chamado HPACK
● Prioridades e dependências - priorizar os recursos necessários para o usuário
começar a ver a página e interagir e deixar coisas secundárias pra depois;
novidades do HTTP 2.0
Protocolo HTTPS
HTTPS – Conexão segura.
incluem a chave SSL de 2048 bits e podem proteger uma conexão
de site por meio de autenticação e criptografia.
SOA X MICROSERVICES
Serviços
● é uma unidade de software que executa
uma função de negócio;
● Contrato definido:(entrada, saída,
restrições, comportamentos…);
● Consumidor não tem acesso a detalhes de
implementação;
● Auto contido,independente e modular;
● Pode reutilizar em outros contextos;
● Realiza uma função integralmente;
● Pode ser usado e administrado
individualmente;
● Pode ser combinado com outros serviços;
SOA X MICROSERVICES
SOA X MICROSERVICES
Exemplo ESB Midleware:(SOA)
SOA X MICROSERVICES
Diferenças:
Granularidade de serviço :
- Serviços dentro de MICROSERVICES geralmente tem proposito único
- SOA podem variar o tamanho, é comum ter um serviço representando um produto grande ou
subsistema.
Compartilhamento de componentes : SOA usa muito compartilhamento de serviços, O
SOA aprimora o compartilhamento de componentes, enquanto o MICROSERVICE tenta
minimizar o compartilhamento por meio de “contexto limitado”. Os sistemas construídos
em SOA provavelmente serão mais lentos que a MICROSERVICE.
SOA X MICROSERVICES
Serviços remotos : arquiteturas SOA dependem de mensagens (AMQP, MSMQ) e
SOAP como protocolos de acesso remoto primário. A maioria dos MICROSERVICES
conta com dois protocolos - REST e mensagens simples (JMS, MSMQ), e o protocolo
encontrado no MICROSERVICES é geralmente homogêneo.
Interoperabilidade heterogênea : SOA promove a propagação de múltiplos protocolos
heterogêneos através de seu componente de middleware(ex: zato)de mensagens. O
MICROSERVICES tenta simplificar o padrão de arquitetura reduzindo o número de opções
para integração. Se necessário vários sistemas usando diferentes protocolos em um
ambiente heterogêneo, deve considerar a SOA. Se todos os seus serviços pudessem ser
expostos e acessados através do mesmo protocolo de acesso remoto, o​​
MICROSERVICES seria uma opção melhor.
SOA X MICROSERVICES
MICROSERVICES, são mais
adequados para sistemas menores e
bem particionados, baseados na web,
nos quais os microsserviços
oferecem um controle muito maior
como desenvolvedor.
Quando Usar:
SOA é mais adequada para
ambientes de aplicativos de
negócios grandes e complexos que
exigem integração com muitos
aplicativos heterogêneos, ou seja,
aplicativos menores não são
adequados para SOA, pois não
precisam de um componente de
middleware de sistema de
mensagens.
SOA X MICROSERVICES
EXEMPLOS:
SOA X MICROSERVICES
Popularidade:
SOA X MICROSERVICES
MICROSERVICES grafico “DEATH STAR”
VERSIONAMENTO DE CONTRATO
Versionamento de api’s serve basicamente para não termos quebra de contrato
entre api e seus clientes.
- Versionamento pela URL.
- Versionamento pelo Header.
VERSIONAMENTO DE CONTRATO
URL Endpoint: subdomínio, path ou query string.
● Subdominio
https://api-v1.minhaApi/users.
Quem for consumir pode alterar apenas o subdomínio na requisição.
● Path
https://api.minhaApi/v1/users.
abordagens mais utilizadas, pois além de dar um visual mais clean na URL, facilita a
navegação para outras versões da API,
VERSIONAMENTO DE CONTRATO
● query string:
https://api.minhaApi/user/?version=1.
caiu em desuso, pois além de prejudicar a navegação para outras versões, a legibilidade da URL fica
ruim em cenários de muitos parâmetros na query string.
HEADER:Accept,header customizado
● Accept:
HTTP GET
https://api.minhaApi/user
Accept: application/vnd.minhaApi.v2+json
via HTTP content-type.
VERSIONAMENTO DE CONTRATO
● Header Customizado:
HTTP GET
https://api.minhaApi/user
Api-version: 2
O ponto positivo sua URL permanece intacta, ponto negativo a requisição tem que ser feita
com muito mais cuidado.

Mais conteúdo relacionado

Mais procurados

Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Helder da Rocha
 
Introdução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSPIntrodução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSPManoel Afonso
 
Mvc model view controller - java para desenvolvimento web
Mvc   model view controller - java para desenvolvimento webMvc   model view controller - java para desenvolvimento web
Mvc model view controller - java para desenvolvimento webValdir Junior
 
API de segurança do Java EE 8
API de segurança do Java EE 8API de segurança do Java EE 8
API de segurança do Java EE 8Helder da Rocha
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsDenis L Presciliano
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaEduardo Bregaida
 
Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Eduardo Mendes
 
Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Helder da Rocha
 
Introdução a JPA (2010)
Introdução a JPA (2010)Introdução a JPA (2010)
Introdução a JPA (2010)Helder da Rocha
 
Java 8 - A Evolução da Linguagem
Java 8 - A Evolução da LinguagemJava 8 - A Evolução da Linguagem
Java 8 - A Evolução da LinguagemPetronio Candido
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesRodrigo Cândido da Silva
 
Conhecendo o Zend Framework
Conhecendo o Zend FrameworkConhecendo o Zend Framework
Conhecendo o Zend FrameworkJaime Neto
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetosFrancisco Santos
 

Mais procurados (20)

Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
 
Introdução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSPIntrodução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSP
 
Mvc model view controller - java para desenvolvimento web
Mvc   model view controller - java para desenvolvimento webMvc   model view controller - java para desenvolvimento web
Mvc model view controller - java para desenvolvimento web
 
API de segurança do Java EE 8
API de segurança do Java EE 8API de segurança do Java EE 8
API de segurança do Java EE 8
 
Java 9, 10, 11
Java 9, 10, 11Java 9, 10, 11
Java 9, 10, 11
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e applets
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.java
 
Java Web 1 Introducao
Java Web 1 IntroducaoJava Web 1 Introducao
Java Web 1 Introducao
 
Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1
 
Apache e Java
Apache e JavaApache e Java
Apache e Java
 
Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)
 
Introdução a JPA (2010)
Introdução a JPA (2010)Introdução a JPA (2010)
Introdução a JPA (2010)
 
Java 8 - A Evolução da Linguagem
Java 8 - A Evolução da LinguagemJava 8 - A Evolução da Linguagem
Java 8 - A Evolução da Linguagem
 
Apres s3
Apres s3 Apres s3
Apres s3
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
 
jsp-intro
jsp-introjsp-intro
jsp-intro
 
Conhecendo o Zend Framework
Conhecendo o Zend FrameworkConhecendo o Zend Framework
Conhecendo o Zend Framework
 
Curso de Servlets
Curso de ServletsCurso de Servlets
Curso de Servlets
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
 

Semelhante a Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,

Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
Apresentacao Boas praticas, revisão java, SOLID, KISS, DRY, design patterns, ...
Apresentacao Boas praticas, revisão java, SOLID, KISS, DRY, design patterns, ...Apresentacao Boas praticas, revisão java, SOLID, KISS, DRY, design patterns, ...
Apresentacao Boas praticas, revisão java, SOLID, KISS, DRY, design patterns, ...Vinicius Pulgatti
 
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoModularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoRegis Machado
 
Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0jesuinoPower
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSPledsifes
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Rafael Benevides
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EELuan Felipe Knebel
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationMario Sergio
 
Implementação de Sockets em JAVA
Implementação de Sockets em JAVAImplementação de Sockets em JAVA
Implementação de Sockets em JAVAMarcio Palheta
 
JavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingJavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingEder Magalhães
 
Apostila: Curso de java III
Apostila: Curso de java IIIApostila: Curso de java III
Apostila: Curso de java IIIVerônica Veiga
 

Semelhante a Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO, (20)

Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Apresentacao Boas praticas, revisão java, SOLID, KISS, DRY, design patterns, ...
Apresentacao Boas praticas, revisão java, SOLID, KISS, DRY, design patterns, ...Apresentacao Boas praticas, revisão java, SOLID, KISS, DRY, design patterns, ...
Apresentacao Boas praticas, revisão java, SOLID, KISS, DRY, design patterns, ...
 
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoModularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
 
Palestra Sobre REST
Palestra Sobre RESTPalestra Sobre REST
Palestra Sobre REST
 
Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0
 
Web Sphere
Web SphereWeb Sphere
Web Sphere
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSP
 
JBoss Clustering
JBoss ClusteringJBoss Clustering
JBoss Clustering
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007
 
Trabalho Final PSDC - Simião
Trabalho Final PSDC - SimiãoTrabalho Final PSDC - Simião
Trabalho Final PSDC - Simião
 
Java web
Java webJava web
Java web
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EE
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web Application
 
Estudos Technocorp
Estudos TechnocorpEstudos Technocorp
Estudos Technocorp
 
Implementação de Sockets em JAVA
Implementação de Sockets em JAVAImplementação de Sockets em JAVA
Implementação de Sockets em JAVA
 
JavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingJavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computing
 
Framework struts2v2.5
Framework struts2v2.5Framework struts2v2.5
Framework struts2v2.5
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Apostila: Curso de java III
Apostila: Curso de java IIIApostila: Curso de java III
Apostila: Curso de java III
 

Último

AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxAULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxLaurindo6
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfjanainadfsilva
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfFernandaMota99
 
historia Europa Medieval_7ºano_slides_aula12.ppt
historia Europa Medieval_7ºano_slides_aula12.ppthistoria Europa Medieval_7ºano_slides_aula12.ppt
historia Europa Medieval_7ºano_slides_aula12.pptErnandesLinhares1
 
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxPLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxSamiraMiresVieiradeM
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -Aline Santana
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
Descreve o conceito de função, objetos, imagens, domínio e contradomínio.
Descreve o conceito de função, objetos, imagens, domínio e contradomínio.Descreve o conceito de função, objetos, imagens, domínio e contradomínio.
Descreve o conceito de função, objetos, imagens, domínio e contradomínio.Vitor Mineiro
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 

Último (20)

AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxAULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdf
 
historia Europa Medieval_7ºano_slides_aula12.ppt
historia Europa Medieval_7ºano_slides_aula12.ppthistoria Europa Medieval_7ºano_slides_aula12.ppt
historia Europa Medieval_7ºano_slides_aula12.ppt
 
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxPLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
Descreve o conceito de função, objetos, imagens, domínio e contradomínio.
Descreve o conceito de função, objetos, imagens, domínio e contradomínio.Descreve o conceito de função, objetos, imagens, domínio e contradomínio.
Descreve o conceito de função, objetos, imagens, domínio e contradomínio.
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 

Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,

  • 1. Perguntas Apresentação Anterior - Pop e remove qual a diferença ? Pop retorna o objeto, remove um booleano. - Variaveis atomicas no syncronized ? São variaveis thread-safe, trabalham com dois parametros(atual valor,novo valor) sempre apos um set fazem um get. - Daemon Thread o que e como funciona ? Daemon threads são interrompidas quando a thread principal, servem as threads user.(GC) - Como funciona a comparação em java ? Com “==” compara a referencia do objeto, para comparar se um objeto tem os mesmos atributos deve-se sobreescrever o equals e hash - Como a jvm trabalha com threads ? as threads são escalonadas de forma preemptiva seguindo a metodologia “round-robin”. Isso quer dizer que o escalonador pode pausá-las e dar espaço e tempo para outra thread ser executada.
  • 2. Java 8 – Interfaces Funcionais Exemplo: #Somente um metodo abstrato. #Instanciação em classe anonima. #Possibilita o uso de lambda. Thread implementa Runable esta tendo apenas run();
  • 3. Java 8 – Streams(JEP 107) Reduzir a preocupação do desenvolvedor com a forma de implementar controle de fluxo ao lidar com coleções, deixando isso a cargo da API. Motivo:
  • 4. Java 8 – Streams(JEP 107) Exemplo De Uso
  • 5. Java 8 – Metodos Default Interface Iterable metodo forEach implementado Default.
  • 6. Java 8 – Metodos Default Java 7 – Metodos eram declarados nas interfaces e tinham que ser implementados na classe que a utilizava. Java 8 – Metodos default permitem ser implementados na interfaces fazendo com que não há a necessidade da classe abaixo implementa-lo. E ainda podem ser sobrescritos. Facilita a manutenção, caso necessite alterar a interface não será necessario alterar quem a implementa.
  • 7. Java 9 – Java Modular(Jigsaw JEP 200;376) #Modularizar o jdk #Permitir o desenvolvimento de aplicações modulares. #isolar as bibliotecas de terceiros #melhorar o encapsulamento e fugir do famoso jarHell. Motivação :
  • 8. Java 9 – Java Modular(Jigsaw JEP 200;376) Estrutura java 9
  • 9. Java 9 – Java Modular(Jigsaw JEP 200;376) EXEMPLO ARQUIVO MODULE-INFO Exports: Para poder importar um pacote de outro modulo primeiro deve exporta-lo. Requires: Adiciona uma dependencia ao pacote solicitado. Caso seja declarado como static ele se torna opcional em tempo de execução.
  • 10. Java 9 – Java Modular(Jigsaw JEP 200;376) Modularizado: #O que não era necessario importação continua dessa forma (fazem parte do modulo principal). #Encapsulamento mais forte. #redução e explicitação de dependencias entre componentes. #não teremos mais de uma versão da mesma classe em runtime(ResolutionException) assim evitando jarhell.
  • 11. Java 9 – Java REPL(Jshell JEP222) Read-Evaluate-Print-Loop(REPL) – Fornece algo ao console e é processado automaticamente.
  • 12. Java 9 – Java REPL(Jshell JEP222) Detalhes : #Jshell necessita dos imports eternos tambem.(Shift+Tab+i) . #Pode usar classes locais criadas pelo usuario. Vantagens : Principal vantagem no uso do jshell é não ter a necessidade de criar todo o projeto para testar algo simples...modificando muito a forma de se aprender java.
  • 13. Java 10 – Local-Variable Type Inference (JEP286) Var : Java 9 Java 10
  • 14. Java 10 – Local-Variable Type Inference (JEP286) #Somente variáveis locais com inicializadores. #Não funciona com retorno de metodo nem com lambda.
  • 15. Java 10 – Garbage Collector Interface(JEP 304) Antes : Codigo utilizados pelos GC’s espalhados pelo jdk. Depois: Interface controlando os GC’s assim facilitando a evolução dos mesmos e criação de novos, alem de organizar o codigo dos mesmos. Tornar mais fácil excluir um GC de uma compilação do JDK A interface do GC pela classe existente CollectedHeap, que todo GC precisa implementar. Conduziria a maioria dos aspectos de interação entre o GC e o restante do HotSpot
  • 16. Java 11 - Local-Variable Syntax for Lambda Parameters(JEP 323) Permite a inferência de tipos para variáveis locais em expressões lambda. Todas as veriaveis(var); Utilidade: Exemplo:
  • 17. Java 11 - Local-Variable Syntax for Lambda Parameters(JEP 323) Vantagem : #ajudam a reduzir o número de erros no código. #O compilador pode emitir alertas ao concluir que o código não atende a certos requerimentos. Exemplo de Erro:
  • 18. Programas de arquivo único - em que todo o programa se encaixa em um único arquivo de origem - são comuns nos estágios iniciais de aprendizado do Java. Famoso HelloWorld.java. Por exemplo, se um arquivo chamado HelloWorld.java contém uma classe chamada hello.World, então o comando abaixo vai compilar e executar o HelloWorld java HelloWorld.java. Java 11 - Launch Single-File Source-Code Programs(JEP 330)
  • 19. Protocolo HTTP HyperText Transfer Protocol ● ​​​​permite a comunicação entre clientes(User-agent) e servidores através da internet. ● Request = requisição. ● Response = resposta.
  • 20. Protocolo HTTP GET: #Exemplo de GET no java: #Mensagem referente a solicitação: #Resposta da solicitação:
  • 21. Protocolo HTTP POST: #Exemplo de POST no java: #Mensagem referente a solicitação: #Resposta da solicitação:
  • 23. Protocolo HTTP ● GET Solicita a representação de um determinado recurso. ● POST As informações enviadas no corpo (body) da requisição são utilizadas para criar um novo recurso. ● PUT Atualiza um recurso na URI especificada. Caso o recurso não exista, ele pode criar um.. ● DELETE O método DELETE remove um recurso específico. Metodos (Verbos HTTP).
  • 24. Protocolo HTTP ● OPTIONS É utilizado para que um cliente possa descobrir quais as opções de requisição permitidas para um determinado recurso em um servidor. ● CONNECT Serve para uso com um proxy que possa se tornar um túnel SSL (um túnel pode ser usado, por exemplo, para criar uma conexão segura). ● TRACE Devolve a mesma requisição que for enviada veja se houve mudança e/ou adições feitas por servidores intermediários. ● HEAD O método HEAD solicita uma resposta de forma idêntica ao método GET, porém sem conter o corpo da resposta. Metodos (Verbos HTTP).
  • 25. Protocolo HTTP – STATUS Status: 200 OK A requisição foi bem sucedida. 301 Moved Permanently O recurso foi movido permanentemente para outra URI. 302 Found O recurso foi movido temporariamente para outra URI. 304 Not Modified O recurso não foi alterado. 401 Unauthorized A URI especificada exige autenticação do cliente. O cliente pode tentar fazer novas requisições. 403 Forbidden O servidor entende a requisição, mas se recusa em atendê-la. O cliente não deve tentar fazer uma nova requisição. 404 Not Found O servidor não encontrou nenhuma URI correspondente. 405 Method Not Allowed O método especificado na requisição não é válido na URI. A resposta deve incluir um cabeçalho Allow com uma lista dos métodos aceitos. 410 Gone O recurso solicitado está indisponível mas seu endereço atual não é conhecido. 500 Internal Server Error O servidor não foi capaz de concluir a requisição devido a um erro inesperado. 502 Bad Gateway O servidor, enquanto agindo como proxy ou gateway, recebeu uma resposta inválida do servidor upstream a que fez uma requisição. 503 Service Unavailable O servidor não é capaz de processar a requisição pois está temporariamente indisponível.
  • 26. Protocolo HTTP2 ● Fluxos multiplexados - capacidade de dividir uma mensagem HTTP em frames independentes; ● Server Push - pode mandar alguns recursos para o navegador sem ele mesmo ter requisitado ainda; ● Headers HPACK - os headers são binários e comprimidos usando um algoritmo chamado HPACK ● Prioridades e dependências - priorizar os recursos necessários para o usuário começar a ver a página e interagir e deixar coisas secundárias pra depois; novidades do HTTP 2.0
  • 27. Protocolo HTTPS HTTPS – Conexão segura. incluem a chave SSL de 2048 bits e podem proteger uma conexão de site por meio de autenticação e criptografia.
  • 28. SOA X MICROSERVICES Serviços ● é uma unidade de software que executa uma função de negócio; ● Contrato definido:(entrada, saída, restrições, comportamentos…); ● Consumidor não tem acesso a detalhes de implementação; ● Auto contido,independente e modular; ● Pode reutilizar em outros contextos; ● Realiza uma função integralmente; ● Pode ser usado e administrado individualmente; ● Pode ser combinado com outros serviços;
  • 30. SOA X MICROSERVICES Exemplo ESB Midleware:(SOA)
  • 31. SOA X MICROSERVICES Diferenças: Granularidade de serviço : - Serviços dentro de MICROSERVICES geralmente tem proposito único - SOA podem variar o tamanho, é comum ter um serviço representando um produto grande ou subsistema. Compartilhamento de componentes : SOA usa muito compartilhamento de serviços, O SOA aprimora o compartilhamento de componentes, enquanto o MICROSERVICE tenta minimizar o compartilhamento por meio de “contexto limitado”. Os sistemas construídos em SOA provavelmente serão mais lentos que a MICROSERVICE.
  • 32. SOA X MICROSERVICES Serviços remotos : arquiteturas SOA dependem de mensagens (AMQP, MSMQ) e SOAP como protocolos de acesso remoto primário. A maioria dos MICROSERVICES conta com dois protocolos - REST e mensagens simples (JMS, MSMQ), e o protocolo encontrado no MICROSERVICES é geralmente homogêneo. Interoperabilidade heterogênea : SOA promove a propagação de múltiplos protocolos heterogêneos através de seu componente de middleware(ex: zato)de mensagens. O MICROSERVICES tenta simplificar o padrão de arquitetura reduzindo o número de opções para integração. Se necessário vários sistemas usando diferentes protocolos em um ambiente heterogêneo, deve considerar a SOA. Se todos os seus serviços pudessem ser expostos e acessados através do mesmo protocolo de acesso remoto, o​​ MICROSERVICES seria uma opção melhor.
  • 33. SOA X MICROSERVICES MICROSERVICES, são mais adequados para sistemas menores e bem particionados, baseados na web, nos quais os microsserviços oferecem um controle muito maior como desenvolvedor. Quando Usar: SOA é mais adequada para ambientes de aplicativos de negócios grandes e complexos que exigem integração com muitos aplicativos heterogêneos, ou seja, aplicativos menores não são adequados para SOA, pois não precisam de um componente de middleware de sistema de mensagens.
  • 36. SOA X MICROSERVICES MICROSERVICES grafico “DEATH STAR”
  • 37. VERSIONAMENTO DE CONTRATO Versionamento de api’s serve basicamente para não termos quebra de contrato entre api e seus clientes. - Versionamento pela URL. - Versionamento pelo Header.
  • 38. VERSIONAMENTO DE CONTRATO URL Endpoint: subdomínio, path ou query string. ● Subdominio https://api-v1.minhaApi/users. Quem for consumir pode alterar apenas o subdomínio na requisição. ● Path https://api.minhaApi/v1/users. abordagens mais utilizadas, pois além de dar um visual mais clean na URL, facilita a navegação para outras versões da API,
  • 39. VERSIONAMENTO DE CONTRATO ● query string: https://api.minhaApi/user/?version=1. caiu em desuso, pois além de prejudicar a navegação para outras versões, a legibilidade da URL fica ruim em cenários de muitos parâmetros na query string. HEADER:Accept,header customizado ● Accept: HTTP GET https://api.minhaApi/user Accept: application/vnd.minhaApi.v2+json via HTTP content-type.
  • 40. VERSIONAMENTO DE CONTRATO ● Header Customizado: HTTP GET https://api.minhaApi/user Api-version: 2 O ponto positivo sua URL permanece intacta, ponto negativo a requisição tem que ser feita com muito mais cuidado.