|
08/08: |
Apresentação. Evolução dos sistemas de
informação distribuídos (Alonso,
capítulo 1, até 1.2.4). Introdução aos servidores de aplicações.
|
|
10/08: |
Visão geral de Java EE. Evolução da arquitetura EJB. Exemplo de
session bean sem estado baseado em EJB 2.1. Pooling de
instâncias de um session bean sem estado.
|
|
15/08: |
EJB 3.0. Uso de anotações em EJB 3.0. Exemplo de session bean
sem estado baseado em EJB 3.0. Session beans com estado. Cache
de instâncias de session bean com estado, passivação e ativação
de instâncias. Ciclo de vida de um session bean sem estado
(pooling de instâncias) e de um session bean com estado (cache
de instâncias).
|
|
17/08: |
EJB 3.0: lifecycle callbacks, injeção de dependências,
interceptadores (EJB 3.0
Simplified API, capítulos 3, 4, 5 e 8).
|
|
22/08: |
Message-oriented
middleware e message queueing (Alonso,
seções 1.3 e 2.5): características,
quando usar. O Java
Message Service (JMS). Message-driven beans (MDBs).
|
|
24/08: |
EJB 3.0: a API de persistencia Java (JPA).
|
|
29/08: |
JPA (continuação).
|
|
31/08: |
Uso de entidades por session beans sem estado (contexto de
persistência com escopo de transação) e por session beans com
estado (contexto de persistência com escopo estendido). Os
níveis de isolação de transações no SQL (Ramakrishnan e
Gehrke, 18.3.3, 18.4, 19.3.1 e 19.4, até 19.4.1). Alternativas
para acesso concorrente a entidades: travamento otimista
(@Version), locking explícito via JPA, ou uso de um nível de
isolação alto (repeatable read ou serializable) no banco de
dados. Entidades com objetos embutidos, relacionamentos
entre entidades.
|
|
12/09: |
Componentes web: servlets e noções de JSP.
|
|
14/09: |
Introdução à arquitetura de carga de classes em Java (Halloway,
capítulo 2).
|
|
19/09: |
Arquitetura de class loaders em Java (Halloway,
capítulo 2). Leitura adicional: Liang e Bracha.
|
|
21/09: |
Class loading (final). Conceitos de reflexão computacional:
instrospecção e adaptação; adaptação comportamental e adaptação
estrutural. Introspecção e invocação reflexiva em Java
(Halloway, capítulo 3, até 3.3). Proxies dinâmicos em Java
(Halloway, 3.4).
|
|
26/09: |
Proxies dinâmicos em Java (Halloway, 3.4). A arquitetura JMX (Fleury
e Reverbel, seções 1 e 2). Transparências
(vimos até a transparência 14 dessa apresentação).
|
|
28/09: |
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. Carga de
classes em servidores de aplicação: o esquema "loader per
deployment" e a arquitetura de unified class loaders do
JBoss. Uso de proxies dinâmicos no JBoss. (Fleury
e Reverbel, seção 3.) Transparências
(vimos as transparências 15 a 30 dessa apresentação).
|
|
03/10: |
Arquitetura de unified class loaders do JBoss
(continuação). Meta-nível de uma arquitetura para EJBs
generalizados (Fleury
e Reverbel, seção 4). Transparências
(vimos as transparências 31 a 42 dessa apresentação).
|
|
05/10: |
Suporte para IIOP no JBoss: os MBeans CorbaORBService,
CorbaNamingService e IIOPInvoker. Relacionamento entre invokers e
proxy factories. Configurações de container EJB. Arquitetura do
IIOPInvoker. (Reverbel,
Burke e Fleury, seções 3, 4 e 5.) Transparências.
|
|
17/10: |
Revisão sobre transações num sistema não distribuído: logging e
recuperação de quedas. (Referência: livro de bancos de dados
do Ramakrishnan. Slides do
Ramakrishnan sobre logging e recuperação de quedas.)
|
|
19/10: |
Transações distribuídas: o protocolo two-phase
commit (2PC). (Referência: livro de bancos de dados
do Ramakrishnan. Slides do
Ramakrishnan sobre 2PC.) O padrão
X/Open DTP e a interface XA. O serviço
de transações CORBA (OTS). Apresentação
sobre OTS.
|
|
24/10: |
OTS (continuação). Transações num servidor de aplicações: uso
implícito do OTS, criação automática de objetos Coordinator e
Resource para cada transação, registro automático dos Resources
com o Coordinator. Interposição de coordenadores. Noções gerais
sobre transações em ambiente Web Services: as especificações
WS-Coordination e WS-AtomicTransaction.
|
|
31/10: |
Transações distribuídas envolvendo múltiplos TMs: logging e
recuperação de quedas. Conversa sobre o trabalho final.
|
|
07/11: |
Conversa sobre o trabalho final. Conceitos de AJAX.
|
|
09/11: |
Clustering em servidores de aplicações. Clustering no JBoss.
|
|
21/11: |
Prova.
|
|
23/11: |
Seminário 1: Padrões
Arquiteturais para Sistemas Baseados em Componentes
Reconfiguráveis (Rafael Ferreira)
Seminário 2: JBoss
Seam (Tiago Motta Jorge)
|
|
28/11: |
Seminário 3: OSGi -- Um
Sistema Dinâmico de Módulos para Java (Raoni
Kulesza)
Seminário 4: JBoss
Cache (Helves Humberto Domingues)
|
|
30/11: |
Seminário 5: Gerenciamento
de Sistemas com JMX (Ivan F. Martinez)
Seminário 6: Google Web Toolkit (Cleiton Cabral)
|
|
05/12: |
Seminário 7: XML11
(Rodrigo Ferro)
Seminário 8: O Framework
Spring (Daniel Creão)
|
|
07/12: |
Prova substitutiva (para quem não compareceu à prova de 21/11 e
justificou a falta).
|
|
Stuart D. Halloway, Component Development for the Java
Platform, Addison-Wesley, 2002.
|
|
Sheng Liang e Gilad Bracha, Dynamic
Class Loading in the Java Virtual Machine, OOPSLA'98.
|
|
Fabio Kon, Fábio Costa, Roy Campbell e Gordon Blair,
The
Case for Reflective Middleware,
Communications of the ACM, Vol. 45, No. 6, pp. 33-38, June, 2002.
|
|
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.
|
|
Francisco Reverbel, Bill Burke e Marc Fleury, Dynamic
Deployment of IIOP-Enabled Components in the JBoss Server,
in Component Deployment: Second International Working Conference
(CD 2004), vol. 3083
of LNCS, pp. 65-80, Springer-Verlag, 2004.
|
|
Richard Monson-Haefel e Bill Burke, Enterprise
JavaBeans 3.0, 5th ed., O'Reilly, 2006.
|
|
Rima Patel Sriganesh, Gerald Brose e Micah Silverman,
Mastering
Enterprise JavaBeans 3.0, Wiley, 2006.
|
|
Floyd Marinescu, EJB
Design Patterns - Advanced
Patterns, Processes and Idioms, Wiley, 2002.
|
|
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.
|
|
Gustavo Alonso, Fabio Casati, Harumi Kuno e Vijay Machiraju, Web
Services Concepts, Architectures and Applications,
Springer-Verlag, 2004.
|