Manning Logo
Home | Ordering Info | Shopping Cart | Manage My Account | Login
Attention customers: online shopping is now available exclusively through our main website: http://www.manning.com. Thank you.
Distributed Programming with Java

Inside the book

Sample Chapters Table of Contents Errata Index Preface Source Code Author Online

Manning Blog

Why small is sweet?

Author Blogs

Dave Crane more...

Author Calendar

Upcoming Events

Catalog

Java .NET Perl XML All by Subject All by Title

About...

Manning Contact Us Ordering FAQs ebooks Covers Sandbox Forums Distributors Manning Early Access Program (MEAP) Affiliate Program Academia/Publicity User Group Program Press Releases Jobs

Manning Publications Co.
209 Bruce Park Avenue
Greenwich, CT 06830

Distributed Programming with Java
Qusay H. Mahmoud

1999 | 320 pages
ISBN: 1884777651
$39.95 Softbound print book  

Index

    A

      Abstract Syntax Notation-1 (ASN.1) 4
      Abstract Window Toolkit (AWT) 130
      accept() 21
      access control 78, 134
      AccessFacet 259
      accessor 176
      Account 198, 214
      Action 14, 262
      Activatable 144, 145
      Activation 108, 143, 244, 275
            enable() 275
            register() 275
      activation
            descriptor 144, 146
            group 143
            modes 208
            protocol 143
            writing an activator 275
      ActivationDesc 144
      ActivationException 146, 276
      ActivationID 145
      activator 143, 275
      active 143
      Add 166
      add_arrays() 175
      addArrays() 249, 266, 268
      addAt() 268
      Adder 267
      AddFacet 259
      AddImpl 167
      address space 160
      agents 240
      aggregate 255, 256
      Aglet Workbench 240
      any type 177
      Applet 42, 91
            applet 12, 87, 99, 239, 240
            AppletSecurityManager 271
      application layer 4
      Arith 114, 227, 249, 266, 281
      Arith.AddPackage.Outarray 286
      Arith.idl 165, 284
      Arith.IOR 282
      Arith2 251
      ArithApp 117
      ArithClient 77, 229, 249
      ArithClient2 252
      ArithImpl 115
      ArithImpl_Skel 119
      ArithImpl_Stub 119
      ArithImplBase 228
      ArithServer 75, 228
      ArrayIO 47
      ArrayMath 48
      Arrays vs. sequences 178
      asynchronous 244
            messages 273
      atMachine() 268
      attribute 175
            declaration 176
            authentication 78, 110, 239
            autonomous 265, 236

    B

      Baltimore Technologies 143
      bandwidth 237, 238
      Bank.idl 198
      BankAccount 176
      Basic Object Adapter (BOA) 159, 167, 207-209
            obj_is_ready() 202
            _init() 208
      Berkeley Unix 16
      binary compatibility 111, 147
      binding 120, 158, 203
            bind() 202
            names 250
      BindOptions 204
      Boolean 273
      boolean type 177
      bounded sequences 178
      broadcast 7
      broker 8, 100
      BufferedReader 20, 35
      BufferedWriter 20
      Byte 273
      Bytecodes 108
      ByteHolder 184, 185

    C

      C 156
      C++ 156
      Caffeine 225
      Callbacks 107, 130-133, 160, 263, 265
      CallCity 131
      CallCity2App 133
      CallCity2Impl 133
      CallCityApp 132
      CallCityImpl 132
      cgen 283, 285, 287
      Common Gateway Interface (CGI) 86-88, 99
      char type 177, 273
      CharHolder 185
      CheckingAccount 214
      City interface 124
      City2 interface 127
      City2App 129
      City2Impl 127
      CityApp 125
      CityFactory 127
      CityFactoryImpl 128
      CityImpl 124
      Class A addresses 6
      Class B addresses 6
      Class C addresses 6
      class loader 87, 90, 148
      Class.forName() 63
      CLASSPATH 90, 272, 279, 283
      Client class 80, 169, 201, 282
      client-server model 7
      CodeSource 144
      Common Object Request Broker Architecture (CORBA) 106, 153, 156, 157, 227, 244, 279
            2.0 157
            3.0 159
            architecture 154
            facilities 157
            IIOP 241
            interfaces 170
            messaging 159, 160
            objects 154, 227
            services 157
            system exceptions 192
            Voyager integration 283
      Common Object Specification (COSS) 158
            COSS 1 158
            COSS 2 158
      communication channels 16, 78
      Complex IDL types 195
      compress 231, 240
      CompressionSocket 140
      Compute interface 91
      ComputeClient 99
      ComputeEngine 96
      computing resources 87
      concurrent 40
      Connect class 54, 57, 60, 97
      Connection class 49
      Connection refused 27
      console 246
            EXCEPTIONS 246
            SILENT 246
            VERBOSE 246
      constant 179, 187
            declaration 179
      constructed types 177
      constructor 116
      cooperation 236
      coordination 11
      CORBA vs. RMI 170
      Corba.asIOR() 280
      CORBA.Object.214
            string_to_object() 221
      CorbaSystemException 280
      Core Object Model 153
      CreateServerSocket() 140, 141
      createSocket() 140, 141
      Cryptography 78
      Customer class 257

    D


      daemon 144
      Danny Lang 240
      DATA 34
      data stream 20
      Datagram communication 18
      DatagramPacket 23
      DatagramSocket 19, 23
      DataInputStream 20
      DataOutputStream 20, 35
      DBMS 61
      DCOM 240, 241
      deactivation 157
      deadlock 105
      defer_bind() 204
      delegation 214
      digital signatures 78, 134, 239
      digitally signed messages 78
      DII request 221
      discriminated unions 177
      dispatcher 108
      distributed
            computing 7
            debuggers 222
            programming 7, 236
      Domain Name System (DNS) 5, 29
      DriverManager 61-63
      DSigital Signaturer Algorithm (DSA) 78, 81
      dynamic aggregation 244, 255
      dynamic code loading 89
      Dynamic invocation interface (DII) 154, 156, 160, 219, 220
      dynamic server 126
      Dynamic skeleton interface (DSI) 157, 222

    E

      eavesdroppers 78
      echo 38
      efficiency 10, 238
      electronic commerce 158, 238
      email 10, 34
      Employee class 64, 70
      enable_rebind() 204
      encryption 110, 140
      enumeration 177-179
      event service 157
      exception 179, 246
            declaration 179
            handling 114
      executeQuery 63
      executeUpdate 63
      exportObject 144
      extends 54, 114
      extensible structs 231
      eXternal Data Representation (XDR) 4
      Externalizable 72

    F

      Facets 255-257, 259
      factory 126, 129
      Factory.create() 247
      fault tolerance 10, 86, 169, 238
      faulting reference 143
      file descriptors 16
      File Transfer Protocol (FTP) 4
      FileInputStream 20, 70
      FileOutputStream 20
      FileReader 20
      file-upload 87
      FileWriter 20
      FilterInputStream 20
      FilterOutputStream 20, 70
      finger 33, 36
      firewall 58
      FloatHolder 185
      floating-point type 176
      fooHelper 184
      fooHolder 184
      foreign objects 272
      forms 86
      function pointer 130
      future messages 273
      Future.invoke 273

    G

      garbage collector 170
            automated 12, 93
            distributed 106-107, 109, 244
      General Magic 240
      getAddress() 28, 29
      getAllPackage() 147
      getClassLoader() 148
      getDate() 276
      getFacets() 257
      getFloat() 64
      getHome() 265
      getImplementationTitle() 147
      getImplementationVendor() 147
      getImplementation Version() 147
      getInputStream() 20, 140
      GetIP 29
      getLapCount() 276
      getLocalHost() 28
      getLocalPort() 23
      getMemento() 275
      getName() 28, 147, 148
      getOutputStream() 20, 140
      getPackage() 147
      getPrimary() 257
      getPriority() 44
      getSpecificationTitle() 147
      getSpecificationVendor() 147
      getSpecificationVersion() 147
      global compute engine 85-87
      global name space 176
      goals of RMI 107
      greetings server 24, 46
      GUI 98, 130, 224

    H

      hashCode 148
      HEAD 54
      health care 158
      heap 40
      Hello 262
      Hello2 264
      HELO 34
      helper 193, 279
      high performance 7
      holder 185, 190
            classes 184
      Horizontal CORBAfacilities 157
      hostnames 5
      HotJava 143
      HTML 54, 86, 87, 198, 199
      HTTP 53, 54, 56
            Content-Length 56
            Content-Type 56
            GET 54
            POST 54
      httpd class 54, 56
      httpd server 57

    I

      IActivator 275
      IAdder 266
      IArith 248, 266, 280, 287
      ICMP error codes 38
      ICustomer 257
      identifier 174
      IDL 165, 226, 285
            array 192
            boolean 187
            char 187
            definition 173
            interface 175, 193
            mapping 154, 156
            module 184
            names 183
            octet 187
            repository 279
            string 187
            struct 230, 231
            union 190
            wchar 187
      IDL/IIOP 230
      IDL/Java translation 279
      idl2ir 224
      idl2java 165, 183, 198, 199, 221, 287
      IHello 261
      IIOP 226, 230, 240, 279, 280
      IllegalArgumentException 44
      Imaginary 61
      IMobile 263
      IMobility 260
      impl_is_ready()
      impl_rep 211
      implementation activation 157
      Implementation Repository 210
      implementing callbacks 130
      implementing factories 126
      incompatibility 88
      InetAddress class 23, 28
      information management 157
      inheritance 256
      initialize() 81
      initSign() 81
      initVerify() 84
      inout 165, 170, 180, 184, 194, 221
      Inprise Corporation 155, 163
      InputObjectStream 75
      InputStream 20
      integer type 177
      interactive software development 222
      interface 8, 42, 130, 154, 175
      Interface Definition Language (IDL) 11, 154, 156
      Interface repository (IR) 154, 157, 223
            creating an IR 224
            irep 224
      International Standard Organization (ISO) 4
      Internet addresses 6
      Internet Inter-ORB Protocol, (IIOP) 155
      Internet packets 4
      Internet Protocol (IP) 4, 5
      Interoperable Object References (IORs) 280
      interpretation 157, 239
      interpreters 10, 222
      Inter-process Communication (IPC) 8, 15, 16
      InterruptedException 41
      IntHolder 184
      IOException 23
      IONA Technologies 155, 164
      IPayment 258
      IPtoName 30
      isAutonomous 265
      isCompatibleWith 147

    J

      J/SSL 143
      Java 2 13
      Java Archive (JAR) 13, 148-149
      Java
            bytecode interpreter 93
            compiler 12, 93
            interpreter? security
            manager 94
            package 147
            Secure Socket Layer
            Protocol 143
            security 12
            virtual machine 10, 70, 5, 106, 107
            WebServer 143
      java2idl 226
      java2iiop 225, 226, 230
      JavaIDL 155, 164
      JavaPC 11
      JavaServer Toolkit 143
      JavaSoft 143, 155, 164
      JavaSpaces 11
      javax.net.ssl 143
      JCP Computer Services 143
      JDBC 53, 60, 61, 65
            API 61
            DriverManager 61
            Security Model 61
      JDK1.0 12
      JDK1.1 13
      Jeevan 65
      Jini 11
      JoinGroup() 24

    K

      key management 78, 134
      keyboard 41, 237
      KeyGenerator 78
      KeyPairGenerator 78, 81
      Keywords 181

    L

      LAN 4, 5
      language mapping 157
      lap() 276
      learning 236
      leaveGroup() 24
      Linda 11
      Lisp 156
      live reference 108
      loadNet 92
      local vs. remote object location 204
      localHost() 36
      long 177, 188, 273
      LongHolder 185
      lookup 117, 120, 158
      M
      Manager 200, 202, 214
      ManagerHelper 203
      ManagerImpl 199, 202, 216
      marshaling 108, 230, 249
      MarshaledObject 145
      MathObj 75
      MAX_PRIORITY 44
      measurement statistics 276
      megacomputer 86
      message digests 78, 134
      method invocation 157
      MIN_PRIORITY 44
      Mobile Agents 236, 260, 264
            Applications 23
            mobility 236, 244, 260
            working with 265
      Mobility.of 260
      Mouse 237
      moveTo() 260, 265
      mSQL 60, 62, 65
            database server 60
            JDBC driver 61
      MsqlException 60
      MsqlJava 60
      MsqlResult 60
      multicast 107
            backbone (MBONE) 24
            group 24
            sockets 19, 23
      MulticastSocket 23
      Multiple failure modes 10
      multiple transports 107
      multithreaded server 97
      Multiuser applications 10
      MyAgent 268
      MySSLSocketFactory 142

    N

      Namespace 282
      Namespace.bind() 250, 280
      Namespace.lookup 286
      naming objects 202
      naming service 157, 250, 251
      narrow 205
      native objects 272
      NetClassLoader 90, 91
      Netscape 54
      network 4
            layer 5
            management 238
            mobility 12
            traffic 237, 260
            protocols 4
      Network Information Center (NIC) 6
      nice thread 45
      NO_IMPLEMENT 210
      Non-blocking operations 180
      non-printable 174
      NORM_PRIORITY 44
      NoSuchGroupException 146
      NovaBank 202
      NsLookup 29
      null 184, 208, 245

    O

      oadutil 210
      obj_is_ready 209
      Object 241, 273
      Object Activation Daemon (OAD) 208, 210
      Object Adapters (OA) 154, 157
            authority 272
            concurrency 158
            events 158
            externalization 158
            ID 159, 160
            implementation 155
            key 159
            naming 158
            persistence 70
            reference 157, 159, 160, 208
            relationships 158
            security 158
            serialization 65, 69, 108, 122, 134, 261, 268
            services 157
            transactions 158
      Object Lifecycle 158
      Object Management Architecture (OMA) 147, 153, 154
      Object Management Group (OMG) 11, 153, 160
      Object Request Broker (ORB) 154
      object_to_string 209
      object-based model 7
      ObjectInputStream 70
      ObjectNotFoundException 275
      ObjectOutput 73
      ObjectOutputStream 70
      objects by value 159, 160, 226
      objects over sockets 74, 122
      ObjectSpace 243
      ObjectStore PSE 65
      octet 177
      Odyssey 240
      oneway 160, 180
            messages 273
      Open Systems Interconnection (OSI) 4
      operating systems 40
      operations declaration 180
      ORBIX 155
      OrbixWeb 164
      osagent 169, 201, 202, 209, 229
      OSAGENT_ADDR 170
      OSI reference model 110
      OurHttpSecurityManager 58
      OutputStream 20
      overhead 74, 122

    P

      Package versioning 147
      parallel computing 7
      Parameter declaration 180
      passive 143
      password 72
      patent 240
      peer-to-peer model 8
      performance 86, 244
      Perl 239
      persistent 208
            object 158
            object references 209
            references 108, 143
            resource 29
            storage 64, 65
      Phaos Technologies 143
      ping 33, 38, 39
      pipe 16
      policy file 13
      Polling 160
      polymorphic 244, 256
      port number 17, 21
            port 1099 11
            port 25 3
            port 7 3
            port 79 3
            port 80 54
      portability 239
      Portable Object Adapter (POA) 159, 161
      postArrival 263
      postDeparture 263
      preArrival 263
      preDeparture 263
      preprocessing 181
            directives 174, 181
      presentation layer 4
      primary object 255, 256, 259
      Principal 230
      printStackTrace 49
      priority 44
      PrivateKey 81
      private-key cryptosystems 78
      proactivity 236
      process migration 237
      productivity 244
      protection 78, 239
            domains 14
      protocol 4, 8, 105, 122, 241
            connectionless 18
            connection-oriented 18
      proxy 59, 119, 247, 250, 259, 279, 280
            servers 58
      public key 79, 134
      public-key cryptosystems 78
      publish/subscribe 273
      Python 156, 239

    Q

      Query 60
      QUIT 34

    R

      raises expressions 180
      random number generator 81
      RDBMS 62
      reactivity 236
      readArray() 51
      readLine() 26
      readObject() 70, 75
      readonly 176
      rebind() 117, 120, 121
      reference-counting 109
      Reflection 241
            API 90
      registry 119, 130
      reliability 12, 238
      Remote Method Invocation (RMI) 11, 106, 113, 124, 142, 143, 156, 165, 170, 226, 227, 240, 241, 248
            garbage collector 109
            registry 110, 113, 115, 117, 120
            specification 107
      Remote Procedure Call (RPC) 8, 9, 106, 236
      remote programming 236
      remote reference 107, 109
      RemoteException 114, 124, 145, 146
      RemoteStub 146
      replication 108, 273
      repository identifier 223
      Request For Proposals (RFPs) 158
      resolveIt 90
      resource manager 7
      resource sharing 10
      responsiveness 41
      ResultSet 63
      resume() 44
      RFC 1288 36
      RFC 822/823 34
      rlogin 19
      rmi compiler 106, 108, 109, 118, 126
      RMI vs. sockets 122
      rmiregistry 120, 126
      RMISecurityManager 115, 116, 125
      RMISocketFactory 139-141
      root 17, 38
      routing 6, 29
      RSA 86, 143
      run() 42, 49, 54, 91
      Runnable interface 42, 43, 82
      RunnerSecurityManager 95

    S

      sandbox 12, 13, 89, 241
      scalability 71
      scheduling 87
      search engines 100
      SecureRandom 81
      SecurityManager class 12, 14, 57, 87
            checkAccept() 95
            checkAccess() 58
            checkConnect() 58, 95
            checkCreateClassLoader() 95
            checkDelete() 95
            checkExec() 95
            checkExit() 95
            checkListen() 95
            checkPropertyAccess() 95
            checkread() 58
            checkWrite() 58
            custom security manager 93
      security 10, 38, 57, 87, 110, 134, 239, 244
            and mobile agents 239
            and object serialization 72
            of interactions 157
            policy 93
            risks 89
            vulnerability 93
      seed 81
      selfish thread 45
      Sendmail 34
      sequence 178, 191, 287
      Serializable interface 69, 70, 72, 75, 79, 116, 135, 249, 262, 268
      serialization 231, 241
            control 72
            versioning 73
      serialVersionUID 73
      servant 159, 160
      server-per-method mode 208
      ServerSocket 21, 57, 97, 140
      Service Location Protocol 87
      session layer 5
      setAutonomous() 265, 268
      setPriority() 44
      setSocketFactory 141
      setuid 38
      shared server mode 208
      shipDocument 56
      short 177, 188, 273
      ShortHolder 184
      signature 78, 81, 134
      signed 177
            applet 13
            code 13
            object 134
      signedBy 14
      SignedInterface 135
      SignedObject 79, 135
      Signing objects over sockets 134
      Simple Mail Transfer Protocol (SMTP) 4, 33-35
      skeletons/stubs 108, 109, 111, 118, 126, 226
      Smalltalk 156
      Smart Agent 165, 169
            See also osagent
      Snapshot.from 276
      Snapshot.getObject 276
      Snapshot.of 276
      SOCK_DGRAM 17, 38
      SOCK_RAW 17, 38
      SOCK_STREAM 17, 38
      Socket 8, 11, 15, 16, 19, 20, 35, 57, 97, 105, 140, 165, 170, 227, 248
            closing 22
            opening 21
      SocketType 140, 141
      software agent 235
      Space 273
      spying 84
      SQL 61, 63
      SSL 139, 244
      SSLava Toolkit 143
      SSLTPool 208
      SSLTSession 208
      stack 40
      Statement 63
      static 90, 156
      stop() 44
      Stopwatch 269, 276
      Streams
            creating an input stream 21
            creating an output stream 22
      string 135, 176, 178
      struct 177, 179, 189, 190
      stub code 221
      stub/skeleton layer 107, 108
      subname 62
      subprotocol 62
      superuser 17
      suspend() 44
      synchronize 45, 46, 134
      synchronous 160, 244, 273
            messages 273
      System.getProperties() 149
      System.setSecurityManager() 96
      Systems management, 157

    T

      Tampering 239
      task management 157
      TCl 239
      TCP 6, 11, 17, 19, 38, 97, 107
            Sockets 20
      Ted Lewis 86
      telecommunications 158
      teleconferencing 7
      Telescript 240
      Telnet 4, 19, 34
      Template types 178
      Thread 42-44, 49, 54
      threads 33, 40-42
            benefits of 41
            control 44
            creating and starting 41
            priority 44
            programming 46
            putting a thread to sleep 44
            what is a thread? 40
      throughput 41, 260
      tie mechanism 214
      Tim Berners-Lee 85
      time intervals 269
      timer 276
      touch screen 237
      Tpool 208
      transient 72, 208
      transparent 10, 263
            invocations 106
      transport layer 5, 107, 108
      TSession 208
      TypeCode 230
      typedef 175, 179, 195
            declaration 179

    U

      UDP 11, 19, 38, 107
            sockets 23
      UDP vs. TCP 18
      unbind() 120, 158
      unbounded sequences 178
      unicast 107, 108
      UnicastRemoteInterface 126
      UnicastRemoteObject 116, 142
      Uniform Resource Locator (URL) 87
            based registry 117
            naming 203
      union 177, 179, 189
      UnknownHostException 35
      unmarshaling 108, 249
      unshared server mode 208
      unsigned 177, 188
            long 180
            short 188
      User Interface 157

    V

      valuetype 160
      vbj 170
      Vector class 129, 134
      verification 83
      version control 111, 146
      Vertical CORBAfacilities 157
      viruses 239
      VisiBroker 11, 155, 163, 207, 229, 284
      VisiClient 288
      VisiServer 284
      Voyager ORB 3.0 240, 243, 244, 246
      Voyager CORBA integration 283
      Voyager.shutdown() 246
      Voyager.startup() 245, 279
      VoyagerSecurityManager 271, 272
      VoyClient 286

    W

      WAN 4, 5
      World Wide Web (Web)
            browsers 54
            naming 226
            global computing 85
      World Wide Web Consortium 85
      writeArray() 48, 49
      writeBytes 35
      writeExternal 73
      writeObject 70
      writeUTF 281

    X

      X.25 5

    Y

      yield() 45

      DESCRIPTION

      Maybe you've seen some books on Java RMI, others on Java and CORBA and still others on mobile agents. Finally, here's one book that covers ALL the popular approaches for developing distributed applications. What's more, the author makes it easy to compare them by using the same set of examples throughout the book.

      If you're a developer or systems architect who wants to start building industrial-strength distributed applications in Java, then Distributed Programming with Java is for you!

      Inside, you'll find:

      • An overview of internetworking (TCP/IP, UDP/IP)
      • A comprehensive tutorial on distributed programming
      • How to implement real-world protocols such as SMTP and HTTP
      • RMI in detail; writing factories and implementing callbacks
      • How to use Java security APIs to sign objects over sockets
      • Using Voyager to write mobile agent applications
      • How to use caffeine to develop CORBA/Java applications without IDL

      WHAT THE EXPERTS SAY ABOUT THIS BOOK...

      "The coverage is reasonable and fairly extensive…If you're looking for a high-level overview of distributed programming, this book is a reasonable investment. There's a lot of good material in these pages."
      --Claude Duguay, DevX.com

      "If you are new to distributed application development, the book offers a nice start into the area, with a good introduction to Mobile Agents and Voyager not frequently described anywhere."
      --John Zukowski, About.com

      WHAT THE READERS SAY ABOUT THIS BOOK...

      "There really wasn't one perfect source online or elsewhere for all of distributed programming with Java until this book came along."
      --Ceri Moran, IT Director, N-ARY, Ltd.

      "It's a GOOD book; I have learned a great deal from it and I recommend it to colleagues."
      --Michael Katchabaw, Sessional Lecturer, University of Western Ontario

      "Very informative on mobile agents and Voyager ... I recommend it as a starter book on this topic."
      --Bruce Arbuckle, IT Consultant, Hewlett-Packard Company

      ABOUT THE AUTHOR...

      An experienced Java specialist, Qusay H. Mahmoud has written dozens of technical articles for JavaWorld, Java Developer's Journal, Visual J+ + Informant and others. He also served as a judge for JavaWorld Editors' Choice Awards '97 and '98.

Home | Catalog | Privacy Policy | About Manning

© 2003-2006 Manning Publications Co.