Bertrand.pt - Programação de Sistemas Distribuídos em Java

Programação de Sistemas Distribuídos em Java

de Jorge Cardoso 

Editor: FCA
Edição ou reimpressão: maio de 2008
Portes
Grátis
10%
32,20€
Poupe 3,22€ (10%) Cartão Leitor Bertrand
Em stock - Envio 24H
portes grátis

A Internet foi sem dúvida um marco na história dos sistemas distribuídos. Ao longo do tempo, a Internet foi-se aperfeiçoando e tornou-se um meio de comunicação agradável e atractivo. Hoje, as redes de dados são ubíquas e a própria Internet pode ser percebida como um gigantesco sistema distribuído que permite aos utilizadores um acesso imediato a uma variedade de serviços. À medida que os sistemas distribuídos foram ganhando uma importância considerável no mundo informático, houve a necessidade de desenvolver fundamentos, mecanismos e métodos para facilitar a construção de aplicações distribuídas. O livro Programação de Sistemas Distribuídos em Java apresenta ao leitor os principais conceitos associados ao desenvolvimento de sistemas distribuídos e os fundamentos da programação distribuída.

Ao longo do livro são abordados, entre outros, os seguintes temas:

  • A evolução histórica dos sistemas informáticos;
  • As redes de dados;
  • Os sockets;
  • O CORBA, o Java RMI;
  • Os Web Services.


  • É claro que estas últimas tecnologias não constituem uma base irrevogável para a construção de sistemas distribuídos. Outras soluções virão. No entanto, independentemente dos progressos e das futuras arquitecturas, os conceitos apresentados neste livro permanecerão actualizados porque fornecem pilares e noções fundamentais das arquitecturas dos sistemas distribuídos.

    Este livro destina-se a programadores, engenheiros, arquitectos de sistemas e estudantes que necessitem de compreender os princípios e fundamentos, que permitem o desenvolvimento e a programação de sistemas distribuídos reais.

    PREFACIO VIII
    SOBRE O AUTOR XI

    1 - EVOLUCAO DOS SISTEMAS COMPUTACIONAIS
    1.1 Os primeiros computadores 1
    1.1.1 Primeira geracao 2
    1.1.2 Segunda geracao 7
    1.1.3 Terceira geracao 9
    1.1.4 Quarta geracao 12
    1.1.5 Tipos de computadores 13
    1.2 Os primeiros sistemas operativos 15
    1.3 As primeiras redes de dados 16
    1.4 Os primeiros sistemas distribuidos 18
    1.5 Conclusoes 20

    2 - REDES DE DADOS
    2.1 Introducao 25
    2.2 Classificacao das redes de dados 27
    2.2.1 Redes LAN 29
    2.2.1.1. Topologias 30
    2.2.1.2. Protocolos 31
    2.2.1.3. Meios de transmissao 33
    2.2.2 Redes WAN 35
    2.2.3 Redes MAN 36
    2.3 Equipamento de uma rede de dados 37
    2.3.1 Placa de rede 37
    2.3.2 Routers 38
    2.3.3 Hubs 39
    2.3.4 Repetidores 40
    2.3.5 Modems 40
    2.3.6 Gateways 41
    2.3.7 Switch 42
    2.4 O modelo OSI 42
    2.4.1 Camada fisica 43
    2.4.2 Camada de ligacao de dados 44
    2.4.3 Camada de rede 44
    2.4.4 Camada de transporte 45
    2.4.5 Camada de sessao 46
    2.4.6 Camada de apresentacao 47
    2.4.7 Camada de aplicacao 47
    2.5 O modelo TCP/IP 48
    2.5.1 Enderecos IP 51
    2.5.1.1. Estruturas dos enderecos 51
    2.5.1.2. Classes de enderecos 51
    2.5.1.3. Broadcast e multicast 55
    2.5.2 Protocolo IPv4 e IPv6 56
    2.5.2.1. Migracao do IPV4 para o IPV6 58
    2.6 Encaminhamento de dados 58
    2.6.1 Comutacao de circuitos 59
    2.6.2 Comutacao de pacotes 59
    2.6.3 Encaminhamento 60
    2.7 Conclusoes 60

    3 - ARQUITECTURAS DE SISTEMAS DISTRIBUIDOS
    3.1 Arquitecturas monoliticas 65
    3.2 Arquitectura de duas camadas 66
    3.3 Arquitectura de tres camadas 69
    3.3.1 Estrutura 69
    3.3.2 Vantagens e desvantagens 71
    3.3.3 Exemplo pratico 72
    3.4 Arquitectura de N camadas 75
    3.5 Arquitectura Peer-to-Peer 76
    3.6 Os primeiros sistemas distribuidos 77
    3.6.1 Sockets 78
    3.6.2 RPC 78
    3.7 Arquitectura de objectos distribuidos 79
    3.7.1 Objectos 80
    3.7.2 Objectos distribuidos 80
    3.7.3 Sistemas de objectos distribuidos 82
    3.7.3.1. DCOM 82
    3.7.3.2. CORBA 84
    3.7.3.3. Java RMI 86
    3.7.3.4. JINI 87
    3.8 Os Web Services 89
    3.9 Conclusoes 90

    4 - O SISTEMA DE NOMES DNS
    4.1 Aspectos gerais 95
    4.2 O DNS, um sistema distribuido 96
    4.2.1 Zonas e registos de recursos 97
    4.2.2 Nomes hierarquicos 98
    4.2.3 Dominios 98
    4.3 Funcionalidades do DNS 99
    4.4 Replicacao e caching 101
    4.5 Tipos de servidores 102
    4.5.1 Servidor primario 103
    4.5.2 Servidor secundario 103
    4.5.3 Caching server 103
    4.5.4 Forwarding server 104
    4.6 Acesso programatico ao DNS em Java 104
    4.6.1 Interface Java para o DNS 104
    4.6.2 Programar a interface Java para o DNS 105
    4.7 Conclusoes 107

    5 - PROGRAMACAO COM SOCKETS
    5.1 Introducao 111
    5.2 Protocolos de transmissao 113
    5.2.1 Ligacoes TCP e UDP 113
    5.2.2 O TCP e o UDP em Java 115
    5.3 UDP 115
    5.3.1 Estrutura de um datagrama UDP 117
    5.3.2 Ciclo de vida 118
    5.3.3 A classe DatagramPacket 120
    5.3.3.1. Construtores 120
    5.3.3.2. Metodos 124
    5.3.4 A classe DatagramSocket 125
    5.3.4.1. Construtores 127
    5.3.4.2. Metodos 129
    5.3.5 Envio de datagramas 130
    5.3.6 Recepcao de datagramas 132
    5.3.7 Implementacao de uma aplicacao cliente/servidor 133
    5.3.7.1. O exemplo completo 139
    5.3.7.2. Compilar e executar a aplicacao 143
    5.3.8 Um segundo exemplo 144
    5.3.9 O multicast 147
    5.3.9.1. Multicast em Java 148
    5.3.9.2. Construtores 149
    5.3.9.3. Metodos 151
    5.3.9.4. Exemplo de uma aplicacao 152
    5.3.9.5. O codigo completo 156
    5.4 TCP 161
    5.4.1 Transaccoes pedido-resposta 162
    5.4.2 Sockets activos e passivos 163
    5.4.3 Ciclo de vida 164
    5.4.4 A classe Socket 165
    5.4.5 A classe ServerSocket 167
    5.4.6 Exemplo de uma aplicacao 168
    5.4.6.1. O codigo completo 171
    5.4.6.2. Compilar e executar a aplicacao 174
    5.5 Conclusoes 175

    6 - CORBA
    6.1 Introducao 179
    6.2 Object Management Architecture 180
    6.2.1 Objectos da OMA 181
    6.2.2 O ORB do CORBA 182
    6.2.3 Servicos CORBA 184
    6.2.4 Evolucao do CORBA 187
    6.3 O CORBA em Execucao 189
    6.3.1 Um cenario 190
    6.3.2 Os componentes do CORBA 191
    6.3.2.1. ORB 191
    6.3.2.2. IDL 191
    6.3.2.3. STUBS 192
    6.3.2.4. SKELETONS 193
    6.3.2.5. Objecto remoto 193
    6.3.2.6. Invocacao de interface dinamica 193
    6.3.2.7. Interface de Skeleton dinamica 194
    6.3.2.8. Repositorio de interfaces 194
    6.3.2.9. Repositorio de implementacoes 195
    6.3.2.10. Adaptador de objectos 195
    6.3.2.11. Referencia de objecto interoperavel 195
    6.3.3 Interoperabilidade entre ORB 196
    6.4 Interface Definition Language 197
    6.4.1 Mapeamentos disponiveis 198
    6.4.2 Compilar o IDL 199
    6.5 O ficheiro IDL 200
    6.5.1 Modulos 200
    6.5.2 Interfaces 201
    6.5.3 Atributos 203
    6.5.4 Operacoes 203
    6.5.5 Tipos de dados 204
    6.5.5.1. Tipos basicos 205
    6.5.5.2. Tipos complexos 205
    6.5.5.3. Novos tipos 208
    6.5.6 Constantes 208
    6.5.7 Excepcoes 209
    6.6 Mapeamento IDL para Java 209
    6.6.1 Nomes 210
    6.6.2 Modulos 210
    6.6.3 Interfaces 211
    6.6.4 Atributos 212
    6.6.5 Tipos basicos e complexos 213
    6.6.5.1. Tipos complexos 213
    6.6.6 Constantes 215
    6.6.7 Excepcoes 216
    6.6.8 A classe Holder 218
    6.6.9 A classe Helper 220
    6.7 Naming Service 220
    6.7.1 Interaccao com o naming service 221
    6.7.2 Interface para o servico de nomes 222
    6.7.3 Resolucao de nomes 224
    6.7.4 Exemplo pratico 225
    6.8 A primeira aplicacao 227
    6.8.1 Definir a interface 228
    6.8.2 Compilar a definicao IDL 229
    6.8.3 Implementar a interface 230
    6.8.4 Implementar o servidor 231
    6.8.5 Implementar o cliente 233
    6.8.6 Compilar e executar a aplicacao 235
    6.8.7 O exemplo completo 236
    6.9 Uma segunda aplicacao 238
    6.10 Conclusoes 242

    7 - JAVA RMI
    7.1 Introducao 247
    7.2 CORBA versus RMI 249
    7.3 Arquitectura do Java RMI 252
    7.3.1 Camada do stub e do skeleton 253
    7.3.2 Camada de referencias remotas 256
    7.3.3 Camada de transporte 256
    7.4 Servicos Java RMI 257
    7.4.1 RMI registry 257
    7.4.2 Activacao de objectos 258
    7.4.3 Distributed Garbage Collection 259
    7.5 Java RMI API 259
    7.5.1 java.rmi 260
    7.5.1.1. Interfaces 260
    7.5.1.2. Classes 261
    7.5.1.3. Excepcoes 262
    7.5.2 java.rmi.activation 263
    7.5.3 java.rmi.dgc 264
    7.5.4 java.rmi.registry 265
    7.5.5 java.rmi.server 267
    7.6 Seguranca 268
    7.6.1 SecureClassLoader 269
    7.6.2 Security manager 270
    7.6.3 O ficheiro java.policy 272
    7.7 Implementar uma aplicacao Java RMI 273
    7.7.1 Definir a interface remota 275
    7.7.2 Implementar a interface 276
    7.7.3 Implementar o servidor 279
    7.7.4 Implementar o cliente 282
    7.7.5 Compilar as implementacoes 284
    7.7.6 Compilar a interface implementada 285
    7.7.7 Iniciar a aplicacao 286
    7.7.7.1. Iniciar o RMI registry 287
    7.7.7.2. Iniciar o servidor 288
    7.7.7.3. Iniciar o cliente 289
    7.7.8 A aplicacao completa 289
    7.8 Conclusoes 293

    8 - WEB SERVICES
    8.1 Introducao 297
    8.2 O uso de Web Services em empresas 299
    8.2.1 Um cenario 299
    8.2.2 Integracao 300
    8.3 Service-Oriented Architecture 302
    8.3.1 Definicao 303
    8.3.2 Caracteristicas 303
    8.3.3 Arquitectura conceptual 305
    8.3.4 SOA com Web Services 306
    8.4 Arquitectura dos Web Services 307
    8.4.1 Ciclo de vida 308
    8.4.2 Arquitectura 309
    8.5 Extensible Markup Language 311
    8.6 Web Service Description Language 315
    8.6.1 A especificacao do WSDL 315
    8.6.2 Elementos do WSDL 317
    8.7 Simple Object Access Protocol 324
    8.7.1 Envelope 325
    8.7.2 Header 326
    8.7.3 Body 327
    8.7.4 Universal Description, Discovery and Integration 328
    8.7.4.1. Modelo de dados 329
    8.7.4.2. Exemplo do business entity 330
    8.8 Como executar um Web Service 330
    8.8.1 Preparar o ambiente de execucao 331
    8.8.1.1. Tomcat 331
    8.8.1.2. Axis 333
    8.8.2 Implementar o primeiro Web Service 334
    8.8.2.1. Realizar um teste basico 337
    8.8.2.2. A especificacao WODL 337
    8.8.3 Desenvolver um cliente 340
    8.8.3.1. Implantar o cliente 341
    8.8.3.2. Compilar o cliente 343
    8.8.3.3. Analizar mensagens SOAP 344
    8.8.3.4. Codigo completo 347
    8.9 Conclusoes 348

    INDICE REMISSIVO

    Programação de Sistemas Distribuídos em Java
    ISBN: 9789727226016 Ano de edição ou reimpressão: Editor: FCA Idioma: Português Dimensões: 168 x 240 x 19 mm Páginas: 384 Tipo de Produto: Livro Classificação Temática: Livros  >  Livros em Português  >  Informática  >  Programação

    Sugestões

    Excel Aplicado
    10%
    portes grátis
    10% Cartão Leitor Bertrand
    24,95€
    FCA
    UML, Metodologias e Ferramentas CASE
    10%
    portes grátis
    10% Cartão Leitor Bertrand
    22,20€
    Edições Centro Atlântico
    X
    O QUE É O CHECKOUT EXPRESSO?


    O ‘Checkout Expresso’ utiliza os seus dados habituais (morada e/ou forma de envio, meio de pagamento e dados de faturação) para que a sua compra seja muito mais rápida. Assim, não tem de os indicar de cada vez que fizer uma compra. Em qualquer altura, pode atualizar estes dados na sua ‘Área de Cliente’.

    Para que lhe sobre mais tempo para as suas leituras.