Aula 00 Desenvolvimento de Software p/ Hemocentro-DF (Analista - Tecnologia da Informação) Professores: Diego Carvalho, Leon Sólon da Silva 00000000000 - DEMO Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 AULA 00 SUMÁRIO PÁGINA 01 13 38 63 78 98 Apresentação - JEE - EJB QL - Eclipse Lista de Exercícios Comentados Gabarito 3 Linguagens de programação. 3.1 Java: construção de programas, estrutura de linguagem, J2EE, SWT, eclipse, EJBQL. 4 Desenvolvimento para web. 4.1 HTML. 4.2 CSS3. 4.3 Javascript. 4.4 XML: estrutura da linguagem, transformação XSLT, DTD e XML schema. E aí, querem mais teoria? Mais exercícios? Tem muito mais! Essa é apenas a aula demonstrativa para que vocês conheçam o método e a escrita! Espero que vocês venham conosco... grande abraço ;) 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 1 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 APRESENTAÇÃO Olá, sejam bem-vindos! Galera, acaba de sair o Concurso do Hemocentro DF. O salário é um grande atrativo e em tempos de crise, não podemos deixar passar nenhuma chance. Vamos ficar ligados para não perder o foco e porque concorrência não dorme! Estou aqui para ajudá-los. Vamos lá... DÚVIDAS DOS ALUNOS TOP 5 1. Peço encarecidamente que leiam as instruções dessa primeira aula. Eu sei que é chato, mas assim nós alinhamos nossas expectativas a respeito do curso. 2. Essa é a Aula Demonstrativa (está disponível para todos na internet) – o restante do conteúdo estará disponível na Aula 01 (apenas para aqueles que adquirirem o curso). 00000000000 3. Esse curso não possui vídeo-aulas! Estamos trabalhando para disponibilizá-las em breve, nesse segundo semestre – talvez ainda não seja possível disponibilizá-las para esse curso. 4. Esse curso contempla somente aquilo que está em seu cronograma. Ele não contempla todo edital de tecnologia da informação, nem outras disciplinas, nem discursivas, estudos de caso, etc. 5. Existem questões de Múltipla Escolha (A, B, C, D, E) e existem questões de Certo/Errado (C, E). Quando não há itens para escolha na questão, é porque a questão é da Modalidade Certo/Errado. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 2 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 O PROFESSOR Uma breve apresentação: meu nome é Diego Carvalho, bacharel em Ciência da Computação pela Universidade de Brasília, pós-graduado em Gestão de Tecnologia da Informação na Administração Pública e Analista de Finanças e Controle da Secretaria do Tesouro Nacional. Já passei por esses perrengues de concurseiro e sei de duas coisas: a estrada é difícil, mas o prêmio compensa! E muito! www.facebook.com/professordiegocarvalho ÁREA ÓRGÃOS PARA OS QUAIS JÁ MINISTREI CURSOS Agência ANCINE ANTAQ ANATEL Jurídica TRT/2 CNMP TRT/3 MP/PB TRT/4 TRT/15 TCE/SP TCM/SP ISS/BA TCE/CE TCM/GO Fiscal TRT/1 TJ/BA CÂMARA DOS DEPUTADOS TCE/RS TCU ISS/SP Outros CEF DATAPREV DEPEN INMETRO Legislativa Auditoria 00000000000 Nesse curso, e nos próximos de desenvolvimento, estará com vocês também o Prof. Leon Sólon. Ele é bacharel em Ciência da Computação pela Universidade de Brasília (2002), mestre em Computação Aplicada também pela UnB (2016) e possui MBA em Gerência de Projetos de Software pela UniEuro (2008). Tem bastante experiência em concursos de TI tendo sido aprovado nos concursos de AuditorFiscal da Receita Federal do Brasil (concurso de TI 2005), Analista de Informática Legislativa da Câmara dos Deputados (2007), Técnico em Informática do TST (2005), Técnico em Informática do MPU (2004) e Analista de Sistema do Serpro em (2004). Prof. Leon já ministrou aulas de TI em outros cursos preparatórios em Brasília e agora está no Estratégia para somar ao time de TI. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 3 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Galera, lá no site, nós – professores – temos algumas métricas para medir se o nosso desempenho nos cursos está bacana! Os alunos podem avaliar com notas e, inclusive, escrever anonimamente o que acharam do professor e do curso. Apresento abaixo o resultado de alguns cursos ministrados recentemente. Portanto, confiem em mim... vocês vão aprender muito com esse curso! 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 4 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 5 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 6 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 7 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 O CONCURSO CONCURSO DA FUNDAÇÃO HEMOCENTRO DE BRASÍLIA – ANALISTA DE INFORMÁTICA (CÓDIGO 203) REMUNERAÇÃO VAGAS R$ 5.820,00 (30h!!) 02 + 08 CR 00000000000 EDITAL/AUTORIZAÇÃO: http://www.iades.com.br/inscricao/upload/165/2016111485144549.pdf Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 8 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 O CURSO... Antes de começar o curso, vamos alinhar algumas expectativas! O curso que eu proponho abrangerá todo o conteúdo do meu cronograma, entretanto é impossível e inviável esgotar cada ponto do edital em uma aula escrita. Como se ministra Java em uma aula? Teríamos uma aula de 800 páginas e não chegaríamos nem perto de matar todo conteúdo! Imaginem agora cada ponto do Edital. Portanto, vou direcioná-los pelo conteúdo da melhor maneira possível. O nosso foco é ter uma visão geral, mas objetiva do que de fato cai em prova e, não, elucubrações sobre cada tema. Meu foco aqui é te fazer passar! Eu sei como é complicado ler muita coisa (ainda mais de TI) e vocês têm outras disciplinas para estudar. Logo, vou ser simples e objetivo! Tranquilo? ;) Além disso, o cronograma será seguido com a maior fidelidade possível, mas ele não é estático e poderá haver alterações no decorrer do curso. Eventualmente, posso tirar o conteúdo de uma aula e colocar em outra de forma que o estudo de vocês fique mais lógico, coeso e fácil de acompanhar; posso também inverter a ordem das aulas (adiantar uma aula e atrasar outra) – sem prejudicá-los. Além disso, vamos usar questões de diversas bancas. Enfim, confiem em mim: o curso vai ajudar bastante! Qualquer dúvida, é só me chamar! Caso haja alguma reclamação, problema, sugestão, comentários, erros de digitação, etc, podem enviar para o nosso fórum que eu tento responder da maneira mais tempestiva possível. Ainda duvidam que PDF não dá certo com Concursos de TI? Veja abaixo: 6º Lugar – ISS/Salvador https://www.youtube.com/watch?v=b1w4H3l6mC4#t=1678 00000000000 1º Lugar – TRT/RJ https://www.facebook.com/video.php?v=790616534367672 2º Lugar – ISS/Salvador https://www.youtube.com/watch?v=vmU1n1J-aqQ 1º Lugar 1o-lugar- – Dataprev http://www.estrategiaconcursos.com.br/blog/entrevista-andre-furtado-aprovado-emno-concurso-dataprev-para-o-cargo-de-analistaarea-de-tecnologia-da-informacao/ Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 9 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 CRONOGRAM Aula 00 Data 25/11 Tópicos do Edital Demonstrativa: J2EE. EJBQL, Eclipse 01 10/12 3 Linguagens de programação. 3.1 Java: construção de programas, estrutura de linguagem, SWT. 02 30/12 4 Desenvolvimento para web. 4.1 HTML. 4.2 CSS3 03 15/01 4.3 Javascript. 4.4 XML: estrutura da linguagem, transformação XSLT, DTD e XML schema. 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 10 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 AS AULAS E AS DICAS 1 – Parágrafos pequenos: observem que os parágrafos têm, no máximo, cinco linhas. Isso serve para que a leitura não fique cansativa e para que vocês não desanimem no meio do material! Para tal, eu tento dividir as disciplinas de maneira que as aulas fiquem objetivas e pequenas (em termos de teoria), mas extensa (em termos de exercícios). 3 – Destaques em vermelho: quase todos os parágrafos possuem alguma palavra ou frase destacada em negrito e em vermelho. Isso ocorre por suas razões: primeiro, para enfatizar alguma informação importante; segundo, para facilitar a leitura vertical, i.e., após uma primeira leitura, a segunda pode ser passando apenas pelos pontos em destaque. 5 – Linguagem natural: essa é uma aula para ser lida, o que por si só já pode ser cansativo. Tentarei colocar a linguagem mais coloquial possível, simulando uma conversa. Portanto, caso virem frases ou palavras em itálico, ou é uma palavra estrangeira ou é a simulação de uma conversa com vocês. Pode dar um exemplo, professor? Acabei de dar! :-) 7 – Diversas figuras: essas aulas estarão em constante evolução, sempre à procura de explicar as matérias de maneira mais compreensível e com novas informações/questões. Para tal, na minha opinião, é fundamental a utilização de figuras, gráficos, painéis, etc. Em minha experiência, é bem mais fácil memorizar a partir de imagens. 9 – Fazer Exercícios: muitos exercícios é o meio pelo qual vocês se situarão. Como assim, professor? É na hora de fazer os exercícios que vocês descobrirão se estão bem ou mal e avaliarão se precisam estudar mais ou menos. Para tal, há um quadrinho ao final de cada bloco de exercícios para vocês anotarem a quantidade de questões respondidas corretamente ou incorretamente. 00000000000 2 – Visão Geral: não se atenham a detalhes antes de entender o básico. Por que? Ora, não há nada mais irritante do que ir para uma prova que vai cair, por exemplo, RUP, saber vários detalhes, mas não saber as fases e disciplinas. Portanto, caso estejam iniciando os estudos sobre uma matéria, foquem em saber o básico para depois se especializarem. 4 – Façam muitos exercícios: ler várias bibliografias é muito trabalhoso e, geralmente, não vale o custobenefício. Acredito que o que funciona mesmo é entender o básico, depois fazer muitos exercícios e, eventualmente, caso encontrarem algo que não souberem, pesquisem-no separadamente. Além disso, você vai pegando as “manhas” da banca. 6 – Façam resumos: essa dica somente serve caso vocês tenham disponibilidade. Caso haja pouco tempo para estudar ou pouco tempo até a prova, não compensa! Se não, façam resumos organizados, pois eles economizarão um bom tempo de estudo em suas próximas provas e sempre que descobrirem novas informações, insiram-nas no resumo. 8 – Revisem antes da prova: não adianta querer estudar coisas novas até o último minuto antes da prova e não revisar o que estudou há um mês. Vocês irão esquecer e irão se irritar na hora da prova por não lembrarem de conceitos simples. Tirem uma semana para revisar seus resumos, decorarem algumas coisas e, certamente, irão mais confiantes para a prova. 10 – Simulado Final: ora, fazer um bloco de questões depois de estudar a teoria é tranquilo. No entanto, lembrem-se que a memória de vocês não é infinita e vocês têm um milhão de outras coisas para estudar e decorar. Portanto, se possível, ao fim do curso faremos um simulado com questões escolhidas que foram comentadas dentro das aulas. Bem, pessoal! É isso... sejam bem-vindos! Espero que vocês curtam e tenham uma leitura leve e despojada da aula, mas com muito foco, atenção e dedicação. Qualquer dúvida, podem entrar em contato conosco – ficaremos feliz em ajudálos. Bons estudos, estamos torcendo por vocês! Fiquem agora com algumas mensagens de incentivo para animá-los ;-) Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 11 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 R$ 5.820,00 (30h!) R$ 5.820,00 (30h!) R$ 5.820,00 (30h!) R$ 5.820,00 (30h!) R$ 5.820,00 (30h!) R$ 5.820,00 (30h!) R$ 5.820,00 (30h!) R$ 5.820,00 (30h!) 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 12 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 JAVA ENTEPRISE EDITION (JAVA EE) Bem, galera... nosso foco aqui é Java EE1! Empresas de tecnologia da informação sofrem atualmente com a altíssima competitividade. Não é raro ver uma gigante, que todo mundo achava que seria eterna, desmoronando-se por conta de uma nova tecnologia que surgiu ou paradigma que apareceu! Ou alguém aí ainda usa IRC, ICQ, MSN para se comunicar? É verdade, professor! As empresas de Tecnologia da Informação têm vida curta! Não são só elas! Hoje em dia, empresas de quaisquer áreas precisam de aplicações para satisfazer as suas necessidades de negócio, que estão se tornando cada vez mais complexas. E tudo isso se torna mais complicado com a globalização – as empresas estão cada vez mais espalhadas por cidades, países e continentes. E, ainda assim, realizam seus negócios 24/7 por meio da internet, com um bocado de data centers e sistemas internacionalizados para lidar com diferentes línguas, moedas, fusos-horários, etc. E elas param de trabalhar em algum momento? Não! Estão sempre tentando diminuir seus custos, tempo de resposta de seus serviços, armazenar mais dados de maneira confiável e segura, entre outros. E tudo isso de forma transparente para o cliente, que simplesmente acessa uma interface gráfica amigável achando que isso tudo é muito simples (mal sabem o que ocorre por trás). Pessoal, tudo tem que funcionar para o usuário não reclamar ou trocar de prestadora de serviço – e, claro, sem perder dinheiro, i.e., tem que haver prevenção de falhas, alta disponibilidade, redundância, escalabilidade e segurança. 00000000000 Além disso, as corporações têm de enfrentar constantes mudanças de requisitos, tecnologias, políticas, leis, etc. Em 2014, grande parte do que citamos é oferecido pelo Java Enterprise Edition (Java EE). Mas, então, o que é de fato o Java EE? É um conjunto de especificações destinadas ao desenvolvimento de aplicações distribuídas, robustas, potentes, escaláveis, multicamadas e de alta disponibilidade. Rapaziada, vamos ver agora algumas novidades trazidas pela Plataforma Java EE conceito de profiles ou perfis; Java API for RESTful Web Services (JAX-RS); 1 Esse nome já mudou repetidas vezes! Inicialmente, chamava-se J2EE; depois foi modificado para JEE; e atualmente é conhecido como Java EE. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 13 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Managed Beans; Contexts and Dependency Injection (CDI); Dependency Injection for Java; Bean Validation; entre outras tecnologias concernentes a Enterprise JavaBeans, JavaServer Faces e Servlets. Como ele oferece tudo isso, nós veremos por meio do estudo de um assunto muito importante: Arquitetura Java EE – apresentada na imagem abaixo: O Client System é a Camada do Cliente; Web Container é a Camada Web; o EJB Container é a Camada de Negócio; e o Database é a Camada de Dados2. No entanto, há quem condense a Camada Web e a Camada de Negócio em uma camada chamada Servidor Java EE, representada pelo retângulo maior à direita – veremos com detalhes mais à frente! 00000000000 2 É também conhecida como Camada EIS (Enterprise Information System), que disponibiliza informações relevantes ao negócio e, diferente do que apresenta a imagem, não trata apenas do banco de dados, mas também de sistemas legados, processamento de transações de mainframe, sistemas externos, entre outros. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 14 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Vamos falar um pouco agora sobre o Modelo de Aplicações Java EE! Galera, Java EE é projetado para suportar aplicações que implementam serviços corporativos para clientes, empregados, fornecedores, parceiros e outros que demandem ou contribuem com a organização! Essas aplicações são inerentemente complexas, acessando dados de diversas fontes e distribuindo as aplicações entre os clientes. O Modelo de Aplicações Java EE define uma arquitetura para implementação de serviços como aplicações multicamadas que fornecem escalabilidade, acessibilidade e gerenciabilidade necessários para aplicações corporativas. Dessa forma, a lógica de apresentação e a lógica de negócio são implementadas pelo desenvolvedor e os outros serviços são fornecidos pela plataforma Java EE! 00000000000 Conforme mostra a imagem acima, existem duas aplicações multicamadas Java EE divididas em níveis descritos como se segue: Camada do Cliente: componentes rodam na Máquina Cliente; Camada Web: componentes rodam no Servidor Java EE; Camada de Negócio: componentes rodam no Servidor Java EE; Camada EIS: software roda no Servidor EIS. Galera, a imagem abaixo apresenta um pouco da evolução do Java EE e a tabela que segue apresenta as APIs do Java EE: Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 15 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 JAVA EE 6 (10/12/2009) JAVA EE 7 (12/06/2013) Java Servlet 3.0 JavaServer Faces (JSF) 2.0 Expression Language (EL) 2.2 JavaServer Pages (JSP) 2.2 JavaServer Pages Standard Tag Library (JSTL) 1.2 Contexts and Dependency Injection for Java 1.0 Dependency Injection for Java 1.0 Bean Validation 1.0 Enterprise JavaBeans (EJB) 3.1 Interceptors 1.1 Java EE Connector Architecture 1.6 Java Persistence API (JPA) 2.0 Common Annotations for the Java Platform 1.1 Java Message Service API (JMS) 1.1 Java Transaction API (JTA) 1.1 JavaMail API 1.4 Java API for RESTful Web Services (JAX-RS) 1.1 Java API for XML-Based Web Services (JAX-WS) 2.2 Web Services Metadata for the Java Platform 2.1 Java API for XML-based RPC (JAX-RPC) 1.1 Java APIs for XML Messaging (JAXM) 1.3 Profs. Diego Carvalho e Leon Sólon 00000000000 Java API for WebSocket Java API for JSON Processing Java Servlet 3.1 JavaServer Faces (JSF) 2.2 Expression Language (EL) 3.0 JavaServer Pages (JSP) 2.3 JavaServer Pages Standard Tag Library (JSTL) 1.2 Batch Applications for the Java Platform Concurrency Utilities for Java EE 1.0 Contexts and Dependency Injection for Java 1.1 Dependency Injection for Java 1.0 Bean Validation 1.1 Enterprise JavaBeans (EJB) 3.2 Interceptors 1.2 Java EE Connector Architecture 1.7 Java Persistence API (JPA) 2.1 Common Annotations for the Java Platform 1.2 Java Message Service API (JMS) 2.0 Java Transaction API (JTA) 1.2 JavaMail API 1.5 Java API for RESTful Web Services (JAX-RS) 2.0 Implementing Enterprise Web Services 1.3 Java API for XML-Based Web Services (JAX-WS) 2.2 Web Services Metadata for the Java Platform Java API for XML-based RPC (JAX-RPC) (Opcional) 1.1 Java APIs for XML Messaging 1.3 www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 16 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Java API for XML Registries (JAXR) 1.0 Java API for XML Registries (JAXR) 1.0 Java Authentication Service Provider Interface for Java Authentication Service Provider Interface for Containers Containers (JASPIC) 1.0 (JASPIC) 1.1 Java Authorization Service Provider Contract for Java Authorization Service Provider Contract for Containers Containers (JACC) 1.4 (JACC) 1.5 Java EE Application Deployment 1.2 Java EE Application Deployment (Opcional) 1.2 J2EE Management 1.1 J2EE Management 1.1 Debugging Support for Other Languages 1.0 Java Architecture for XML Binding (JAXB) 2.2 Java Architecture for XML Binding (JAXB) 2.2 Java API for XML Processing (JAXP) 1.3 Java Database Connectivity 4.0 Java Management Extensions (JMX) 2.0 JavaBeans Activation Framework (JAF) 1.1 Streaming API for XML (StAX) 1.0 Managed Beans 1.0 Web Services 1.3 Debuggin Support for Other Languages 1.0 - A versão Java EE 6 traz o conceito de profile (ou perfil)! O que é isso, professor? Um perfil busca definir um subconjunto das tecnologias dentre aquelas da plataforma Java EE. Como assim? Bem, pensem comigo: cada aplicação tem sua particularidade, portanto não é necessário implementar obrigatoriamente todas as tecnologias da plataforma, i.e., eu posso criar perfis – cada um com sua configuração! Imaginem que vamos fazer um sisteminha pequeno! Eu preciso implementar tudo que está na plataforma? Não, posso criar um perfil e implementa somente um subconjunto de funcionalidades! Existem dois perfis importantes: Web Profile e Full Profile! O primeiro perfil é um subconjunto do segundo e ajuda desenvolvedores a criarem aplicações mais leves que podem rodar em um Servlet Container. Plataforma Java EE Java Servlet Java Server Faces (JSF) Java Server Pages (JSP) Expression Language (EL) Standard Tag Library for JavaServer Pages (JSTL) Debugging Support for Other Languages Contexts and Dependency Injection for the Java EE Platform Dependency Injection for Java Enterprise JavaBeans (EJB) Java Persistence API Common Annotations for the Java Platform 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO WEB FULL Pág. 17 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Java Transaction API Bean Validation Java EE Connector Architecture Java API for RESTful Web Services (JAX-RS) Observem que a tabela abaixo apresenta o EJB 3.1 como parte do Web Profile. Na verdade, no Web Profile, trata-se do EJB 3.1 Lite, que é mais leve. Como assim, professor? Assim como os perfis, ele possui um subconjunto dos features do EJB 3.1 Full. Por que? Porque é uma API utilizada especificamente para aplicações web. Vejam a diferença de acordo com a tabela abaixo. Percebam que o EJB 3.1 Lite deixa de fora funcionalidades que são pouco utilizadas em aplicações web. De forma similar o Web Profile não oferece suporte a JAX-WS, JAX-RPC, JAXR, SAAJ, JAX-RS, JAXB, JMS, JAAS, JASPIC, JACC, JCA, JavaMail, Management Specification e Deployment Specification – além disso, ele não oferece suporte a Arquivos EAR (apenas Arquivos WAR). 00000000000 Para finalizar, vamos entender algumas coisinhas! O processo de implantar (para alguns, instalar) uma aplicação em um Servidor Java EE é chamado Deploy ou Deployment. Sabe-se que componentes são agrupados em módulos, Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 18 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 compactados em .ZIP e, na Implantação, mapeia-se cada componente do Java EE para seu contêiner correspondente. Existem três tipos básicos de módulo: MÓDULO DESCRIÇÃO EAR Também chamado Enteprise Application Archives, contém a aplicação completa, com todos os seus módulos e componentes. É composta por vários arquivos .war e .jar. Também chamado Web Application Archives, contém a Aplicação Web (JSP, HTML, Servlets, Arquivos de Configuração, Imagens, etc) – é o que forma uma página em si. Também chamado Java Application Archives, contém a Aplicação EJB, Aplicação Cliente e Applets3, além de arquivos de configuração dos aplicativos. Também chamado Resource Adapter, contém interfaces, classes, bibliotecas, etc. WAR JAR RAR 00000000000 3 A bem da verdade, todos os módulos são Arquivos JAR com a extensão modificada. Por que essa mudança? Para que o servidor possa diferenciar o que está sendo implantado. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 19 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (CESPE – – INMETRO – Analista de Sistemas) São exemplos de tipos de componentes de software reusáveis desenvolvidos na plataforma JEE: JSP (Java Server Page); biblioteca de tags; Servlet; EJB. O grau de reúso provido por esses componentes, EJBs e JSPs, é usualmente superior a bibliotecas de TAG. Comentários: Galera, vamos responder isso intuitivamente! Como uma Página JSP ou um Componente EJB poderia oferecer maior reusabilidade que uma biblioteca? Ora, essa é uma das principais características de uma biblioteca: sua reusabilidade! Logo, isso não faz sentido! Bibliotecas de Tags são mais reusáveis. Gabarito: E (CESPE – – SERPRO – Analista de Sistemas) A tecnologia Enterprise JavaBeans (EJB) é uma arquitetura de componentes do tipo cliente que atua na plataforma J2EE. Comentários: 00000000000 JAVA EE 6 (10/12/2009) Profs. Diego Carvalho e Leon Sólon JAVA EE 7 (12/06/2013) www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 20 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Enterprise JavaBeans (EJB) 3.1 Enterprise JavaBeans (EJB) 3.2 Conforme vimos em aula, Enterprise Java Bean (EJB) não é uma arquitetura, é um componente da Arquitetura J2EE. Além disso, é do tipo Servidor (veja a imagem acima). Gabarito: E (CESPE - 2010 – TCU – Auditor Federal de Controle Externo) A web profile da plataforma JEE apresenta, em relação ao perfil application server definido em edições anteriores da plataforma Java, as seguintes vantagens: fornece suporte para POJOs (Plain Old Java Objects) e Annotations; possui modelo de empacotamento de componentes mais simples; a configuração dos seus descritores XML (extensible markup language) é mais fácil; é aderente ao padrão SOA. Comentários: Imaginem que vamos fazer um sisteminha pequeno! Eu preciso implementar tudo que está na plataforma? Não, posso criar um perfil que implementa somente um subconjunto de funcionalidades! Existem dois perfis importantes: Web Profile e Full Profile! O primeiro perfil é um subconjunto do segundo e ajuda desenvolvedores a criarem aplicações mais leves que podem rodar em um Servlet Container. Conforme vimos em aula, primeiro, não existe Application Server Profile – existe apenas Web Profile e Full Profile. Segundo, o conceito de Perfis foi introduzido apenas no Java EE 6 – eu calculo que ele esteja considerando Full Profile como Application Server Profile. Terceiro, POJOs e Annotations são tecnologias do Java EE 5. Quarto, pode-se dizer que é aderente ao SOA por conta do JAX-RS, no entanto o Full Profile também é (inclusive é aderente ao JAX-RS também). Logo, a questão está errada desde o início. 00000000000 Gabarito: E (CESPE - 2010 – TRE/MT – Analista Judiciário – Tecnologia da Informação – A) Clientes J2EE são necessariamente páginas web dinâmicas que normalmente não fazem acessos a banco de dados, nem executam regras de negócio complexas. Comentários: Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 21 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Conforme vimos em aula, os clientes Java EE não são necessariamente Páginas Web Dinâmicas (Browser). A imagem acima mostra que eles podem ser também uma Aplicação Cliente. Gabarito: E (CESPE – TRE/MT – Analista Judiciário – Tecnologia da Informação – D Um componente J2EE é uma unidade funcional de software autocontida, escrito na linguagem de programação Java e executado exclusivamente em servidores. Comentários: 00000000000 Conforme vimos em aula, um componente Java EE é uma unidade autocontida, porque pode ser reusada sem a necessidade de incluir ou depender de outros componentes. Ademais, eles são escritos na linguagem de programação Java, no entanto não são necessariamente executados exclusivamente em servidores, podem ser executados no cliente (conforme imagem acima). Gabarito: E Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 22 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (CESPE – PREVIC – Analista de Sistemas) Em uma aplicação multicamadas na plataforma Java EE, servlets, JavaServer Faces e JSP consistem em tecnologias utilizadas na camada web. Comentários: Conforme vimos em aula, a Camada Web é composta por JSP, JSF e Servlets. Gabarito: C (ESAF – J2EE são: – CGU – Analista de Finanças e Controle) Os níveis da plataforma a) Patrocinador. Web. Negócios. Sistemas de Computação Corporativos. b) Cliente. Web. Negócios. Sistemas de Informação Corporativos. c) Cliente. Interno. Externo. Negócios. d) Fornecedor. Web. Político. Sistemas de Informação Camada. e) Cliente. Stakeholders. Negócios. Background corporativo. 00000000000 Comentários: Camada do Cliente: componentes rodam na Máquina Cliente; Camada Web: componentes rodam no Servidor Java EE; Camada de Negócio: componentes rodam no Servidor Java EE; Camada EIS: software roda no Servidor EIS. Conforme vimos em aula, os níveis são: Cliente, Web, Negócios e Sistemas de Informação Corporativos (EIS). Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 23 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Gabarito: B (CESGRANRIO – 2008 – BNDES – Analista de Sistemas) Uma aplicação empresarial contendo componentes EJB e módulos web deverá ser publicada em um servidor de aplicações compatível com J2EE. No contexto do empacotamento dessa aplicação para publicação (deploy), é correto afirmar que: a) não há como juntar componentes EJB e módulos web em uma mesma aplicação, pois deverão ser publicados separadamente. b) um arquivo EAR poderá conter arquivos WAR e JAR representativos dos módulos web e EJB. c) o tamanho do pacote, em bytes, sempre fica maior que o código original, em virtude do algoritmo empregado no empacotamento da aplicação em um arquivo EAR. d) módulos web não devem ser empacotados, pois isso inviabiliza seu acesso pela Internet. e) arquivos JAR servem apenas para empacotar componentes EJB. Comentários: Para finalizar, vamos entender algumas coisinhas! O processo de implantar (para alguns, instalar) uma aplicação em um Servidor Java EE é chamado Deployment. Sabe-se que componentes são agrupados em módulos, compactados em .ZIP e, na Implantação, mapeia-se cada componente da Arquitetura Java EE para seu contêiner correspondente. Existem três tipos básicos de módulo: 00000000000 Conforme vimos em aula, a primeira opção está errada, porque pode-se junta ambos em um Arquivo EAR; a segunda opção está correta e justifica a primeira; a terceira opção está errada, porque são arquivos compactados em .ZIP; a quarta opção está errada, porque simplesmente não faz nenhum sentido; e a última opção está errada porque arquivo JAR pode empacotar componentes EJB, Cliente e Applet. Gabarito: B Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 24 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (FCC – 2011 – TRT/19 – Analista de Sistemas) A especificação Java EE define os seguintes componentes: I. Clientes da aplicação (Application Clients) e applets. II. Java Servlet, JavaServer Faces e JavaServer Pages. III. Enterprise Javabeans (EJB). Os componentes I, II e III rodam, respectivamente, em: a) cliente, cliente, servidor. b) servidor, cliente, servidor. c) cliente, servidor, servidor. d) servidor, cliente, cliente. e) cliente, servidor, cliente. Comentários: Conforme vimos em aula, tanto aplicações clientes como applets rodam no cliente; Servlets, JSF e JSP rodam no Servidor, assim como o EJBs. 00000000000 Gabarito: C (FCC - 2011 - TRT - 1ª REGIÃO (RJ) - Analista Judiciário - Tecnologia da Informação) J2EE é uma plataforma de programação para servidores na linguagem de programação Java, que integra uma série de especificações e containers, cada uma com funcionalidades distintas. Nesse contexto, é correto afirmar que são integrantes do J2EE: a) Servlets, Jcompany e JSP. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 25 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 b) JDBC, JSP, EJBs. c) EJBs, Servlets e JBoss. d) JDBC, Hibernate e JPA. e) JSP, JSF e Eclipse. Comentários: JAVA EE 6 (10/12/2009) JAVA EE 7 (12/06/2013) JavaServer Pages (JSP) 2.2 Enterprise JavaBeans (EJB) 3.1 - JavaServer Pages (JSP) 2.3 Enterprise JavaBeans (EJB) 3.2 Java Database Connectivity 4.0 Conforme vimos em aula, trata-se do JDBC, JSP e EJB! Gabarito: B (FCC - TRT - 8ª Região (PA e AP) - Analista Judiciário - Tecnologia da Informação) O Contêiner J2EE que fornece aos desenvolvedores o ambiente para rodar Java Server Pages (JSPs) e servlets é: a) Applet (Applet container). b) Enterprise Java Beans (EJB). c) Interface (Interface container). d) do cliente do aplicativo (Application client container). e) Web (Web container). Comentários: 00000000000 Conforme vimos em aula, o Contêiner Web é o responsável por rodar JSP/Servlet! Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 26 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Gabarito: E (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática Suporte de Web) São apenas tipos de componentes executados em servidores Web: a) Beans, Servlets e J2EE. b) JVM, Servlets e JSP. c) Beans, Servlets e JSP. d) Beans, Swing e JSP. e) Beans, Swing e JVM. Comentários: Conforme vimos em aula, JSP e Servlets são fáceis! E os beans? Pois é, excepcionalmente eles podem ser executados em Servidores Web (Contêiner Web). 00000000000 Gabarito: C (FCC - 2014 – TRT/2 – Analista de Sistemas) Um contêiner Java EE pode oferecer serviços como gestão de memória, ciclo de vida e estado de objetos, conexões, transações, serviços de nomes, segurança, tolerância a falhas, integração, clustering, alta disponibilidade, confiabilidade e web services. Um servidor Java EE completo disponibiliza dois tipos principais de contêiner, que são: a) Contêiner MVC e Contêiner EJB. b) Applet Container e Web Container. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 27 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 c) Contêiner Web e Contêiner EJB. d) Servlet Container e JSP Container. e) Application Client Container e Web Container. Comentários: Conforme vimos em aula, disponibiliza o Contêiner Web e Contêiner EJB! Gabarito: C (FCC – 2012 – TJ/PE – Analista de Sistemas) Sobre a plataforma Java EE 6, é correto afirmar: a) Simplifica a implantação sem a necessidade de descritores de implantação, com exceção do descritor de implantação exigido pela especificação servlet, o arquivo web.xml. b) Necessita do descritor de implantação ejb-jar.xml e entradas relacionadas aos web services no arquivo web.xml. 00000000000 c) Faz uso de anotações (annotations). Anotações são modificadores Java, semelhantes aos públicos e privados, que devem ser especificados nos arquivos de configuração XML. d) A especificação EJB 3, que é um subconjunto da especificação Java EE, define anotações apenas para o tipo bean. e) Anotações são marcados com um caracter # (cerquilha). Comentários: Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 28 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (a) Correto. Pessoal, a plataforma Java EE realmente simplifica a implantação removendo a necessidade de descritores de implantação, mas há uma exceção: o arquivo web.xml; (b) Descritores de implantação, como o ejb-jar.xml e entradas relacionadas aos Web services no web.xml, já estão obsoletos – não se usa mais! (c) A Plataforma Java EE utiliza Anotações, que são modificadores Java, semelhantes aos públicos e privados. No entanto, eles são especificados no código! (d) Ele define anotações para o tipo Bean, tipo de Interface, referências de recurso, atributos de transação, segurança, etc; (e) Essa ele entregou! Anotações são marcados com @. Gabarito: A ACERTEI ERREI 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 29 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 ENTERPRISE JAVABEANS (EJB) Enterprise JavaBeans (EJB) é uma arquitetura para aplicações corporativas orientada à transação e baseada em componentes. Além de uma arquitetura, eles são também componentes server-side que oferecem uma infraestrutura para o desenvolvimento e implantação de aplicações distribuídas, escaláveis, transacionais, seguras, concorrentes, persistentes, e portáteis de maneira fácil de acessar e simples de usar. O Contêiner EJB é um recipiente (em tempo de execução) para Enterprise Beans que são implantados em um Servidor de Aplicação. Ele é criado automaticamente quando o servidor é inicializado e oferece serviços como: gerenciamento de ciclo de vida, geração de código, gerenciamento de persistência, gerenciamento de segurança, gerenciamento de transações, controle de concorrência, etc. Vejamos: Ciclo de Vida: o desenvolvedor não precisa se preocupar com a criação de processos, threads, ativação ou destruição de objetos. Segurança: o contêiner fornece suporte a autenticação e controle de acesso orientado a papéis. Transações: o contêiner automaticamente gerencia o início, enrollment, commitment e rollback de transações. Persistência: beans não precisam se preocupar com sua persistência em um banco de dados. 00000000000 Estado: o estado conversacional de Beans (se houver) é gerenciado (salvo/recuperado) automaticamente. A estrutura de um Enterprise Bean e seu comportamento em tempo de execução são definidos em um ou mais Descritores de Implantação (Anotações XML). Programadores criam esses arquivos durante o processo de empacotamento de EJB e os descritores se tornam parte da implantação do EJB quando o Enterprise Bean é compilado. O Descritor de Implantação do EJB 3.2 é o ejb-jar.xml. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 30 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Os descritores de implantação do J2EE 1.4 eram, em geral, complexos e era fácil cometer erros ao preenchê-los. Em vez disso, a Plataforma Java EE usa Anotações (Annotations), que são modificadores semelhantes a público e privado. O EJB 3, por exemplo, define anotações para o tipo de bean, tipo de interface, referências de recurso, atributos de transação, segurança e muito mais. Um conjunto de anotações semelhante é fornecido para Web services pela especificação JAX-WS 2.0. Em geral, anotações são usadas para gerar artefatos; outras para documentar o código; outras mapeiam classes Java para XML; outras mapeiam classes Java para bancos de dados; outras mapeiam métodos para operações; outras especificam dependências externas, entre outros. Existem vários formatos (Ex: EAR, WAR, JAR) para padronizar o encapsulamento da lógica de negócio sob uma única interface – e o EJB é o núcleo da Tecnologia Java EE. Bem, esse componente é executado no Container EJB de um Servidor de Aplicação! Professor, o que tem de tão especial nessa tecnologia? Cara, ela permite o desenvolvimento rápido e simplificado de aplicações complexas. LOCAL CONTÊINER COMPONENTE CLIENTE Aplicação Cliente Applet SERVIDOR Web Componentes de Aplicação Applet Java Servlet JavaServer Pages (JSP) JavaServer Faces (JSF) Enterprise Beans EJB Em outras palavras, ele deixa o programador livre para se concentrar na lógica de negócio e na resolução do problema. Assim, o desenvolvedor não precisa mais se preocupar com codificação envolvendo infraestrutura (segurança, escalabilidade, entre outros)4. Ademais, eles são extremamente portáveis e reusáveis. Logo, podese construir aplicações a partir de beans pré-existentes. 00000000000 Uma vez construídos seguindo as especificações, eles podem rodar em qualquer Servidor de Aplicação Java EE! Professor, agora eu quero usar Enterprise JavaBeans sempre e em qualquer condição – ele é demais! Calma lá, pequeno 4 Programadores precisam escrever apenas a lógica de negócio em Componentes EJB. Não precisa implementar nenhuma programação ou serviço em nível de sistema, tais como transações ou segurança, pois isso é oferecido pelo Container EJB. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 31 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 gafanhoto! É inviável utilizá-lo em algumas condições. É recomendável observar algumas características do sistema de software. Recomenda-se utilizá-lo caso sua aplicação realmente necessite ser escalável, segura, transacional, persistente, escalável, portável, distribuída, etc Se você for desenvolver sistema de uma padaria, em geral, não é viável utilizar Enterprise JavaBeans. Faça-se algumas perguntas: Muitas pessoas vão acessar o sistema da padaria simultaneamente? Haverá picos de acesso? É preciso de segurança? OBJETIVOS GERAIS DA ARQUITETURA EJB A Arquitetura EJB será a arquitetura de componentes padrão para construção de aplicações corporativas orientadas a objetos em Java. A Arquitetura EJB suportará o desenvolvimento, implantação e utilização de aplicações corporativas em Java. A Arquitetura EJB suportará o desenvolvimento, implantação e utilização de Web Services. A Arquitetura EJB facilitará a escrita de aplicações: desenvolvedores não terão que entender detalhes de transação, gerenciamento de estados, multithreading, etc. Aplicações EJB – após desenvolvidas – poderão implantadas em múltiplas plataformas sem necessidade de recompilação ou modificação do código-fonte. A Arquitetura EJB abordará os aspectos de desenvolvimento, implantação e tempo de execução do ciclo de vida de uma aplicação corporativa. A Arquitetura EJB definirá os contratos que habilitam ferramentas de vários fabricantes a desenvolver e implantar componentes interoperáveis em runtime. 00000000000 A Arquitetura EJB tornará possível a criação de aplicativos através da combinação de componentes desenvolvidos utilizando ferramentas de diferentes fabricantes. A Arquitetura EJB fornecerá interoperabilidade entre Beans Corporativos e componentes do Java EE, bem como aplicações de outras linguagens (não Java). A Arquitetura EJB será compatível com as plataformas de servidores existentes. Fornecedores serão capazes de estender seus produtos para apoiar EJBs. A Arquitetura EJB será compatível com outras APIs da linguagem de programação Java. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 32 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 A Arquitetura EJB será compatível com Protocolos CORBA. Se realmente for necessário, a Tecnologia EJB é a escolha certa! É legal enfatizar também que a Arquitetura EJB é neutra em relação a seus protocolos – pode ser utilizada com HTTP, IIOP, RMP, DOM, etc. Pessoal, o Enterprise JavaBean evoluiu muito rápido. Logo, ainda caem algumas questões de prova sobre as novidades do EJB 3.1. Vamos ver o que ele trouxe de novo: NOVIDADES DO EJB 3.1 Novo tipo de componente (Singleton Session Bean) que implementa o Padrão Singleton e permite capturar eventos de inicialização e encerramento da aplicação Interface opcional para componentes - Flexibilização na criação de componentes EJBs sem a obrigatoriedade da criação de uma interface remota ou local. Melhorias no serviço de agendamento que permitem novas possibilidades através de uma notação similar ao Unix Cron e agendamento de forma declarativa. Deploy de EJBs na camada web (.war) - Permite o uso de EJBs diretamente na camada Web. Chamadas assíncronas a métodos - Uma alternativa simplificada à MDBs para chamada assíncrona que pode ser utilizada em cenários menos complexos. Nomes JNDI globais padronizados - Esse recurso facilita ainda mais a portabilidade. 00000000000 EJB Lite - Define uma versão mais leve para um conteiner de EJBs. Embeddable EJB - Possibilidade de executar EJBs no ambiente JavaSE. Os Componentes EJB podem ser acessados diretamente, no entanto ainda pode ser utilizadas as interfaces que são disponibilizadas para acesso remoto ou local. O Bean não implementa essas interfaces, cada fabricante de Servidores de Aplicação Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 33 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 provê a implementação para as interfaces Remote e Home definidas para o componente - são respectivamente as interfaces EJB Object e EJB Home. A Interface EJBObject implementa a interface para acessos remotos e locais, e funciona como um wrapper, i.e., encapsulando a instância EJB solicitada pelo cliente. Já a Interface EJBHome faz exatamente a mesma coisa, no entanto ela também é responsável por auxiliar o contêiner a gerenciar o ciclo de vida de um Bean – realizando criações, buscas e remoções de objetos. Existem três tipos de EJB, mas o Entity Bean é opcional a partir do EJB 3.2. e só existe na especificação por questão de compatibilidade com versões anteriores, mas sabe-se que ele já foi substituído pela Java Persistence API (JPA). Ademais, como é um Enterprise JavaBean, eles encapsulam uma lógica de negócio. Pois bem, sobram dois tipos – Message-driven Beans e Session Beans: Message-driven Beans (MDB): trata-se de um objeto não-persistente que combina características de um Session Bean e uma escuta/monitor (listener) de mensagens, permitindo a um componente de negócio receber e tratar mensagens de forma assíncrona – geralmente, providas pelo JMS. Pode-se dizer que eles são executados após o recebimento de uma única mensagem do cliente. Um Contêiner EJB provê um ambiente de execução escalável para executar um grande número de MDBs concorrentemente. Eles podem ser Stateless, apenas. Ademais, devem ser invocados por meio de programação por um cliente local ou remoto. Como são não-persistentes, o cliente não acessa um MDB diretamente, mas por meio do JMS enviando mensagens para o destinatário. Session Beans (SB): trata-se de um objeto não-persistente que implementa alguma lógica de negócio ou fluxo de trabalho no servidor. Eles servem para executar alguma tarefa em nome de um único cliente e implementam a interface javax.ejb.SessionBean, podendo implementar Web Services. O Contêiner EJB provê um ambiente escalável para executar um grande número de SBs concorrentemente. 00000000000 Um Session Bean encapsula a lógica de negócio que pode ser invocada programaticamente por um cliente localmente, remotamente ou por meio de webservices. Os SBs permitem enviar e receber mensagens JMS, porém somente de forma síncrona. Seus dados não são persistidos em uma base de dados e eles podem ser de três tipos: stateful, stateless e singleton! Vamos vê-los a seguir: Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 34 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Stateless Session Beans: são objetos de negócio que não mantém estado entre invocações de métodos. Após cada chamada de método, o contêiner pode escolher destruir, recriar ou manter o Bean. Eles podem ter variáveis de instância armazenadas em um pool, no entanto elas serão compartilhadas por vários usuários (entretanto, não de forma concorrente). Observem o ciclo de vida mostrado acima e percebam que ele tem dois estados: no estágio Does Not Exist, a instância simplesmente ainda não existe; no estágio Ready, diversas instâncias podem ser criadas e posicionadas em um pool – prontas para serem utilizadas. Percebam que ela nunca entra em modo passivo para economizar recursos. Stateful Session Beans: são objetos de negócio que mantém estado entre chamadas de métodos. São projetados, em geral, para situações que requerem várias requisições simultâneas ou transações. Aqui as variáveis de instância representam o estado de uma sessão. Decorem isso: são objetos que mantém o estado entre as chamadas de métodos. 00000000000 Observem o ciclo de vida mostrado acima e percebam que ele tem três estados: no estágio Does Not Exist, a instância simplesmente ainda não existe; no estágio Ready, a instância está vinculada a um determinado cliente e ocupada em uma conversação; no estágio Passive, a instância sai da memória principal para a memória secundária para economizar recursos. Singleton Session Beans: são objetos de negócio instanciados uma única vez pela aplicação e existem por todo ciclo de vida da aplicação. São utilizados Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 35 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 quando um Enterprise Bean é compartilhado e acesso por vários clientes. Percebam que ele também nunca entra em modo passivo para economizar recursos – assim como os Stateless Session Beans. Observem o ciclo de vida mostrado acima e percebam que ele tem apenas dois estados: no estágio Does Not Exist, a instância simplesmente ainda não existe; já no estágio Ready uma única instância é criada e estará pronta para ter seus métodos de negócio invocados pelos clientes. Trata-se de um ciclo de vida bastante simples, concordam? Por fim, gostaria de falar um pouco sobre o CDI (Context and Dependency Injection). Alguém sabe o que é Injeção de Dependência? Trata-se de um design pattern que consiste na passagem de uma classe para outra, sendo que esta última irá utilizá(consumi-la), visando eliminar o forte acoplamento geralmente existente entre os módulos da aplicação e facilitar a realização de testes. Pessoal, imaginem que eu preciso fazer vários testes unitários. Ora, se toda classe que eu for testar tiver dependendo de outra classe, eu terei que sair instanciando tudo para poder fazer um mero teste unitário. Ademais, se eu faço uma estrutura fracamente acoplada entre classes e módulos, pode-se ganhar em extensibilidade e reusabilidade. 00000000000 Basicamente, pode-se implementar a Injeção de Dependência de três formas: injetam-se as dependências no construtor da classe; injetam-se as dependências no método setter de alguma propriedade; ou injetam-se as dependências via instância de abstração – por meio de interfaces ou classes abstratas. Especificação CDI é o Padrão Java para injeção de dependência. Ela fornece uma arquitetura que permite que os componentes Java EE existam dentro do ciclo de vida de um aplicativo com escopos bem definidos. Além disso, os serviços CDI permitem que os componentes Java EE, tais como EJB Session jam injetados e interajam de uma maneira Beans e JSF Managed Beans, acoplada flexível, iniciando e observando eventos. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 36 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 37 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 EJB: EJB QUERY LANGUAGE Galera, quando fazemos uma consulta a um banco de dados relacional, normal, sem nenhum mapeamento objeto relacional, usamos a linguagem SQL, certo? E quando usamos EJB? Será que existe alguma linguagem especial para facilitar a construção de consultas? Sim! O nome dessa linguagem é EJB Query Language (EJB QL). Claro que a Sun (agora Oracle, não me chamem de velho!) não faria algo totalmente diferente a ponto de criar algo totalmente do zero, com uma possível grande curva de aprendizado. Desse modo, a EJB QL tem muitas semelhanças ao bom e velho SQL. A grande diferença está no fato de SQL manipular informações em tabelas e colunas, o EJB QL o fará com objetos persistentes (apesar de também suportar consultas em SQL, caso seja necessário). EJB QL é um tipo de OQL, ou, Object Query Language e, como ela, existem várias outras como HQL (Hibernate Query Language). Na versão mais atual da especificação EJB (versão 3.2), a EJB QL é considerada como implementação opcional, ou seja, não é obrigatório o suporte à linguagem para uma implementação de EJB ser considerada correta. Isso porque muito se avançou desde a versão 2.0 e a especificação se tornou muito mais extensível, podendo utilizar várias tecnologias que implementem a Java Persistence API (JPA). Mas, contudo, todavia, o edital pediu EJB QL e com edital não se briga!! Uma consulta em EJB QL query é uma string que possui as seguintes cláusulas: SELECT, que determina os tipos dos objetos ou valores a serem selecionados FROM que provê as declarações que determinam o domínio utilizado nas cláusulas SELECT e WHERE WHERE, opcional, pode ser utilizada para restringir os resultados recuperados pela consulta ORDER BY, opcional, pode ser utilizada para ordenar os resultados retornados pela consulta 00000000000 Muito abstrato?? Vamos a um exemplo para entendermos melhor como é uma consulta EJB QL: Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 38 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 SELECT DISTINCT OBJECT(c) FROM Compra AS c, IN(c.itens) AS item WHERE item.enviado = FALSE A consulta acima parece muito com SQL, não é mesmo? No lugar de colunas, no entanto, o SELECT seleciona o objeto c que é da classe Compra, bem como os itens dessa compra (perceba o uso do IN para se referenciar à coleção itens da classe Compra), para escolher todos aqueles em que enviado é false, ou seja, o item não foi enviado. Para que a consulta funcione, os objetos envolvidos devem estar no padrão Java Bean, ou seja, com métodos de acesso aos atributos (famosos getters and setters). Desse modo, quando acessamos item.enviado, na verdade invocamos o método isEnviado() do objeto item (lembrando também que esse é o padrão para atributos booleanos). Galera, não vamos entrar nos detalhes de como funciona o distaaaante EJB 2.0 (o professor Leon fazia estágio quando era usado :D) porque suas características são muito diferentes das versões 3.1 e 3.2 e pode confundir bastante o que já vimos até agora. 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 39 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (CESPE – 2005 – SERPRO – Analista de Sistemas) O Entrerprise JavaBeans (EJB), cuja especificação mais recente é a da versão 2.1, define, em sistemas Java, um conjunto de tecnologias utilizadas do lado cliente. Comentários: Enterprise JavaBeans (EJB) é uma arquitetura para aplicações corporativas orientada à transação e baseada em componentes. Além de uma arquitetura, eles são também componentes server-side que oferecem uma infraestrutura para o desenvolvimento e implantação de aplicações distribuídas, escaláveis, transacionais, seguras, concorrentes, persistentes, e portáteis de maneira fácil de acessar e simples de usar. LOCAL CONTÊINER COMPONENTE CLIENTE Aplicação Cliente Applet SERVIDOR Web Componentes de Aplicação Applet Java Servlet JavaServer Pages (JSP) JavaServer Faces (JSF) Enterprise Beans EJB 00000000000 Conforme vimos em aula, trata-se de um conjunto de tecnologias server-side, i.e., utilizada do lado do servidor. Gabarito: E (CESPE – – TRE/BA – Analista de Sistemas) As tecnologias JPA e EJB permitem, com o uso da linguagem Java, a manipulação de dados que estão em um banco de dados. Comentários: Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 40 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Existem três tipos de EJB, mas o Entity Bean é opcional a partir do EJB 3.2. Ele só existe na especificação por questão de compatibilidade com versões anteriores, mas sabe-se que ele já foi substituído pela Java Persistence API (JPA). Ademais, como é um Enterprise JavaBean, eles encapsulam uma lógica de negócio. Pois bem, sobram dois tipos – Message-driven Beans e Session Beans: Conforme vimos em aula, ambos permitem a manipulação de dados que estão em um banco de dados. Atualmente, os Entity Beans são opcionais, mas continuam existindo! Gabarito: C (CESPE – – TRE/PA – Analista de Sistemas) O EJB (Enterprise JavaBeans) é responsável por aspectos de apresentação e tratamento de eventos. Comentários: LOCAL CONTÊINER COMPONENTE CLIENTE Aplicação Cliente Applet SERVIDOR Web Componentes de Aplicação Applet Java Servlet JavaServer Pages (JSP) JavaServer Faces (JSF) Enterprise Beans EJB Conforme podemos ver na tabela, apresentação e tratamento de eventos são tipicamente responsabilidades de JSP e Servlets. 00000000000 Gabarito: E (CESPE – 2009 – TRT/21 – Analista de Sistemas) Na implementação de projeto corporativo de comércio eletrônico construído na plataforma J2EE, a lógica do negócio poderá ser encapsulada em EJBs (Enterprise JavaBeans). Comentários: Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 41 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Podemos dizer também que se trata de uma tentativa de padronizar o encapsulamento da lógica de negócio sob uma única interface – EJB é o núcleo da Tecnologia Java EE. Bem, esse componente é executado no Container EJB de um Servidor de Aplicação! Professor, o que tem de tão especial nessa tecnologia? Cara, ela simplifica o desenvolvimento de aplicações complexas e distribuídas. Conforme vimos em aula, a questão está perfeita! Gabarito: C (CESPE – 2009 – CEHAP/PB – Analista de Sistemas – A camada EJB hospeda, entre outros, os beans de entidade, os beans de transporte, os objetos de acesso aos dados e os objetos de valor. Comentários: Existem três tipos de EJB, mas o Entity Bean é opcional a partir do EJB 3.2. Ele só existe na especificação por questão de compatibilidade com versões anteriores, mas sabe-se que ele já foi substituído pela Java Persistence API (JPA). Ademais, como é um Enterprise JavaBean, eles encapsulam uma lógica de negócio. Pois bem, sobram dois tipos – Message-driven Beans e Session Beans: Conforme vimos em aula, temos três tipos de beans corporativos: Session Beans, Message-driven Beans e Entity Beans (atualmente opcional). Logo, a questão só acertou um deles! Gabarito: E (CESPE – – CEHAP/PB – Analista de Sistemas – A camada EJB não hospeda os serviços em nível de sistema como o gerenciamento de transações, o controle de concorrência e a segurança. 00000000000 Comentários: Programadores precisam escrever apenas a lógica de negócio em Componentes EJB. Não precisa implementar nenhuma programação ou serviço em nível de sistema, tais como transações ou segurança, pois isso é oferecido pelo Container EJB. Conforme afirma a nota de rodapé, o programador não precisa codificar o componente EJB para oferecer tais serviços, porque o Contêiner EJB o faz! Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 42 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Gabarito: E (CESPE – – CEHAP/PB – Analista de Sistemas – Os beans corporativos e seus respectivos recipientes de acompanhamento são executados no cliente JEE. Comentários: LOCAL CONTÊINER COMPONENTE CLIENTE Aplicação Cliente Applet SERVIDOR Web Componentes de Aplicação Applet Java Servlet JavaServer Pages (JSP) JavaServer Faces (JSF) Enterprise Beans EJB Conforme vimos em aula, Beans Corporativos (Enterprise Beans) e seus Recipientes (Container EJB) são executados no Servidor e, não, no Cliente. Gabarito: E (CESPE – – TCU – Analista de Sistemas) A tecnologia EJB (enterprise Java beans) apresenta, na sua versão 3.1, melhorias que propiciam facilidades para o uso de beans singleton e que permitem o uso de beans de uma classe, sem necessidade de desenvolvimento de sua interface correspondente, e a invocação assíncrona de beans de sessão. Comentários: 00000000000 NOVIDADES DO EJB 3.1 Novo tipo de componente (Singleton Session Bean) que implementa o Padrão Singleton e permite capturar eventos de inicialização e encerramento da aplicação Interface opcional para componentes - Flexibilização na criação de componentes EJBs sem a obrigatoriedade da criação de uma interface remota ou local. Melhorias no serviço de agendamento que permitem novas possibilidades através de uma notação similar Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 43 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 ao Unix Cron e agendamento de forma declarativa. Deploy de EJBs na camada web (.war) - Permite o uso de EJBs diretamente na camada Web. Chamadas assíncronas a métodos - Uma alternativa simplificada à MDBs para chamada assíncrona que pode ser utilizada em cenários menos complexos. Nomes JNDI globais padronizados - Esse recurso facilita ainda mais a portabilidade. EJB Lite - Define uma versão mais leve para um conteiner de EJBs. Embeddable EJB - Possibilidade de executar EJBs no ambiente JavaSE. Conforme vimos em aula, todos estão perfeitos! Gabarito: C (CESPE – – TRE/MT – Analista de Sistemas – Em uma aplicação J2EE típica, um EJB é criado, controlado e destruído pela aplicação cliente. Comentários: O Contêiner EJB é um recipiente (em tempo de execução) para Enterprise Beans que são implantados em um Servidor de Aplicação. Ele é criado automaticamente quando o servidor é inicializado e oferece serviços como: gerenciamento de ciclo de vida, geração de código, gerenciamento de persistência, gerenciamento de segurança, gerenciamento de transações, controle de concorrência, etc. Vejamos: 00000000000 LOCAL CONTÊINER COMPONENTE CLIENTE Aplicação Cliente Applet SERVIDOR Web Componentes de Aplicação Applet Java Servlet JavaServer Pages (JSP) JavaServer Faces (JSF) Enterprise Beans EJB Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 44 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Conforme vimos em aula, o gerenciamento do ciclo de vida (Criação, Controle e Destruição de EJB) é de responsabilidade do Contêiner EJB. Gabarito: E (CESPE – 2010 – TRT/21 – Analista de Sistemas) Na implementação de projeto corporativo de comércio eletrônico construído na plataforma J2EE, a lógica do negócio poderá ser encapsulada em EJBs (Enterprise JavaBeans). Comentários: Podemos dizer também que se trata de uma tentativa de padronizar o encapsulamento da lógica de negócio sob uma única interface – EJB é o núcleo da Tecnologia Java EE. Bem, esse componente é executado no Container EJB de um Servidor de Aplicação! Professor, o que tem de tão especial nessa tecnologia? Cara, ela simplifica o desenvolvimento de aplicações complexas e distribuídas. Conforme vimos em aula, essa é a função dos EJBs. Gabarito: C (CESPE – 1 – MEC – Analista de Sistemas) A tecnologia EJB (Enterprise JavaBeans), arquitetura de componentes do lado do servidor, permite o desenvolvimento rápido e simplificado de aplicações transacionais, seguras e portáteis, baseadas na tecnologia Java. Seu objetivo é facilitar o trabalho do desenvolvedor para que ele não tenha de se preocupar com aspectos de infraestrutura. 00000000000 Comentários: Podemos dizer também que se trata de uma tentativa de padronizar o encapsulamento da lógica de negócio sob uma única interface – EJB é o núcleo da Tecnologia Java EE. Bem, esse componente é executado no Container EJB de um Servidor de Aplicação! Professor, o que tem de tão especial nessa tecnologia? Cara, ela permite o desenvolvimento rápido e simplificado de aplicações complexas. Em outras palavras, ele deixa o programador livre para se concentrar na lógica de negócio e na resolução do problema. Assim, o desenvolvedor não precisa mais se Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 45 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 preocupar com codificação envolvendo infraestrutura (segurança, escalabilidade, entre outros). Ademais, eles são extremamente portáveis e reusáveis. Logo, podese construir aplicações a partir de beans pré-existentes. Conforme vimos em aula, o item está perfeito! Gabarito: C (CESPE – 2008 – TRT/5 – Analista de Sistemas) Enterprise JavaBeans são componentes de negócios em Java que são executados do lado do cliente. Comentários: LOCAL CONTÊINER COMPONENTE CLIENTE Aplicação Cliente Applet SERVIDOR Web Componentes de Aplicação Applet Java Servlet JavaServer Pages (JSP) JavaServer Faces (JSF) Enterprise Beans EJB Conforme vimos em aula, Beans Corporativos (Enterprise Beans) e seus Recipientes (Container EJB) são executados no Servidor e, não, no Cliente. Gabarito: E (CESPE – – CENSIPAM – Analista de Sistemas) Um EJB tem as seguintes características: um stateless session bean não pode ter variáveis de instância, pois não mantém informações de estado após um método ser executado por um cliente; em um stateful session bean as variáveis da instância representam o estado de uma sessão e o estado é mantido entre as chamadas aos métodos; um entity bean representa um objeto persistente que pode ser compartilhado por clientes, a persistência pode ser gerenciada pelo container ou pelo bean. 00000000000 Comentários: Stateless Session Beans: são objetos de negócio que não mantém estado entre invocações de métodos. Após cada chamada de método, o contêiner pode Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 46 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 escolher destruir, recriar ou manter o Bean. Eles podem ter variáveis de instância, no entanto elas serão compartilhadas por vários usuários (entretanto, não de forma concorrente). Conforme vimos em aula, eles podem – sim – ter variáveis de instância. Gabarito: E (CESPE - SERPRO - Analista - Desenvolvimento de Sistemas) A tecnologia Enterprise JavaBeans (EJB) é uma arquitetura de componentes do tipo cliente que atua na plataforma J2EE. Comentários: Enterprise JavaBeans (EJB) é uma arquitetura para aplicações corporativas orientada à transação e baseada em componentes. Além de uma arquitetura, eles são também componentes server-side que oferecem uma infraestrutura para o desenvolvimento e implantação de aplicações distribuídas, escaláveis, transacionais, seguras, concorrentes, persistentes, e portáteis de maneira fácil de acessar e simples de usar. Conforme vimos em aula, eles são do tipo servidor! Gabarito: E (CESPE - 2012 - PEFOCE - Perito Criminal - Análise de Sistemas) Em uma arquitetura JEE distribuída, um contêiner representa um ambiente de execução padronizado que fornece serviços específicos a determinado componente. Um contêiner EJB, por exemplo, destina-se a prover a infraestrutura necessária para a execução de componentes que executem funcionalidades que realizam a lógica de negócio e dados específicos de determinada aplicação. 00000000000 Comentários: Enterprise JavaBeans (EJB) é uma arquitetura para aplicações corporativas orientada à transação e baseada em componentes. Além de uma arquitetura, eles são também componentes server-side que oferecem uma infraestrutura para o desenvolvimento e implantação de aplicações distribuídas, escaláveis, transacionais, seguras, concorrentes, persistentes, e portáteis de maneira fácil de acessar e simples de usar. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 47 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Conforme vimos em aula, a questão está perfeita! Gabarito: C ACERTEI ERREI 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 48 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (ESAF – 2012 – CGU – Analista de Sistemas) Os serviços de gerenciamento, oferecidos pelo contêiner EJB (Enterprise JavaBeans), são de: a) Transações. Persistência. Ciclo de Vida. Segurança. b) Transições. Pertinência. Ciclo de Vida. Risco c) Transformações. Persistência. Ciclo de Projeto. Segurança. d) Transações. Comunicação. Ciclo de Vida. Mercado. e) Transações. Consistência. Fases. Segurança. Comentários: O Contêiner EJB é um recipiente (em tempo de execução) para Enterprise Beans que são implantados em um Servidor de Aplicação. Ele é criado automaticamente quando o servidor é inicializado e oferece serviços como: gerenciamento de ciclo de vida, geração de código, gerenciamento de persistência, gerenciamento de segurança, gerenciamento de transações, controle de concorrência, etc. Vejamos: Conforme vimos em aula, trata-se das Transações, Persistência, Ciclo de Vida e Segurança. Gabarito: A 00000000000 ACERTEI Profs. Diego Carvalho e Leon Sólon ERREI www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 49 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (FCC – – TRT/19 – Analista de Sistemas) Tipo de session bean EJB 3.1 cujas instâncias não têm estado conversacional, isto é, todas as instâncias são equivalentes quando não estão envolvidas em atender um método invocado pelo cliente. Trata-se de: a) Stateful. b) Stateless. c) Singleton. d) Message driven. e) Entity. Comentários: Stateless Session Beans: são objetos de negócio que não mantém estado entre invocações de métodos. Após cada chamada de método, o contêiner pode escolher destruir, recriar ou manter o Bean. Eles podem ter variáveis de instância, no entanto elas serão compartilhadas por vários usuários (entretanto, não de forma concorrente). Conforme vimos em aula, são os Stateless Session Beans que não mantêm estado (conversacional)! 00000000000 Gabarito: B (FCC – – TJ/PE – Analista de Sistemas – D) A especificação EJB 3, que é um subconjunto da especificação Java EE, define anotações apenas para o tipo bean. Comentários: Os descritores de implantação do J2EE 1.4 eram, em geral, complexos e era fácil cometer erros ao preenchê-los. Em vez disso, a Plataforma Java EE usa Anotações Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 50 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (Annotations), que são modificadores semelhantes a público e privado. O EJB 3, por exemplo, define anotações para o tipo de bean, tipo de interface, referências de recurso, atributos de transação, segurança e muito mais. Conforme vimos em aula, não são apenas para o tipo Bean. Gabarito: E – afirmar: 1 – TCE/PR – Analista de Sistemas) Sobre o Java EE 6 é correto a) Um message-driven bean encapsula a lógica de negócios e deve ser invocado por meio de programação por um cliente local ou remoto. Os message-driven beans são persistentes. b) Um session bean encapsula a lógica de apresentação e deve ser invocado por meio de programação apenas por cliente remoto. Para acessar um aplicativo que é implantado no servidor, o cliente invoca métodos do session bean. c) Os serviços CDI permitem aos componentes do Java EE, como beans de sessão EJB e beans gerenciados do JavaServer Faces (JSF), serem injetados e interagir de maneira acoplada e flexível iniciando e observando eventos. d) Message-driven beans permitem que aplicações Java EE possam processar mensagens de forma síncrona. São persistentes e gerenciam a troca de mensagens com o banco de dados. e) Os Singleton Session Beans são utilizados na troca de mensagem JMS de forma assíncrona entre aplicações. 00000000000 Comentários: Message-driven Beans (MDB): trata-se de um objeto não-persistente que combina características de um Session Bean e uma escuta/monitor (listener) de mensagens, permitindo a um componente de negócio receber e tratar mensagens de forma assíncrona – geralmente, providas pelo JMS. Pode-se dizer que eles são executados após o recebimento de uma única mensagem do cliente. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 51 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Um Contêiner EJB provê um ambiente de execução escalável para executar um grande número de MDBs concorrentemente. Eles podem ser Stateless, apenas. Ademais, devem ser invocados por meio de programação por um cliente local ou remoto. Como não são persistentes, o cliente não acessa um MDB diretamente, mas por meio do JMSm enviando mensagens para o destinatário. (a) Conforme vimos em aula, ele não é persistente. (d) Conforme vimos em aula, é de forma assíncrona. Um Session Bean encapsula a lógica de negócio que pode ser invocada programaticamente por um cliente localmente, remotamente ou por meio de webservices. Os SBs permitem enviar e receber mensagens JMS, porém somente de forma síncrona. Seus dados não são persistidos em uma base de dados e eles podem ser de três tipos: stateful, stateless e singleton! Vamos vê-los a seguir: (b) Conforme vimos em aula, pode ser invocado de forma local, remota ou por WS. (e) Conforme vimos em aula, a questão trata do MDBs. Ela fornece uma arquitetura que permite que os componentes Java EE existam dentro do ciclo de vida de um aplicativo com escopos bem definidos. Além disso, os serviços CDI permitem que os componentes Java EE, tais como EJB Session Beans e JSF Managed Beans, sejam injetados e interajam de uma maneira acoplada flexível, iniciando e observando eventos. (c) Conforme vimos em aula, está perfeito! Gabarito: C 00000000000 (FCC - 2011 - TRT - 23ª REGIÃO (MT) - Técnico Judiciário - Tecnologia da Informação) No JEE 6 é a especificação que tem como propósito unir os modelos de componentes do JSF Managed-Beans com o EJB, proporcionando um modelo de fácil implementação para aplicações web: a) Contexts and Dependency Injection (CDI). b) Bean Validation. c) Expression Language (EL). d) Bibliotecas padrão para o JSP. e) Enterprise JavaBeans (EJB). Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 52 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Comentários: Ela fornece uma arquitetura que permite que os componentes Java EE existam dentro do ciclo de vida de um aplicativo com escopos bem definidos. Além disso, os serviços CDI permitem que os componentes Java EE, tais como EJB Session Beans e JSF Managed Beans, sejam injetados e interajam de uma maneira acoplada flexível, iniciando e observando eventos. Conforme vimos em aula, trata-se do CDI! Gabarito: A ACERTEI ERREI 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 53 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (FGV – 2013 – INEA/RJ – Analista de Sistemas – III) Um dos componentes da plataforma JEE é o Enterprise JavaBeans (EJB), cujos os principais objetivos são fornecer um desenvolvimento rápido e simplificado de aplicações Java baseado em componentes distribuídos, transacionais, seguros e portáveis. Comentários: Podemos dizer também que se trata de uma tentativa de padronizar o encapsulamento da lógica de negócio sob uma única interface – EJB é o núcleo da Tecnologia Java EE. Bem, esse componente é executado no Container EJB de um Servidor de Aplicação! Professor, o que tem de tão especial nessa tecnologia? Cara, ela permite o desenvolvimento rápido e simplificado de aplicações complexas. Conforme vimos em aula, a questão está perfeita! Gabarito: C ACERTEI ERREI 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 54 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (CESGRANRIO – 2006 – PETROBRÁS – Analista de Sistemas – Um descritor de instalação, localizado dentro de um arquivo Java Archive (JAR), permite que as propriedades de um EJB sejam mantidas fora do código Java e que o desenvolvedor do bean torne as informações sobre o bean disponíveis para o montador da aplicação e para o instalador do bean. Comentários: A estrutura de um Enterprise Bean e seu comportamento em tempo de execução são definidos em um ou mais Descritores de Implantação (Anotações XML). Programadores criam esses arquivos durante o processo de empacotamento de EJB e os descritores se tornam parte da implantação do EJB quando o Enterprise Bean é compilado. O Descritor de Implantação do EJB 3.2 é o ejb-jar.xml. Conforme vimos em aula, o item está perfeito! Gabarito: C (CESGRANRIO – 2011 – PETROBRÁS – Analista de Sistemas – EJB fornece ao programador Java EE os seguintes tipos fundamentais: Entity Beans, Session Beans e Message Driven Beans. 00000000000 Comentários: Existem três tipos de EJB, mas o Entity Bean é opcional a partir do EJB 3.2. Ele só existe na especificação por questão de compatibilidade com versões anteriores, mas sabe-se que ele já foi substituído pela Java Persistence API (JPA). Ademais, como é um Enterprise JavaBean, eles encapsulam uma lógica de negócio. Pois bem, sobram dois tipos – Message-driven Beans e Session Beans: Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 55 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Conforme vimos em aula, ainda existem três tipos fundamentais, mas – a partir do EJB 3.1 – os Entity Beans foram substituídos pelo JPA (e, hoje, são mantidos como opcionais por questão de compatibilidade). Gabarito: C (CESGRANRIO – 2013 – BNDES – Analista de Sistemas) Cada tipo de enterprise bean passa por diferentes fases durante seu ciclo de vida. Um desses tipos possui um estado denominado Passivo. Quando um bean entra nesse estado, o container EJB o desloca da memória principal para a memória secundária. Qual tipo de bean se comporta dessa maneira? a) Stateless Session Bean b) Stateful Session Bean c) Web Service Bean d) Singleton Session Bean e) Message-Driven Bean Comentários: Observem o ciclo de vida mostrado acima e percebam que ele tem três estados: no estágio Does Not Exist, a instância simplesmente ainda não existe; no estágio Ready, a instância está vinculada a um determinado cliente e ocupada em uma conversação; no estágio Passive, a instância sai da memória principal para a memória secundária para economizar recursos. Conforme vimos em aula, trata-se do Stateful Session Bean. 00000000000 Gabarito: B (CESGRANRIO – 2009 – BNDES – Analista de Sistemas – Enterprise JavaBeans é um modelo de componentes padronizado, executado no lado do cliente e que facilita a construção de aplicações distribuídas robustas. Comentários: Enterprise JavaBeans (EJB) é uma arquitetura para aplicações corporativas orientada à transação e baseada em componentes. Além de uma arquitetura, eles são também componentes server-side que oferecem uma infraestrutura para o desenvolvimento e implantação de aplicações distribuídas, escaláveis, Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 56 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 transacionais, seguras, concorrentes, persistentes, e portáteis de maneira fácil de acessar e simples de usar. Podemos dizer também que se trata de uma tentativa de padronizar o encapsulamento da lógica de negócio sob uma única interface – EJB é o núcleo da Tecnologia Java EE. Bem, esse componente é executado no Container EJB de um Servidor de Aplicação! Professor, o que tem de tão especial nessa tecnologia? Cara, ela permite o desenvolvimento rápido e simplificado de aplicações complexas. Conforme vimos em aula, trata-se de um modelo de componentes padronizado, no entanto eles são server-side. Gabarito: E (Quadrix - 2011 - DATAPREV - Analista de Tecnologia da Informação Desenvolvimento de Sistemas) Analise os itens a seguir sobre JEE e EJB. I. Um servidor J2EE fornece contêineres EJB e Web. II. O contêiner EJB gerencia a execução de EJBs em aplicações J2EE. III. O contêiner Web gerencia a execução de páginas JSP e componentes servlet em aplicações J2EE. IV. Um session bean representa um único cliente dentro do servidor J2EE. Para acessar um aplicativo que é instalado no servidor, o cliente invoca os métodos do session bean. 00000000000 Está correto o que se afirma em: a) I,II, III e IV. b) I e II, apenas. c) I, III e IV, apenas. d) I e IV, apenas. e) III e IV, apenas. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 57 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Comentários: LOCAL CONTÊINER COMPONENTE CLIENTE Aplicação Cliente Applet SERVIDOR Web Componentes de Aplicação Applet Java Servlet JavaServer Pages (JSP) JavaServer Faces (JSF) Enterprise Beans EJB Session Beans (SB): trata-se de um objeto não-persistente que implementa alguma lógica de negócio ou fluxo de trabalho no servidor. Eles servem para executar alguma tarefa em nome de um único cliente e implementam a interface javax.ejb.SessionBean, podendo implementar Web Services. O Contêiner EJB provê um ambiente escalável para executar um grande número de SBs concorrentemente. Conforme vimos em aula, um Servidor de Aplicação Java EE fornece um Contêiner EJB e um Contêiner Web. De fato, um Session Bean representa um único cliente dentro do servidor. Todos os itens estão perfeitos! Gabarito: A (FUNCAB - PRODAM-AM - Analista de TI - Desenvolvimento de Sistemas) Sejam as seguintes assertivas sobre os tipos de EJB existentes: I Process beans são excelentes opções para a implementação da lógica do negócio, dos processos de negócio e dos fluxos de trabalho. 00000000000 II Entity beans representam os objetos persistentes em uma aplicação EJB. III Asynchronous beans podem ser usados para o envio (recebimento) de mensagens assíncronas para (de) outros sistemas. Marque a alternativa correta em relação às assertivas acima. a) Apenas a assertiva I é verdadeira. b) Apenas a assertiva II é verdadeira. c) Apenas a assertiva III é verdadeira. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 58 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 d) Todas as assertivas são verdadeiras. e) Todas as assertivas são falsas. Comentários: Session Beans (SB): trata-se de um objeto não-persistente que implementa alguma lógica de negócio ou fluxo de trabalho no servidor. Eles servem para executar alguma tarefa em nome de um único cliente e implementam a interface javax.ejb.SessionBean, podendo implementar Web Services. O Contêiner EJB provê um ambiente escalável para executar um grande número de SBs concorrentemente. (I) Conforme vimos em aula, trata-se – na verdade – dos Session Beans. Existem três tipos de EJB, mas o Entity Bean é opcional a partir do EJB 3.2. Ele só existe na especificação por questão de compatibilidade com versões anteriores, mas sabe-se que ele já foi substituído pela Java Persistence API (JPA). Ademais, como é um Enterprise JavaBean, eles encapsulam uma lógica de negócio. Pois bem, sobram dois tipos – Message-driven Beans e Session Beans: (II) Conforme vimos em aula, trata-se – de fato – dos Entity Beans. Message-driven Beans (MDB): trata-se de um objeto não-persistente que combina características de um Session Bean e uma escuta/monitor (listener) de mensagens, permitindo a um componente de negócio receber e tratar mensagens de forma assíncrona – geralmente, providas pelo JMS. Pode-se dizer que eles são executados após o recebimento de uma única mensagem do cliente. (II) Conforme vimos em aula, trata-se – na verdade – dos Message-driven Beans. 00000000000 Gabarito: B (COPEVE-UFAL - ALGÁS - Analista de Tecnologia da Informação – III) EJB é parte integrante do Java Enterprise Edition e permite o desenvolvimento de componentes de software reutilizáveis e executáveis em servidores de aplicação, como, por exemplo, o JBoss. Comentários: Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 59 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Em outras palavras, ele deixa o programador livre para se concentrar na lógica de negócio e na resolução do problema. Assim, o desenvolvedor não precisa mais se preocupar com codificação envolvendo infraestrutura (segurança, escalabilidade, entre outros). Ademais, eles são extremamente portáveis e reusáveis. Logo, podese construir aplicações a partir de beans pré-existentes. Conforme vimos em aula, eles fazem parte do Java EE; são extremamente reusáveis; e são executados em Servidores de Aplicação – como o JBoss. Gabarito: C (COPEVE-UFAL - 2012 - ALGÁS - Analista de Tecnologia da Informação – IV) EJB é o nome dado para o conjunto de soluções Web em Java, constituído por Servlets e JSP. Comentários: LOCAL CONTÊINER COMPONENTE CLIENTE Aplicação Cliente Applet SERVIDOR Web Componentes de Aplicação Applet Java Servlet JavaServer Pages (JSP) JavaServer Faces (JSF) Enterprise Beans EJB Conforme vimos em aula, eles são compostos por Enterprise Beans e, não, Servlets e JPS. 00000000000 Gabarito: E (FUNCAB - PRODAM-AM - Analista de TI - Desenvolvimento de Sistemas) Qual interface deve ser usada para criar, procurar e remover objetos EJB? a) javax.ejb.EJBLocalObject b) javax.ejb.EJBHome c) javax.ejb.EJBObject d) javax.ejb.EntityBean Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 60 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 e) javax.ejb.EJBMetaData. Comentários: A Interface EJBObject implementa a interface para acessos remotos e locais, e funciona como um wrapper, i.e., encapsulando a instância EJB solicitada pelo cliente. Já a Interface EJBHome faz exatamente a mesma coisa, no entanto ela também é responsável por auxiliar o contêiner a gerenciar o ciclo de vida de um Bean – realizando criações, buscas e remoções de objetos. Conforme vimos em aula, trata-se da interface javax.ejb.EJBHome. Gabarito: B (FUMARC - -MG - Técnico Judiciário - Analista de Sistemas – ) EJB é um framework de componentes, baseado na arquitetura MVC, para construção de interfaces com usuário. Comentários: Enterprise JavaBeans (EJB) é uma arquitetura para aplicações corporativas orientada à transação e baseada em componentes. Além de uma arquitetura, eles são também componentes server-side que oferecem uma infraestrutura para o desenvolvimento e implantação de aplicações distribuídas, escaláveis, transacionais, seguras, concorrentes, persistentes, e portáteis de maneira fácil de acessar e simples de usar. Conforme vimos em aula, essa definição está incorreta! Na verdade, essa é a definição de JSF! 00000000000 Gabarito: E (Instituto AOCP - 2013 - Colégio Pedro II - Técnico de Tecnologia da Informação) Muitos sistemas corporativos são construídos seguindo a arquitetura definida pelo padrão Enterprise JavaBeans (EJB). Ao utilizar essa arquitetura, as aplicações ganham certos benefícios. Qual das alternativas abaixo indica alguns desses benefícios? a) Concorrência, multithreading, faces server, conversões, gerenciamento de telas. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 61 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 b) Conversões, transações, Persistência, segurança e gerenciamento de telas. c) Gerenciamento de telas, Persistência, conversões. d) Transações, Persistência, Segurança, Remotabilidade. e) Remotabilidade, gerenciamento de telas, faces server. Comentários: O Contêiner EJB é um recipiente (em tempo de execução) para Enterprise Beans que são implantados em um Servidor de Aplicação. Ele é criado automaticamente quando o servidor é inicializado e oferece serviços como: gerenciamento de ciclo de vida, geração de código, gerenciamento de persistência, gerenciamento de segurança, gerenciamento de transações, controle de concorrência, etc. Vejamos: Conforme vimos em aula, estão todos corretos – inclusive a remotabilidade, que é intrínseco ao componente. Gabarito: D ACERTEI ERREI 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 62 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 ECLIPSE O Eclipse é uma IDE (Integrated Development Environmnet)! O que é isso, professor? É um software que reúne características e ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar esse processo! Hoje em dia, é raríssimo alguém escrever um software relativamente complexo sem a utilização de uma IDE! Por que? Porque ela facilita muito as coisas para o programador. 00000000000 Eclipse para Java EE Eclipse para Java Eclipse para C++ Eclipse para PHP Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 63 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Eclipse para Modelagem Eclipse para Aplicação Paralela Eclipse para Testadores O Eclipse foi Eclipse para Automotivo Software criado para desenvolvimento Java, no entanto ele suporta diversas linguagens de programação por meio da utilização de plug-ins, como podemos ver na imagem abaixo! Ela suporta até desenvolvimento de software para plataforma Android. Ademais, é um software livre, de código-fonte aberto, gratuito e é atualmente a IDE Java mais utilizada do planeta. A IDE está em sua versão Luna 4.4 (de Junho de 2014) e é uma das plataformas mais utilizadas na indústria de tecnologia atual como base para a criação de ambientes de modelagem e desenvolvimento de aplicações. Sua arquitetura altamente modular e extensível, em combinação com seu licenciamento e distribuição de seu código fonte, contribuiu para que se tornasse quase um padrão de mercado. Uma característica importante é que ela utiliza SWT e, não, Swing como biblioteca gráfica. Ademais, possui dois conceitos importantíssimos: workspaces e workbenches – não devemos confundi-los! O primeiro é o diretório que mantém informações sobre os projetos em que o desenvolvedor está trabalhando, assim como as preferências do Eclipse (desde layout a comportamento). Ele é o “espaço de trabalho” em si, contendo os dados que estão sendo trabalhados, organizados em projetos, e como se trabalha com eles, i.e., as preferências. Já o segundo é a janela principal do Eclipse. É o local em que se organiza os componentes, com diferentes visões e editores para manipular fontes e dados. Em outras palavras, trata-se de um “painel de instrumentos” com perspectivas e visões. 00000000000 Por fim, vamos falar sobre Perspectivas e Visões! A perspectiva é o nome dado à coleção e disposição inicial de visões e uma área de edição. A perspectiva padrão é chamada Java e uma janela pode conter múltiplas perspectivas, no entanto somente uma estará ativa em determinado momento. E as visões, professor? Pois é, uma perspectiva contém diversas visões. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 64 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Elas permitem que os usuários vejam a representação gráfica dos metadados de um projeto. Por exemplo, a Visão Navigator apresenta a representação gráfica das pastas e arquivos associados com um projeto; já a Visão Properties apresenta a representação gráfica de um elemento selecionado em outra visão ou editor. Abaixo seguem imagens de possíveis perspectivas e visões. PERSPECTIVAS (ESQUERDA) E POSSÍVEIS VISÕES DE UMA PERSPECTIVA ESPECÍFICA (DIREITA) 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 65 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (CESPE – 7 – PRB/AC – Analista de Sistemas) O uso de IDEs como Eclipse ou NetBeans é mais adequado no ambiente de teste que na workstation do desenvolvedor. Comentários: De jeito algum! Está invertido, visto que eles são mais adequados no ambiente de desenvolvimento do que de teste. Gabarito: E (CESPE – 8 – SERPRO – Analista de Sistemas) O Eclipse é um ambiente de desenvolvimento integrado, baseado em plug-ins diversos, wizards que orientam a construção das aplicações e class browsers para visualização da estrutura de diretórios e arquivos do projeto. Comentários: Esse item foi anulado: “Anulado porque a redação do item é ambígua, o que prejudica o seu julgamento. Dessa forma, o CESPE/UnB decide por sua anulação”. Esse item está correto, mas foi anulado por conta da conjunção “e”. 00000000000 Gabarito: X (CESPE – – MPU – Analista de Sistemas) Na arquitetura do Eclipse, versão 3.1, o workbench é responsável por administrar os recursos do usuário que são organizados em um ou mais projetos. Comentários: Não devemos confundir Workspace com Workbench! O primeiro é o diretório que mantém informações sobre os projetos em que o desenvolvedor está trabalhando, Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 66 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 assim como as preferências do Eclipse (desde layout a comportamento). Ele é o “espaço de trabalho” em si, contendo os dados que estão sendo trabalhados, organizados em projetos, e como se trabalha com eles, i.e., as preferências. Já o segundo é a janela principal do Eclipse. É o local em que se organiza os componentes, com diferentes visões e editores para manipular fontes e dados. Em outras palavras, trata-se de um “painel de instrumentos” com perspectivas e visões. A questão trata de um workspace! Gabarito: E (CESPE – – SERPRO – Analista de Sistemas) Considerando as tecnologias atualmente disponíveis para o desenvolvimento de sistemas, o analista Pedro deverá escolher ferramentas a serem utilizadas em um projeto. Se os aplicativos forem desenvolvidos em Java, a ferramenta de IDE (integrated development enviroment) escolhida por Pedro poderá ser o Eclipse, pois, embora não seja um software gratuito e de código aberto, já traz plug-ins específicos como o EJB e o Hibernate. Comentários: Na verdade, ele é gratuito e de código aberto! Gabarito: E (CESPE – 2010 – TRE/BA – Analista de Sistemas) Com a IDE Eclipse, é possível desenvolver diferentes sistemas com a linguagem Java. Existem distribuições do Eclipse específicas para trabalhar com desenvolvimento web na plataforma J2EE. 00000000000 Comentários: Perfeito! Eclipse possui diversas distribuições, inclusive para trabalhar com a Plataforma Java EE. Gabarito: C (CESPE – 1 – BRB – Analista de Sistemas) No Eclipse, a perspectiva Debug possui várias views para realizar a depuração de um programa Java: uma delas é a view Debug, que exibe os servidores configurados para executar o projeto e a lista de processos Java em execução. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 67 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Comentários: Não, a lista de servidores configurados é apresentada na Visão Servers (como mostra a imagem abaixo): Observem que existem três servidores configurados na Visão Server da Perspectiva Debug. Gabarito: E (CESPE – 2011 – TJ/ES – Analista de Sistemas) O IDE Eclipse é um ambiente de desenvolvimento exclusivo para a linguagem Java. 00000000000 Comentários: Não! Há plug-ins para diversas linguagens, tais como: Eclipse para Java EE Eclipse para Java Eclipse para C++ Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 68 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Eclipse para PHP Eclipse para Modelagem Eclipse para Aplicação Paralela Eclipse para Testadores Eclipse para Software Automotivo Gabarito: E (CESPE – – TRE/RJ – Analista de Sistemas) O Eclipse — ferramenta de desenvolvimento de aplicativos em Java, PHP etc. — é muito utilizado no mercado mundial. Para essa ferramenta, existem diversos plug-ins que se comunicam entre si para garantir uma consistência e integração em todo o seu ambiente de desenvolvimento. Comentários: Perfeito! O Eclipse é extremamente extensível, i.e., pode-se utilizar plug-ins para desenvolver em Java, C, C++, PHP, ColdFusion, Python, etc. Gabarito: C ACERTEI ERREI 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 69 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (FCC – – MPU – Analista de Sistemas) A visão do Eclipse Workbench, que permite criar, selecionar e excluir projetos é: a) b) c) d) e) Tasks view Package View. Outline View. Private View. Navigator View. Comentários: 00000000000 Portanto, trata-se da visão Navigator! Gabarito: E Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 70 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (FCC – 2013 – AL/RN – Analista de Sistemas) O Eclipse IDE permite que sejam configurados atalhos de teclado para seus comandos. A opção de configuração de teclas se encontra na tela de preferências, seguindo as opções de menu: a) b) c) d) e) User Interface e Keyboard. Keyboard e Configure. Editors e Keyboard. Key Mappings e Configure. General e Keys. Comentários: 00000000000 Portanto, encontra-se em General e Keys. Gabarito: E (FCC – – AL/RN – Analista de Sistemas) Com a utilização do Eclipse IDE, é possível efetuar a mudança de encoding de um determinado arquivo, alterando-o, por exemplo, para UTF-8. Esse processo pode ser feito pela opção “Set Encoding...” presente no menu: a) Refactor. b) Format. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 71 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 c) Configure. d) File. e) Edit. Comentários: Portanto, encontra-se presente no menu: edit. Gabarito: E ACERTEI ERREI 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 72 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (CESGRANRIO 8 – TJ/RO – Analista de Sistemas) A base para o trabalho no ambiente Eclipse é o Workbench, com o qual o usuário interage diretamente, e que corresponde ao conceito comumente conhecido como “IDE” – Integrated Development Environment (ambiente integrado de desenvolvimento). A figura a seguir mostra uma janela do Workbench. 00000000000 Com base na figura, assinale a afirmação correta. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 73 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 a) b) c) d) e) “Project Explorer” é uma perspectiva. “Java EE” é uma view (visão). “Outline” é um inspector (inspetor). web.xml está aberto em um editor. “Properties” é um resource (recurso). Comentários: (a) Não, é uma visão; (b) Não, é um projeto; (c) Não, é uma visão; (d) Sim, basta ver a figura; (e) Não, é uma visão. Gabarito: D (CESGRANRIO 8 – TJ/RO – Analista de Sistemas) Os recursos de atualização e instalação de novos plugins do Eclipse se encontram no menu: a) b) c) d) e) File. Edit. Refactor. Window. Help. Comentários: 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 74 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 Está no menu Help Installation Details Plug-ins. Gabarito: E (CESGRANRIO - 2009 – CMB – Analista de Sistemas) Em uma reunião técnica da equipe de infraestrutura, foi discutido qual sistema operacional deveria ser instalado nos servidores da Internet. Nesse caso, NÃO é exemplo de sistema operacional: a) b) c) d) e) Eclipse Linux FreeBSD Mac OS OpenBSD 00000000000 Comentários: Galera, Eclipse não é Sistema Operacional! Gabarito: A Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 75 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (CESGRANRIO - 2009 – DECEA – Analista de Sistemas) Um técnico em programação deseja identificar três exemplos de ambientes integrados de desenvolvimento (IDE), apresentados em: a) b) c) d) e) Netbeans, Eclipse e IntelliJ IDEA. Struts, Eclipse e Tomcat. Eclipse, MyFaces e Struts. MyFaces, PostgreSQL e AJAX. AJAX, Netbeans e Eclipse. Comentários: Struts, Tomcat, MyFaces, PostgreSQL e AJAX não são IDEs! Netbeans é o maior concorrente do Eclipse. O IntelliJ IDEA é também uma IDE, mas não gratuita. Gabarito: A (CESGRANRIO - 2009 – DECEA – Analista de Sistemas) Uma equipe de desenvolvimento de sistemas, que utiliza Eclipse como IDE Java, deseja utilizar o Subversion para controle de versão de seus programas. Que plugins podem ser instalados no Eclipse para que haja a integração da IDE com o repositório do Subversion? a) b) c) d) e) FileSync e Subclipse ProjectSet e Subclipse ProjectSet e FileSync Subversive e Subclipse Subversive e FileSync 00000000000 Comentários: Galera, existem dois plug-ins para integração do Eclipse com Subversion: Subversive e Subclipse. Gabarito: D ACERTEI Profs. Diego Carvalho e Leon Sólon ERREI www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 76 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 77 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 LISTA DE EXERCÍCIOS COMENTADOS (DIVERSAS BANCAS) JAVA EE (CESPE – – INMETRO – Analista de Sistemas) São exemplos de tipos de componentes de software reusáveis desenvolvidos na plataforma JEE: JSP (Java Server Page); biblioteca de tags; Servlet; EJB. O grau de reúso provido por esses componentes, EJBs e JSPs, é usualmente superior a bibliotecas de TAG. (CESPE – – SERPRO – Analista de Sistemas) A tecnologia Enterprise JavaBeans (EJB) é uma arquitetura de componentes do tipo cliente que atua na plataforma J2EE. (CESPE - 2010 – TCU – Auditor Federal de Controle Externo) A web profile da plataforma JEE apresenta, em relação ao perfil application server definido em edições anteriores da plataforma Java, as seguintes vantagens: fornece suporte para POJOs (Plain Old Java Objects) e Annotations; possui modelo de empacotamento de componentes mais simples; a configuração dos seus descritores XML (extensible markup language) é mais fácil; é aderente ao padrão SOA. (CESPE - 2010 – TRE/MT – Analista Judiciário – Tecnologia da Informação – A) Clientes J2EE são necessariamente páginas web dinâmicas que normalmente não fazem acessos a banco de dados, nem executam regras de negócio complexas. (CESPE – TRE/MT – Analista Judiciário – Tecnologia da Informação – D) Um componente J2EE é uma unidade funcional de software autocontida, escrito na linguagem de programação Java e executado exclusivamente em servidores. 00000000000 (CESPE – PREVIC – Analista de Sistemas) Em uma aplicação multicamadas na plataforma Java EE, servlets, JavaServer Faces e JSP consistem em tecnologias utilizadas na camada web. (ESAF – J2EE são: – CGU – Analista de Finanças e Controle) Os níveis da plataforma a) Patrocinador. Web. Negócios. Sistemas de Computação Corporativos. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 78 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 b) Cliente. Web. Negócios. Sistemas de Informação Corporativos. c) Cliente. Interno. Externo. Negócios. d) Fornecedor. Web. Político. Sistemas de Informação Camada. e) Cliente. Stakeholders. Negócios. Background corporativo. (CESGRANRIO – 2008 – BNDES – Analista de Sistemas) Uma aplicação empresarial contendo componentes EJB e módulos web deverá ser publicada em um servidor de aplicações compatível com J2EE. No contexto do empacotamento dessa aplicação para publicação (deploy), é correto afirmar que: a) não há como juntar componentes EJB e módulos web em uma mesma aplicação, pois deverão ser publicados separadamente. b) um arquivo EAR poderá conter arquivos WAR e JAR representativos dos módulos web e EJB. c) o tamanho do pacote, em bytes, sempre fica maior que o código original, em virtude do algoritmo empregado no empacotamento da aplicação em um arquivo EAR. d) módulos web não devem ser empacotados, pois isso inviabiliza seu acesso pela Internet. e) arquivos JAR servem apenas para empacotar componentes EJB. (FCC – 2011 – TRT/19 – Analista de Sistemas) A especificação Java EE define os seguintes componentes: 00000000000 I. Clientes da aplicação (Application Clients) e applets. II. Java Servlet, JavaServer Faces e JavaServer Pages. III. Enterprise Javabeans (EJB). Os componentes I, II e III rodam, respectivamente, em: a) cliente, cliente, servidor. b) servidor, cliente, servidor. c) cliente, servidor, servidor. d) servidor, cliente, cliente. e) cliente, servidor, cliente. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 79 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (FCC - 2011 - TRT - 1ª REGIÃO (RJ) - Analista Judiciário - Tecnologia da Informação) J2EE é uma plataforma de programação para servidores na linguagem de programação Java, que integra uma série de especificações e containers, cada uma com funcionalidades distintas. Nesse contexto, é correto afirmar que são integrantes do J2EE: a) Servlets, Jcompany e JSP. b) JDBC, JSP, EJBs. c) EJBs, Servlets e JBoss. d) JDBC, Hibernate e JPA. e) JSP, JSF e Eclipse. (FCC - TRT - 8ª Região (PA e AP) - Analista Judiciário - Tecnologia da Informação) O Contêiner J2EE que fornece aos desenvolvedores o ambiente para rodar Java Server Pages (JSPs) e servlets é: a) Applet (Applet container). b) Enterprise Java Beans (EJB). c) Interface (Interface container). d) do cliente do aplicativo (Application client container). e) Web (Web container). (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática Suporte de Web) São apenas tipos de componentes executados em servidores Web: a) Beans, Servlets e J2EE. b) JVM, Servlets e JSP. c) Beans, Servlets e JSP. d) Beans, Swing e JSP. e) Beans, Swing e JVM. 00000000000 (FCC - 2014 – TRT/2 – Analista de Sistemas) Um contêiner Java EE pode oferecer serviços como gestão de memória, ciclo de vida e estado de objetos, conexões, transações, serviços de nomes, segurança, tolerância a falhas, integração, clustering, alta disponibilidade, confiabilidade e web services. Um servidor Java EE completo disponibiliza dois tipos principais de contêiner, que são: Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 80 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 a) Contêiner MVC e Contêiner EJB. b) Applet Container e Web Container. c) Contêiner Web e Contêiner EJB. d) Servlet Container e JSP Container. e) Application Client Container e Web Container. (FCC – 2012 – TJ/PE – Analista de Sistemas) Sobre a plataforma Java EE 6, é correto afirmar: a) Simplifica a implantação sem a necessidade de descritores de implantação, com exceção do descritor de implantação exigido pela especificação servlet, o arquivo web.xml. b) Necessita do descritor de implantação ejb-jar.xml e entradas relacionadas aos web services no arquivo web.xml. c) Faz uso de anotações (annotations). Anotações são modificadores Java, semelhantes aos públicos e privados, que devem ser especificados nos arquivos de configuração XML. d) A especificação EJB 3, que é um subconjunto da especificação Java EE, define anotações apenas para o tipo bean. e) Anotações são marcados com um caracter # (cerquilha). 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 81 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 82 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 LISTA DE EXERCÍCIOS COMENTADOS (CESPE) EJB (CESPE – 2005 – SERPRO – Analista de Sistemas) O Entrerprise JavaBeans (EJB), cuja especificação mais recente é a da versão 2.1, define, em sistemas Java, um conjunto de tecnologias utilizadas do lado cliente. (CESPE – – TRE/BA – Analista de Sistemas) As tecnologias JPA e EJB permitem, com o uso da linguagem Java, a manipulação de dados que estão em um banco de dados. (CESPE – – TRE/PA – Analista de Sistemas) O EJB (Enterprise JavaBeans) é responsável por aspectos de apresentação e tratamento de eventos. (CESPE – 2009 – TRT/21 – Analista de Sistemas) Na implementação de projeto corporativo de comércio eletrônico construído na plataforma J2EE, a lógica do negócio poderá ser encapsulada em EJBs (Enterprise JavaBeans). (CESPE – 2009 – CEHAP/PB – Analista de Sistemas – A camada EJB hospeda, entre outros, os beans de entidade, os beans de transporte, os objetos de acesso aos dados e os objetos de valor. (CESPE – – CEHAP/PB – Analista de Sistemas – A camada EJB não hospeda os serviços em nível de sistema como o gerenciamento de transações, o controle de concorrência e a segurança. (CESPE – – CEHAP/PB – Analista de Sistemas – Os beans corporativos e seus respectivos recipientes de acompanhamento são executados no cliente JEE. 00000000000 (CESPE – – TCU – Analista de Sistemas) A tecnologia EJB (enterprise Java beans) apresenta, na sua versão 3.1, melhorias que propiciam facilidades para o uso de beans singleton e que permitem o uso de beans de uma classe, sem necessidade de desenvolvimento de sua interface correspondente, e a invocação assíncrona de beans de sessão. (CESPE – – TRE/MT – Analista de Sistemas – Em uma aplicação J2EE típica, um EJB é criado, controlado e destruído pela aplicação cliente. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 83 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (CESPE – 2010 – TRT/21 – Analista de Sistemas) Na implementação de projeto corporativo de comércio eletrônico construído na plataforma J2EE, a lógica do negócio poderá ser encapsulada em EJBs (Enterprise JavaBeans). (CESPE – 2011 – MEC – Analista de Sistemas) A tecnologia EJB (Enterprise JavaBeans), arquitetura de componentes do lado do servidor, permite o desenvolvimento rápido e simplificado de aplicações transacionais, seguras e portáteis, baseadas na tecnologia Java. Seu objetivo é facilitar o trabalho do desenvolvedor para que ele não tenha de se preocupar com aspectos de infraestrutura. (CESPE – 2008 – TRT/5 – Analista de Sistemas) Enterprise JavaBeans são componentes de negócios em Java que são executados do lado do cliente. (CESPE – – CENSIPAM – Analista de Sistemas) Um EJB tem as seguintes características: um stateless session bean não pode ter variáveis de instância, pois não mantém informações de estado após um método ser executado por um cliente; em um stateful session bean as variáveis da instância representam o estado de uma sessão e o estado é mantido entre as chamadas aos métodos; um entity bean representa um objeto persistente que pode ser compartilhado por clientes, a persistência pode ser gerenciada pelo container ou pelo bean. (CESPE - SERPRO - Analista - Desenvolvimento de Sistemas) A tecnologia Enterprise JavaBeans (EJB) é uma arquitetura de componentes do tipo cliente que atua na plataforma J2EE. (CESPE - 2012 - PEFOCE - Perito Criminal - Análise de Sistemas) Em uma arquitetura JEE distribuída, um contêiner representa um ambiente de execução padronizado que fornece serviços específicos a determinado componente. Um contêiner EJB, por exemplo, destina-se a prover a infraestrutura necessária para a execução de componentes que executem funcionalidades que realizam a lógica de negócio e dados específicos de determinada aplicação. 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 84 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 LISTA DE EXERCÍCIOS COMENTADOS (ESAF) EJB (ESAF – 2012 – CGU – Analista de Sistemas) Os serviços de gerenciamento, oferecidos pelo contêiner EJB (Enterprise JavaBeans), são de: a) Transações. Persistência. Ciclo de Vida. Segurança. b) Transições. Pertinência. Ciclo de Vida. Risco c) Transformações. Persistência. Ciclo de Projeto. Segurança. d) Transações. Comunicação. Ciclo de Vida. Mercado. e) Transações. Consistência. Fases. Segurança. 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 85 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 LISTA DE EXERCÍCIOS COMENTADOS (FCC) EJB (FCC – – TRT/19 – Analista de Sistemas) Tipo de session bean EJB 3.1 cujas instâncias não têm estado conversacional, isto é, todas as instâncias são equivalentes quando não estão envolvidas em atender um método invocado pelo cliente. Trata-se de: a) Stateful. b) Stateless. c) Singleton. d) Message driven. e) Entity. (FCC – – TJ/PE – Analista de Sistemas – D) A especificação EJB 3, que é um subconjunto da especificação Java EE, define anotações apenas para o tipo bean. – afirmar: 1 – TCE/PR – Analista de Sistemas) Sobre o Java EE 6 é correto a) Um message-driven bean encapsula a lógica de negócios e deve ser invocado por meio de programação por um cliente local ou remoto. Os message-driven beans são persistentes. b) Um session bean encapsula a lógica de apresentação e deve ser invocado por meio de programação apenas por cliente remoto. Para acessar um aplicativo que é implantado no servidor, o cliente invoca métodos do session bean. 00000000000 c) Os serviços CDI permitem aos componentes do Java EE, como beans de sessão EJB e beans gerenciados do JavaServer Faces (JSF), serem injetados e interagir de maneira acoplada e flexível iniciando e observando eventos. d) Message-driven beans permitem que aplicações Java EE possam processar mensagens de forma síncrona. São persistentes e gerenciam a troca de mensagens com o banco de dados. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 86 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 e) Os Singleton Session Beans são utilizados na troca de mensagem JMS de forma assíncrona entre aplicações. (FCC - 2011 - TRT - 23ª REGIÃO (MT) - Técnico Judiciário - Tecnologia da Informação) No JEE 6 é a especificação que tem como propósito unir os modelos de componentes do JSF Managed-Beans com o EJB, proporcionando um modelo de fácil implementação para aplicações web: a) Contexts and Dependency Injection (CDI). b) Bean Validation. c) Expression Language (EL). d) Bibliotecas padrão para o JSP. e) Enterprise JavaBeans (EJB). 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 87 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 LISTA DE EXERCÍCIOS COMENTADOS (FGV) EJB (FGV – 2013 – INEA/RJ – Analista de Sistemas – III) Um dos componentes da plataforma JEE é o Enterprise JavaBeans (EJB), cujos os principais objetivos são fornecer um desenvolvimento rápido e simplificado de aplicações Java baseado em componentes distribuídos, transacionais, seguros e portáveis. 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 88 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 LISTA DE EXERCÍCIOS COMENTADOS (DIVERSAS BANCAS) EJB (CESGRANRIO – 2006 – PETROBRÁS – Analista de Sistemas – Um descritor de instalação, localizado dentro de um arquivo Java Archive (JAR), permite que as propriedades de um EJB sejam mantidas fora do código Java e que o desenvolvedor do bean torne as informações sobre o bean disponíveis para o montador da aplicação e para o instalador do bean. (CESGRANRIO – 2011 – PETROBRÁS – Analista de Sistemas – EJB fornece ao programador Java EE os seguintes tipos fundamentais: Entity Beans, Session Beans e Message Driven Beans. (CESGRANRIO – 2013 – BNDES – Analista de Sistemas) Cada tipo de enterprise bean passa por diferentes fases durante seu ciclo de vida. Um desses tipos possui um estado denominado Passivo. Quando um bean entra nesse estado, o container EJB o desloca da memória principal para a memória secundária. Qual tipo de bean se comporta dessa maneira? a) Stateless Session Bean b) Stateful Session Bean c) Web Service Bean d) Singleton Session Bean e) Message-Driven Bean (CESGRANRIO – 2009 – BNDES – Analista de Sistemas – Enterprise JavaBeans é um modelo de componentes padronizado, executado no lado do cliente e que facilita a construção de aplicações distribuídas robustas. 00000000000 (Quadrix - 2011 - DATAPREV - Analista de Tecnologia da Informação Desenvolvimento de Sistemas) Analise os itens a seguir sobre JEE e EJB. I. Um servidor J2EE fornece contêineres EJB e Web. II. O contêiner EJB gerencia a execução de EJBs em aplicações J2EE. III. O contêiner Web gerencia a execução de páginas JSP e componentes servlet em aplicações J2EE. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 89 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 IV. Um session bean representa um único cliente dentro do servidor J2EE. Para acessar um aplicativo que é instalado no servidor, o cliente invoca os métodos do session bean. Está correto o que se afirma em: a) I,II, III e IV. b) I e II, apenas. c) I, III e IV, apenas. d) I e IV, apenas. e) III e IV, apenas. (FUNCAB - PRODAM-AM - Analista de TI - Desenvolvimento de Sistemas) Sejam as seguintes assertivas sobre os tipos de EJB existentes: I Process beans são excelentes opções para a implementação da lógica do negócio, dos processos de negócio e dos fluxos de trabalho. II Entity beans representam os objetos persistentes em uma aplicação EJB. III Asynchronous beans podem ser usados para o envio (recebimento) de mensagens assíncronas para (de) outros sistemas. Marque a alternativa correta em relação às assertivas acima. a) Apenas a assertiva I é verdadeira. b) Apenas a assertiva II é verdadeira. c) Apenas a assertiva III é verdadeira. d) Todas as assertivas são verdadeiras. e) Todas as assertivas são falsas. 00000000000 (COPEVE-UFAL - ALGÁS - Analista de Tecnologia da Informação – III) EJB é parte integrante do Java Enterprise Edition e permite o desenvolvimento de componentes de software reutilizáveis e executáveis em servidores de aplicação, como, por exemplo, o JBoss. (COPEVE-UFAL - 2012 - ALGÁS - Analista de Tecnologia da Informação – IV) EJB é o nome dado para o conjunto de soluções Web em Java, constituído por Servlets e JSP. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 90 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (FUNCAB - PRODAM-AM - Analista de TI - Desenvolvimento de Sistemas) Qual interface deve ser usada para criar, procurar e remover objetos EJB? a) javax.ejb.EJBLocalObject b) javax.ejb.EJBHome c) javax.ejb.EJBObject d) javax.ejb.EntityBean e) javax.ejb.EJBMetaData. (FUMARC - -MG - Técnico Judiciário - Analista de Sistemas – ) EJB é um framework de componentes, baseado na arquitetura MVC, para construção de interfaces com usuário. (Instituto AOCP - 2013 - Colégio Pedro II - Técnico de Tecnologia da Informação) Muitos sistemas corporativos são construídos seguindo a arquitetura definida pelo padrão Enterprise JavaBeans (EJB). Ao utilizar essa arquitetura, as aplicações ganham certos benefícios. Qual das alternativas abaixo indica alguns desses benefícios? a) Concorrência, multithreading, faces server, conversões, gerenciamento de telas. b) Conversões, transações, Persistência, segurança e gerenciamento de telas. c) Gerenciamento de telas, Persistência, conversões. d) Transações, Persistência, Segurança, Remotabilidade. e) Remotabilidade, gerenciamento de telas, faces server. 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 91 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 LISTA DE EXERCÍCIOS COMENTADOS (CESPE) ECLIPSE (CESPE – 7 – PRB/AC – Analista de Sistemas) O uso de IDEs como Eclipse ou NetBeans é mais adequado no ambiente de teste que na workstation do desenvolvedor. (CESPE – 8 – SERPRO – Analista de Sistemas) O Eclipse é um ambiente de desenvolvimento integrado, baseado em plug-ins diversos, wizards que orientam a construção das aplicações e class browsers para visualização da estrutura de diretórios e arquivos do projeto. (CESPE – – MPU – Analista de Sistemas) Na arquitetura do Eclipse, versão 3.1, o workbench é responsável por administrar os recursos do usuário que são organizados em um ou mais projetos. (CESPE – – SERPRO – Analista de Sistemas) Considerando as tecnologias atualmente disponíveis para o desenvolvimento de sistemas, o analista Pedro deverá escolher ferramentas a serem utilizadas em um projeto. Se os aplicativos forem desenvolvidos em Java, a ferramenta de IDE (integrated development enviroment) escolhida por Pedro poderá ser o Eclipse, pois, embora não seja um software gratuito e de código aberto, já traz plug-ins específicos como o EJB e o Hibernate. (CESPE – 2010 – TRE/BA – Analista de Sistemas) Com a IDE Eclipse, é possível desenvolver diferentes sistemas com a linguagem Java. Existem distribuições do Eclipse específicas para trabalhar com desenvolvimento web na plataforma J2EE. 00000000000 (CESPE – 1 – BRB – Analista de Sistemas) No Eclipse, a perspectiva Debug possui várias views para realizar a depuração de um programa Java: uma delas é a view Debug, que exibe os servidores configurados para executar o projeto e a lista de processos Java em execução. (CESPE – 2011 – TJ/ES – Analista de Sistemas) O IDE Eclipse é um ambiente de desenvolvimento exclusivo para a linguagem Java. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 92 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (CESPE – – TRE/RJ – Analista de Sistemas) O Eclipse — ferramenta de desenvolvimento de aplicativos em Java, PHP etc. — é muito utilizado no mercado mundial. Para essa ferramenta, existem diversos plug-ins que se comunicam entre si para garantir uma consistência e integração em todo o seu ambiente de desenvolvimento. 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 93 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 LISTA DE EXERCÍCIOS COMENTADOS (FCC) ECLIPSE (FCC – – MPU – Analista de Sistemas) A visão do Eclipse Workbench, que permite criar, selecionar e excluir projetos é: a) b) c) d) e) Tasks view Package View. Outline View. Private View. Navigator View. (FCC – 2013 – AL/RN – Analista de Sistemas) O Eclipse IDE permite que sejam configurados atalhos de teclado para seus comandos. A opção de configuração de teclas se encontra na tela de preferências, seguindo as opções de menu: a) b) c) d) e) User Interface e Keyboard. Keyboard e Configure. Editors e Keyboard. Key Mappings e Configure. General e Keys. (FCC – – AL/RN – Analista de Sistemas) Com a utilização do Eclipse IDE, é possível efetuar a mudança de encoding de um determinado arquivo, alterando-o, por exemplo, para UTF-8. Esse processo pode ser feito pela opção “Set Encoding...” presente no menu: 00000000000 a) b) c) d) e) Refactor. Format. Configure. File. Edit. Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 94 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 LISTA DE EXERCÍCIOS COMENTADOS (DIVERSAS BANCAS) ECLIPSE (CESGRANRIO 8 – TJ/RO – Analista de Sistemas) A base para o trabalho no ambiente Eclipse é o Workbench, com o qual o usuário interage diretamente, e que corresponde ao conceito comumente conhecido como “IDE” – Integrated Development Environment (ambiente integrado de desenvolvimento). A figura a seguir mostra uma janela do Workbench. 00000000000 Com base na figura, assinale a afirmação correta. a) b) c) d) e) “Project Explorer” é uma perspectiva. “Java EE” é uma view (visão). “Outline” é um inspector (inspetor). web.xml está aberto em um editor. “Properties” é um resource (recurso). Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 95 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 (CESGRANRIO 8 – TJ/RO – Analista de Sistemas) Os recursos de atualização e instalação de novos plugins do Eclipse se encontram no menu: a) b) c) d) e) File. Edit. Refactor. Window. Help. (CESGRANRIO - 2009 – CMB – Analista de Sistemas) Em uma reunião técnica da equipe de infraestrutura, foi discutido qual sistema operacional deveria ser instalado nos servidores da Internet. Nesse caso, NÃO é exemplo de sistema operacional: a) b) c) d) e) Eclipse Linux FreeBSD Mac OS OpenBSD (CESGRANRIO - 2009 – DECEA – Analista de Sistemas) Um técnico em programação deseja identificar três exemplos de ambientes integrados de desenvolvimento (IDE), apresentados em: a) b) c) d) e) Netbeans, Eclipse e IntelliJ IDEA. Struts, Eclipse e Tomcat. Eclipse, MyFaces e Struts. MyFaces, PostgreSQL e AJAX. AJAX, Netbeans e Eclipse. 00000000000 (CESGRANRIO - 2009 – DECEA – Analista de Sistemas) Uma equipe de desenvolvimento de sistemas, que utiliza Eclipse como IDE Java, deseja utilizar o Subversion para controle de versão de seus programas. Que plugins podem ser instalados no Eclipse para que haja a integração da IDE com o repositório do Subversion? a) b) c) d) FileSync e Subclipse ProjectSet e Subclipse ProjectSet e FileSync Subversive e Subclipse Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 96 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 e) Subversive e FileSync 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 97 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 GABARITO DOS EXERCÍCIOS COMENTADOS (DIVERSAS BANCAS) JAVA EE 1 E 11 E 2 E 12 C 3 E 13 C 4 E 14 A 5 E 15 6 C 16 7 B 17 8 B 18 9 C 19 10 B 20 GABARITO DOS EXERCÍCIOS COMENTADOS (CESPE) EJB 1 E 11 C 2 C 12 E 3 E 13 E 4 C 14 E 5 E 15 C 6 E 16 7 E 17 8 C 18 9 E 19 10 C 20 GABARITO DOS EXERCÍCIOS COMENTADOS (ESAF) EJB 1 A 2 3 4 5 00000000000 6 7 8 9 10 9 10 GABARITO DOS EXERCÍCIOS COMENTADOS (FCC) EJB 1 B 2 E 3 C 4 A Profs. Diego Carvalho e Leon Sólon 5 6 7 8 www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 98 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 GABARITO DOS EXERCÍCIOS COMENTADOS (FGV) EJB 1 C 2 3 4 5 6 7 8 9 10 GABARITO DOS EXERCÍCIOS COMENTADOS (DIVERSAS BANCAS) EJB 1 C 11 D 2 C 12 3 B 13 4 E 14 5 A 15 6 B 16 7 C 17 8 E 18 9 B 19 10 E 20 GABARITO DOS EXERCÍCIOS COMENTADOS (CESPE) ECLIPSE 1 E 2 X 3 E 4 E 5 C 6 E 7 E 8 C 9 10 9 10 GABARITO DOS EXERCÍCIOS COMENTADOS (FCC) ECLIPSE 00000000000 1 E 2 E 3 E 4 5 6 7 8 GABARITO DOS EXERCÍCIOS COMENTADOS (DIVERSAS BANCAS) ECLIPSE 1 D 2 E 3 A 4 A Profs. Diego Carvalho e Leon Sólon 5 D 6 7 8 www.estrategiaconcursos.com.br 00000000000 - DEMO 9 10 Pág. 99 de 100 Analista de Informática (Código 116) – HEMOCENTRO DF Curso de Desenvolvimento de Software Profs. Leon Sólon e Diego Carvalho – Aula 00 00000000000 Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br 00000000000 - DEMO Pág. 100 de 100