Aula 1: Apresentação, Computação Corporativa Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 1 / 21
Agenda 1 Estrutura da Disciplina 2 Computação Corporativa Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 2 / 21
Agenda 1 Estrutura da Disciplina 2 Computação Corporativa Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 3 / 21
Informações Gerais Salas e Horários Terças, 18:00 às 20:00, sala 315. Quintas, 18:00 às 20:00, sala 315. Contato dpassos@ic.uff.br http://www.midiacom.uff.br/ diego/disciplinas/2014_2/tepisii/ Calendário. Material didático. Informações. Avisos. Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 4 / 21
Foco e Objetivos Em TEPIS I Técnicas de programação e desenvolvimento O.O. Boas práticas de programação e projeto. Padrões de projeto. Foco em desenvolvimento de software genérico. Em TEPIS II Foco na computação corporativa. Desenvolvimento para ambientes corporativos. Técnicas e ferramentas. Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 5 / 21
Conteúdo Programático Noções de Computação Corporativa. Arquitetura em 3 camadas. APIs e Java Enterprise. Montagem e disponibilização. Servelets. JSP. Java Server Faces. Enterprise JavaBeans. Programação com XML. JDBC. Webservices. Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 6 / 21
Bibliografia e Material de Apoio Sobre Java Enterprise Stephanie Bodff et al., Tutorial do J2EE 1.4, Ciência Moderna, 2005. Jim Farley e William Crawford, Java Enterprise in a Nutshell. O Reilly, Terceira Edição, 2005. Sobre Computação Corporativa Martin Fowler et al. Patterns of Enterprise Application Architecture, Addison Wesley, 2003. Links e slides na página do curso. Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 7 / 21
Avaliação Provas Duas provas de mesmo peso: Reposição: matéria toda. M p = P 1 + P 2 2 Trabalho Individual. Implementação de sistema. Média Final 2 M p + M t 3 Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 8 / 21
Calendário (Provisório) Agosto 12 Apresentação, Computação Corporativa 14 Arquitetura em 3 camadas, APIs 19 APIs Java Enterprise 21 Montagem e Disponibilização 26 Montagem e Disponibilização (II) 28 Servelets Setembro 02 Servelets (II) 04 Servelets (III) 09 JSP 11 JSP (II) 16 Java Server Faces 18 Java Server Faces (II) 23 Java Server Faces (III) 25 Enterprise JavaBeans 30 P1 Outubro 02 Enterprise JavaBeans (II) 07 Enterprise JavaBeans (III) 09 Enterprise JavaBeans (IV) 14 Semana Acadêmica 16 Semana Acadêmica 21 Enterprise JavaBeans (V) 23 Programação com XML 28 Dia do Servidor Público 30 Programação com XML (II) Novembro 04 JDBC 06 JDBC (II) 11 JDBC (III) 13 Webservices 18 Consciência Negra 20 Webservices (II) 25 Webservices (III) 27 P2 Dezembro 02 VR 04 Vista de Prova (P2/VR) 09 VS 11 Vista de Prova (VS) Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 9 / 21
Agenda 1 Estrutura da Disciplina 2 Computação Corporativa Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 10 / 21
O Que É? Segundo Farley e Crawford Conceito de combinar aplicações, processos e serviços separados em um sistema unificado. Todo é maior que a soma das partes. Segundo Fowler Sistemas que lidam com produtos, serviços e parte financeira de empresas. Includem: folha de pagamento, prontuários médicos, rastreamento de encomendas, análise de custos, qualificação de crédito, seguros, cadeia produtiva, contabilidade, serviço ao consumidor... Não incluem: sistema de injeção em carros, editor de textos, sistemas operacionais, switches, controladores de elevador, compiladores e jogos. Em suma: sistemas que executam funcionalidades ligadas a negócios. Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 11 / 21
Características de uma Aplicação Corporativa Envolvem dados persistentes. Dados armazenados em disco. Disponíveis entre execuções do sistema. Manipulam grande massa de dados. Dezenas de milhões de registros. Precisam lidar com acessos concorrentes. Múltiplas interfaces de acesso/consulta aos dados. Usuários muitas vezes inexperientes. Muito processamento em lotes (batch). Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 12 / 21
Características de uma Aplicação Corporativa (II) Requer integração com outras aplicações corporativas. Possivelmente com tecnologias diferentes. Possivelmente com conceitos distintos para as mesmas entidades. Apresentam lógica de domínio complexas. Determinadas por situações de negócio. Pode haver várias exceções. Pode mudar ao longo do tempo. Não são necessariamente grandes. Podem ocorrer em contextos como empresas pequenas e negócios familiares. Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 13 / 21
Aplicações Corporativas São Mais Complexas? Não necessariamente. A complexidade é diferente. Exemplo: aplicação de telecomunicações vs. aplicação corporativa. Telecom: problemas com número massivo de threads, integração com hardware específico. Corporativa: dados complexos, em grande quantidade, regras de negócio complexas. Fontes de Complexidade Natureza distribuída e heterogênea. Pode envolver servidores dedicados, desktops, dispositivos móveis. Necessidade de lidar com vários padrões, protocolos e tecnologias. Muitas vezes antigos/legados Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 14 / 21
Tipos de Aplicação Corporativa Há vários tipos, com suas particularidades. Exemplos: Venda de produtos on-line. Sistema de controle de financiamento. Controle financeiro de uma pequena empresa Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 15 / 21
Cenário da Venda de Produtos Alto volume de acessos. Requer solução escalável, i.e., adicionando hardware, aumenta-se a capacidade. Lógica de domínio é simples. Receber pedidos, calcular preços/frete, gerar notificações de envio... Sistema deve prezar acessibilidade. Interface web genérica, compatível com maior número possível de browsers. Dados vêm de uma base de produtos/pedidos/clientes e eventualmente outros sistemas de estoque. Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 16 / 21
Cenário de Controle de Financiamento Poucos usuários Centenas de vendedores/gerentes. Regras de negócio/lógica de domínio complexas. Calcular cobranças mensais, juros, reajustes indexados, retomada de posse de bens, pagamentos atrasados, validação de dados cadastrais... Interfaces mais complexas. Mais opções, diálogos, maneiras de visualizar/atualizar dados. Pode requerer componentes mais complexos que os disponíveis em interfaces web. Bases de dados também têm estruturas mais complexas. Mais tabelas. Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 17 / 21
Cenário de Controle Financeiro de uma Pequena Empresa Poucos usuários. Lógica de domínio simples. Desafios: Espera-se um sistema pronto rapidamente. Sistema tende a adicionar complexidade ao longo do tempo. Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 18 / 21
Em Suma: Requisitos Comuns em uma Aplicação Corporativa Integração com Outras Aplicações Aplicações já existentes. Tecnologias/linguagens variadas. Aplicações futuras. Manutenção Deve ser fácil alterar a lógica de negócio, migrar para novas plataformas de hardware, etc. Interface com Usuário Podem ser complexas. Pode haver várias versões. Para tipos variados de dispositivo/usuário. Outros: Robustez e Segurança Dados são sensíveis. Devem ser preservados. Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 19 / 21
Lidando com a Complexidade Adoção de linguagens e tecnologias portáveis. Exemplo: Java. Utilização de plataformas/apis para desenvolvimento corporativo. Encapsulam padrões/protocolos/apis varias, proprietárias. Criam camadas de abstração. Unificam acesso a recursos. Potencializam a reutilização de código. Exemplo: J2EE. Utilização de padrões de projeto corporativos Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 20 / 21
Importância da Computação Corporativa Fatia considerável da área de TI. Maioria das empresas da área têm soluções corporativas. Microsoft, IBM, Google... Várias empresas têm foco (quase) exclusivo neste segmento. SAP, Red Hat, Oracle... No Brasil, Totvs. Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS II 21 / 21