Sistemas de Middleware Avançados

MAC 0434/5765 - Tópicos em Sistemas de Computação - Segundo Semestre de 2003

Prof. Francisco Reverbel

. Informações gerais
. Descrição
. Assuntos tratados em aula
. Trabalhos propostos
        
. Bibliografia
. Lista de discussão da disciplina
. Recursos adicionais na Internet

At work icon Esta página estará em permanente construção até o final do semestre...

Informações Gerais

. Local: IME-USP, bloco B, sala 4
. Horário: terças das 8:00 às 9:40, sextas das 10:00 às 11:40
. Pasta xerox CAMAT: número 62
. Avaliação: uma prova (no dia 18/11/2003), trabalhos práticos, apresentação de um seminário

Descrição

MAC-0434 (Tópicos em Sistemas de Computação) e MAC-5765 (Tópicos em Sistemas de Computação I) são disciplinas que servem de "guarda-chuva" para o estudo de tópicos avançados relacionados ao desenvolvimento de sistemas de software numa variedade de áreas. No segundo semestre de 2003, o assunto geral vai ser "Sistemas de Middleware Avançados".

A relação de tópicos que estudaremos ao longo do semestre não está completamente decidida, mas será semelhante à do oferecimento de MAC-5765 em 2002.

Assuntos Tratados em Aula

. 12/08: Apresentação. Carga dinâmica de classes em Java. (Halloway, capítulo 2, até 2.4.2.)
. 15/08: Arquitetura de class loaders em Java. "Implantação quente". Boot classpath, extensions classpath e classpath. (Halloway, capítulo 2, de 2.4.3 a 2.8.3.) Leitura recomendada: Liang e Bracha.
. 19/08: O problema da inversão e o context class loader. Run-time type information (RTTI) em Java. (Halloway, 2.9 e 2.10, mais o início do capítulo 3, até 3.1.)
. 22/08: Reflexão (introspecção) e invocação reflexiva em Java. Proxies Dinâmicos. (Halloway, 3.2, 3.3 e 3.4.) O "dynamic stub idiom". (Fleury e Reverbel, seção 3.7.)
. 26/08: Exemplo de proxy dinâmico. Observações adicionais sobre o "dynamic stub idiom". A arquitetura JMX. (Fleury e Reverbel, seções 1 e 2.)
. 29/08: Componentes de middleware no JBoss: MBeans de serviço (service MBeans) e MBeans implantáveis (deployable MBeans), dependências entre MBeans implantáveis, implantação dinâmica. (Fleury e Reverbel, seção 3, até 3.4.)
. 09/09: Carga de classes em servidores de aplicação: o esquema "loader per deployment" e a arquitetura de unified class loaders do JBoss. Meta-nível de uma arquitetura para EJBs generalizados. (Fleury e Reverbel, seções 3.5 e 3.6, mais o início da seção 4, até 4.1.)
. 12/09: Meta-nível de uma arquitetura para EJBs generalizados. (Fleury e Reverbel, seção 4.)
. 16/09: A arquitetura EJB: as interfaces home (ou local home) e remote (ou local), a classe do componente (bean class) e o descritor de implantação. Exemplo de session bean sem estado. O ciclo de vida de um session bean sem estado.
. 19/09: EJB (continuação): exemplo de cliente de um session bean. Uso da API JNDI por parte do cliente (para obter uma referência para a interface home do bean). Exemplo de session bean com estado. Entity beans: persistência gerenciada pelo container (CMP) e relacionamentos gerenciados pelo container (CMR).
. 23/09: EJB (continuação): gerenciamento de transações.
. 26/09: Transações: visão geral (Ramakrishnan e Gehrke, capítulo 18). Controle de concorrência: two-phase locking (2PL) e 2PL estrito, os níveis de isolação de transações no SQL (Ramakrishnan e Gehrke, 19.1, 19.3, até 19.3.1, e 19.4, até 19.4.1).
. 30/09: Logging e recuperação de falhas (Ramakrishnan e Gehrke, capítulo 20, até 20.2).
. 03/10: Conclusão do estudo de logging e recuperação de falhas (Ramakrishnan e Gehrke, capítulo 20, até 20.2). EJB: as opções de efetivação (commit options) A, B e C. A "opção D" do JBoss.
. 14/10: Transações distribuídas e two-phase commit. (Ramakrishnan e Gehrke, 21.13). Propagação do contexto transacional.
. 17/10: Alternativas para gerenciamento de transações no JBoss. Nosso segundo exercício-programa: demarcação de transações sobre IIOP.
. 21/10: Detalhes sobre o segundo exercício-programa: os módulos do lado cliente (biblioteca) e do servidor (service MBean), as interfaces do OTS que cada módulo deve implementar, a interação entre o service MBean e o gerenciador de transações do JBoss.
. 24/10: O padrão X/Open DTP (Distributed Transaction Processing) e a interface XA. A Java Transaction API (JTA). (As seções B.1 e B.2 da especificação do OTS contêm um resumo de X/Open DTP e XA e mostram a relação de XA com OTS e com JTA.)
. 31/10: Suporte para IIOP no JBoss: os MBeans CorbaORBService, CorbaNamingService e IIOPInvoker. Arquitetura do IIOPInvoker.
. 04/11: Geração de stubs CORBA para o EP2: como lidar com Throwable e Exception. Conceitos de bancos de dados orientados a objetos. Introdução a JDO.
. 07/11: Discussão sobre o EP2. JDO e Hibernate.
. 18/11: Prova.
. 21/11: O Modelo de Componentes CORBA (CCM).
. 25/11: Sistemas de middleware: o que poderia/deveria ser melhor (aula "opinativa").
Seminário: Arquitetura de Plugins do Eclipse (Alexandre Freire da Silva).
. 28/11: Seminário: XWork/WebWork2 e PicoContainer (Paulo Silveira)
Seminário: Hibernate (Fernando Kasten Peinado)
. 02/12: Seminário: Javassist (Stefan Neusatz Guilhen)
Seminário: Políticas de Coleta de Lixo Usadas pela JVM da Sun (Rodrigo Vieira Couto)
. 05/12: Seminário: Bibliotecas Dinâmicas para Programação Orientada a Aspectos (Flávia Rainone)

Trabalhos Propostos

. "EP zero": quem não cursou Sistemas de Objetos Distribuídos no primeiro semestre de 2003 deve fazer o exercício-programa sobre utilização de EJB (ps, pdf) de SOD-2003. Os EJBs produzidos no "EP zero" servirão para testar o EP1 e deverão ser entregues juntamente com o EP1.
. Primeiro exercício-programa: invocador ICE para o JBoss (ps, pdf). Prazo: 08 de outubro (dilatado até 13 de outubro).
. Segundo exercício-programa: demarcação de transações sobre IIOP (ps, pdf). Prazo: 10 de novembro (dilatado até 14 de novembro).
. Terceiro trabalho: implementação de software (EP3) ou seminário. Prazo para definição do tema: 18 de novembro. Prazo de entrega do EP3: 6 de dezembro.

Bibliografia

. Stuart D. Halloway, Component Development for the Java Platform, Addison-Wesley, 2002. (O autor disponibiliza o livro completo como um conjunto de arquivos PDF.)
. Sheng Liang e Gilad Bracha, Dynamic Class Loading in the Java Virtual Machine, OOPSLA'98.
. Marc Fleury e Francisco Reverbel, The JBoss Extensible Server, in Middleware 2003 - ACM/IFIP/USENIX International Middleware Conference, vol. 2672 of LNCS, pp. 344-373, Springer-Verlag, 2003.
. Richard Monson-Haefel, Enterprise JavaBeans, 3rd ed., O'Reilly, 2001.
. Ed Roman, Scott Ambler e Tyler Jewell, Mastering Enterprise JavaBeans, Second Edition, Wiley, 2002. Disponível para download como um arquivo PDF não imprimível.
. Floyd Marinescu, EJB Design Patterns - Advanced Patterns, Processes and Idions, Wiley, 2002. Disponível para download como um arquivo PDF não imprimível.
. Juha Lindfors, Marc Fleury e o JBoss Group, JMX: Managing J2EE with Java Management Extensions, SAMS, 2002.
. Jim Gray e Andreas Reuter, Transaction Processing: Concepts and Techniques, Morgan Kaufmann, 1993.
. Raghu Ramakrishnan e Johannes Gehrke, Database Management Systems, Second Edition, McGraw-Hill, 2000.

Recursos Adicionais na Internet

. Java 2 Platform, Enterprise Edition (J2EE)
. Java Management Extensions (JMX)
. TheServerSide.com
. JBoss.org


Valid CSS! Valid XHTML 1.0! Last modified: Thu Jan 8 13:29:36 EDT 2004
Francisco Reverbel
reverbel at ime.usp.br