
Java.rmi
The Remote Method Invocation Guide
Résumé
"This book collects an astonishing range of Java RMI material, suitable for any Java programmer regardless of experience with RMI. The RMI novice will be able to run RMI programs without excessive hair-pulling; the accomplished RMI programmer will find enough techniques and explanations to improve the performance, capability, or aesthetic quality of his or her code; and the RMI expert will be able to perform great RMI-based hacks without the JDK source code. If you're looking at this book because I directed you to it on the RMI-USERS mailing list, then, yes, you've found the right one!"
—from the foreword by Adrian Colley, RMI team, Sun Microsystems, Ireland
"Esmond is one of the long-time RMI 'gurus',
accumulating a vast and deep arsenal of practical knowledge
in RMI uses, internals, tricks and techniques. I am amazed
he has packed so much in just under 300 pages. An effective
RMI or Jini developer should absolutely have this reference
in his collection."
—Brian Maso; consultant, DevelopMentor instructor,
and Java Pro at Devx.com"
The definitive guide to remote method invocation in Java.
This book provides an in-depth resource to all features of RMI, building a firm, logical foundation for understanding and applying the RMI technology. It contains detailed information about how to apply RMI to get professional developers and students alike "up and running", while clarifying and extending the official information found in the specification. The authors address many of the real-world issues and unexpected features that you will encounter whilst working with the technology.
All you need to know about:
- understanding RMIin the context of Java and object-oriented programming
- using RMI to create applications in networked environments ranging from LANs to the Internet
- mastering serialization, remote interfaces, clients, the RMI registry, servers, security, and mobile code
- applying advanced concepts e.g. activation, socket factories, Internet firewalls, distributed garbage collection, and design patterns
- working with alternatives or extensions to the standard RMI implementation e.g., JNDI naming services and CORBA IIOP.
Features:
- Complete RMI Alamanac lift-out
- Accompanying website
- Extensive code samples and exercises
Table of Contents
Foreword | xxv | |
Preface | xxvii | |
About this book | xxvii | |
Colophon | xxix | |
Acknowledgements | xxx | |
1 | Introduction to RMI | 3 |
1.1 | In this chapter | 3 |
1.2 | Java and RMI | 3 |
1.3 | Architecture of RMI systems | 4 |
1.4 | Syntax of RMI | 5 |
1.5 | First principles--remote method invocation | 6 |
1.6 | Baby's first words | 8 |
1.7 | Exercises | 11 |
2 | Characteristics of RMI | 13 |
2.1 | In this chapter | 13 |
2.2 | Syntax | 13 |
2.3 | Semantics | 14 |
2.4 | Semantics of local method invocation | 18 |
2.5 | Semantics of remote method invocation | 18 |
2.6 | Summary | 20 |
2.7 | Exercises | 20 |
3 | Serialization | 21 |
3.1 | In this chapter | 21 |
3.2 | Introduction | 21 |
3.3 | Essentials | 22 |
3.4 | Serialization in depth | 22 |
3.5 | The serialization process | 25 |
3.6 | The Serializable interface | 27 |
3.7 | The Externalizable interface | 30 |
3.8 | MarshalledObject | 31 |
3.9 | Class versioning | 32 |
3.10 | Serial Version UID | 35 |
3.11 | Alternative approaches to versioning | 39 |
3.12 | Advanced facilities in Serialization | 41 |
3.13 | javadoc and serialization | 43 |
3.14 | Improving the performance of Serialization | 44 |
3.15 | Exercises | 44 |
4 | Remote interfaces | 45 |
4.1 | In this chapter | 45 |
4.2 | Introduction | 45 |
4.3 | Proxies | 46 |
4.4 | Dispatchers | 47 |
4.5 | Exercises | 47 |
5 | RMI clients | 49 |
5.1 | In this chapter | 49 |
5.2 | Introduction | 49 |
5.3 | Remote failure | 50 |
5.4 | Partial failure | 50 |
5.5 | Latency | 51 |
5.6 | Applets | 51 |
5.7 | Exercises | 52 |
6 | Naming I--RMI registry | 53 |
6.1 | In this chapter | 53 |
6.2 | Purpose | 53 |
6.3 | How it works | 53 |
6.4 | Names in the registry | 55 |
6.5 | The Naming class | 56 |
6.6 | The Registry interface | 57 |
6.7 | Registry exceptions | 57 |
6.8 | Names and URLS | 58 |
6.9 | Registry setup | 59 |
6.10 | Registry configurations | 60 |
6.11 | Utilities | 61 |
6.12 | Alternative naming services | 63 |
6.13 | Exercises | 64 |
7 | Servers I--unicast servers | 65 |
7.1 | In this chapter | 65 |
7.2 | Introduction | 65 |
7.3 | Writing the server | 66 |
7.4 | Implementing remote interface methods | 70 |
7.5 | Threads, sockets, and ports | 72 |
7.6 | The Unreferenced interface | 75 |
7.7 | Building the server | 77 |
7.8 | Foundation classes | 79 |
7.9 | Serialization | 81 |
7.10 | Alternative server classes | 82 |
7.11 | Exercises | 83 |
8 | Security I--execution | 85 |
8.1 | In this chapter | 85 |
8.2 | Introduction | 85 |
8.3 | RMI and security managers | 86 |
8.4 | Applets | 86 |
8.5 | Clients | 87 |
8.6 | Servers | 87 |
8.7 | System properties--security | 87 |
8.8 | Policy files | 88 |
8.9 | Granting AllPermission | 94 |
9 | Mobile code | 95 |
9.1 | In this chapter | 95 |
9.2 | Outline | 95 |
9.3 | How code mobility works | 96 |
9.4 | Uses of code mobility | 97 |
9.5 | Security considerations | 99 |
9.6 | Setup | 100 |
9.7 | HTTP servers | 103 |
9.8 | Other protocols | 105 |
9.9 | Deployment | 107 |
9.10 | Downloading the client | 108 |
10 | Servers II--activation | 113 |
10.1 | In this chapter | 113 |
10.2 | Introduction | 113 |
10.3 | First principles--activation | 114 |
10.4 | How it works | 115 |
10.5 | Writing an activatable server | 117 |
10.6 | Registration | 119 |
10.7 | Building an activatable server | 123 |
10.8 | Run-time setup | 123 |
10.9 | Activation and the Unreferenced interface | 125 |
10.10 | Which servers should be activatable | 127 |
10.11 | The activation system as an RMI registry | 127 |
10.12 | Debugging | 128 |
10.13 | Activation groups in Win32 | 129 |
10.14 | Activation clients | 129 |
10.15 | Remarks on the Activation Package | 131 |
10.16 | Exercises | 134 |
11 | Socket factories | 135 |
11.1 | In this chapter | 135 |
11.2 | Purpose | 135 |
11.3 | Server socket factories | 136 |
11.4 | Client socket factories | 136 |
11.5 | Factory equality--the equals method | 137 |
11.6 | Uses of socket factories | 139 |
11.7 | Remarks | 142 |
12 | Agents and patterns | 143 |
12.1 | In this chapter | 143 |
12.2 | Introduction | 143 |
12.3 | Mobile agents | 144 |
12.4 | Callbacks | 145 |
12.5 | Mobile servers | 147 |
12.6 | Agents and design patterns | 148 |
12.7 | Adapter | 148 |
12.8 | Proxy | 152 |
12.9 | Client-server patterns | 159 |
12.10 | Singleton | 160 |
12.11 | Remote factory | 161 |
12.12 | Abstract remote | 162 |
12.13 | Session | 164 |
12.14 | Exercises | 166 |
12.15 | Remarks on the examples and exercises | 167 |
13 | Naming II--JNDI and Jini | 169 |
13.1 | In this chapter | 169 |
13.2 | JNDI | 169 |
13.3 | JNDI operations | 170 |
13.4 | JNDI providers | 171 |
13.5 | Examples | 174 |
13.6 | Other features and setup | 175 |
13.7 | Other JNDI service providers | 176 |
13.8 | Jini naming | 176 |
13.9 | Exercises | 177 |
14 | Servers III--RMI/IIOP | 179 |
14.1 | In this chapter | 179 |
14.2 | Introduction | 179 |
14.3 | RMI/IIOP and CORBA | 180 |
14.4 | RMI/IIOP and Enterprise Java Beans | 180 |
14.5 | PortableRemoteObject | 180 |
14.6 | Writing the server | 181 |
14.7 | Building the server | 182 |
14.8 | Java/IDL tool | 182 |
14.9 | Supporting both JRMP and IIOP | 183 |
14.10 | Restrictions | 183 |
14.11 | Implementing the service in another language | 186 |
14.12 | IIOP clients | 186 |
14.13 | Implementing the client in another language | 187 |
14.14 | Exercises | 188 |
15 | RMI through firewalls | 189 |
15.1 | In this chapter | 189 |
15.2 | Firewalls | 189 |
15.3 | Socks | 192 |
15.4 | HTTP tunnelling | 193 |
15.5 | Firewalls and RMI | 194 |
15.6 | GIOP Proxies | 199 |
15.7 | The RMI Proxy | 200 |
15.8 | A note on callbacks | 202 |
15.9 | A note on firewall implementations and RMI | 202 |
16 | Security II--the conversation | 205 |
16.1 | In this chapter | 205 |
16.2 | Identity | 205 |
16.3 | Integrity | 206 |
16.4 | Privacy | 207 |
16.5 | Secure Sockets Layer | 209 |
16.6 | LDAP authentication | 210 |
16.7 | Jaas | 210 |
16.8 | RMI Security Extension | 211 |
16.9 | Exercises | 214 |
17 | Servers IV--beyond unicast | 215 |
17.1 | In this chapter | 215 |
17.2 | Datagrams | 215 |
17.3 | Multicast | 219 |
17.4 | Broadcast | 222 |
17.5 | Clients | 223 |
17.6 | Exercises | 223 |
18 | Selected further topics | 225 |
18.1 | In this chapter | 225 |
18.2 | Distributed garbage collection | 225 |
18.3 | Logging | 227 |
18.4 | Debugging | 228 |
18.5 | Testing RMI in a single machine | 230 |
18.6 | Performance | 230 |
18.7 | RMI and JDK versions | 237 |
18.8 | Exercises | 239 |
Appendix A | Exceptions in RMI | 241 |
A.1 | Class hierarchy | 241 |
A.2 | Exceptions in RMI servers | 241 |
A.3 | Exceptions in RMI clients | 242 |
A.4 | Alphabetic list of exceptions | 243 |
A.5 | Remarks on exceptions in RMI | 255 |
Appendix B | System properties | 257 |
B.1 | RMI system properties | 257 |
B.2 | Implementation-dependent system properties | 260 |
Appendix C | References | 265 |
C.1 | Books | 265 |
C.2 | Papers | 266 |
C.3 | Web resources | 267 |
Appendix D | Glossary | 269 |
Index | 271 |
Caractéristiques techniques
PAPIER | |
Éditeur(s) | Addison Wesley |
Auteur(s) | Esmond Pitt, Kathleen McNiff |
Parution | 01/05/2001 |
Nb. de pages | 320 |
Couverture | Broché |
Intérieur | Noir et Blanc |
EAN13 | 9780201700435 |
Avantages Eyrolles.com
Consultez aussi
- Les meilleures ventes en Graphisme & Photo
- Les meilleures ventes en Informatique
- Les meilleures ventes en Construction
- Les meilleures ventes en Entreprise & Droit
- Les meilleures ventes en Sciences
- Les meilleures ventes en Littérature
- Les meilleures ventes en Arts & Loisirs
- Les meilleures ventes en Vie pratique
- Les meilleures ventes en Voyage et Tourisme
- Les meilleures ventes en BD et Jeunesse