26 JBuilder RMI Java Remote Method Invocation R M I J a v a - - J a v a J a v J a v a J a v a J a v a R M I R M I ( m a r s h a l ) ( u n m a r c h a l ) C a ff e i n e J a v a j a v a 2 i i o p J a v a j a v a 2 i i o p J a v a I I O P j a v a 2 i i o p J a v a VisiBroker for Java 27 J a v a C O R B A VisiBroker for Java VisiBroker for Java Programmer's Guide ( JBuilder Help ) J B u i l d e r \ s a m p l e s \ c o m \ b o r l a n d \ s a m p l e s \ r m i H T M L J B u i l d e r \ s a m p l e s \ c o m \ b o r l a n d \ s a m p l e s \ d x \ d a t a s e t d a t a R M I D a t a S e t D a t a D a t a S e t D a t a R M I P r o v i d e r R e s o l v e r g r i d J B u i l d e r \ s a m p l e s \ c o m \ b o r l a n d \ s a m p l e s \ d x \ n Ti e r data modeler application generator R M I n - J a v a R M I Hello Wo r l d
2 8 7 2 6 J B u i l d e r R M I J a v a R M I J a v a R M I h t t p : / / j a v a. s u n. c o m / p r o d u c t s / j d k / r m i / i n d e x. h t m l Hello Wo r l d a p p l e t a p p l e t Hello Wo r l d a p p l e t Hello Wo r l d H T M L J a v a H T M L R M I a p p l e t h t t p : / / j a v a. s u n. c o m / p r o d u c t s / j d k / 1. 2 / d o c s / g u i d e / r m i / g e t s t a r t. d o c. h t m l J B u i l d e r J a v a H e l l o. j a v J a v a H e l l o I m p l. j a v a e x a m p l e s. h e l l o. H e l l o J a v a a p p l e t H e l l o A p p l e t. j a v a s a yhe l l o We b H T M L e x a m p l e s. h e l l o. H e l l o A p p l e t. h t m l a p p l e t examples.hello.helloimpl 26.1 Java HTML J a v a fully-qualified package name J a v a J a v a J a v e x a m p l e s. h e l l o $ H O M E / m y p r o j e c t s / e x a m p l e s / h e l l o $ H O M E J B u i l d e r c :/ j b u i l d e r / m y p r o j e c t s / e x a m p l e s / h e l l o J B u i l d e r 1) J B u i l d e r File Close 2) J B u i l d e r File New Project u n t i t l e d x \ u n t i t l e d x. j p r e x a m p l e s \ h e l l o \ H e l l o. j p r F i n i s h
288 26.1.1 Java J a v a j a v a. r m i. R e m o t e t h r o w s j a v a. r m i. R e m o t e E x c e p t i o n R e m o t e E x c e p t i o n H e l l o H e l l o I m p l e x a m p l e s. h e l l o. H e l l o 1) J B u i l d e r File Open File Name H e l l o. j a v a 2) Add To Project 3) O p e n Ye s H e l l o. j a v a So u r c e 4) S o u r c e s a y H e l l o j a v a. r m i. R e m o t e E x c e p t i o n A Note on Distributed Computing h t t p :// w w w. s u n l a b s. c o m / t e c h r e p / 1994 / a b s t r a c t - 29. h t m l 26.1.2
2 8 9 2 6 J B u i l d e r R M I J a v a m a i n RMI Registry( ) m a i n m a i n e x a m p l e s. h e l l o. H e l l o I m p l R M I b o o t s t r a p H e l l o I m p l. j a v a Hello Wo r l d H e l l o I m p l. j a v a 1) File Open File Name H e l l o I m p l. j a v a 2) Add To Project 3) O p e n Ye s H e l l o I m p l. j a v a S o u r c e 4) S o u r c e
290 1. J a v a p u b l i c ( a b s t r a c t ) a b s t r a c t ( a b s t r a c t ) e x a m p l e s. h e l l o. H e l l o I m p l H e l l o I m p l j a v a. r m i. s e r v e r. U n i c a s t R e m o t e O b j e c t U n i c a s t R e m o t e O b j e c t H e l l o I m p l R M I 2. i n c o m i n g j a v a. r m i. U n i c a s t R e m o t e O b j e c t j a v a. r m i. a c t i v a t i o n. A c t i v a t a b l e U n i c a s t R e m o t e O b j e c t A c t i v a t a b l e U n i c a s t R e m o t e O b j e c t. e x p o r t O b j e c t A c t i v a t a b l e. e x p o r t O b j e c t j a v a. r m i. R e m o t e E x c e p t i o n R e m o t e E x c e p t i o n
2 9 1 2 6 J B u i l d e r R M I J a v a j a v a. r m i. R e m o t e E x c e p t i o n e x a m p l e s. h e l l o. H e l l o I m p l s u p e r j a v a. r m i. S e r v e r. U n i c a s t R e m o t e O b j e c t j a v a. r m i. R e m o t e E x c e p t i o n R M I super( ) J a v a J V M 3. s a y H e l l o Hello Wo r l d J a v a j a v a. i o. S e r i a l i z a b l e j a v a. l a n g j a v a. u t i l S e r i a l i z a b l e R M I s t a t i c t r a n s i e n t h t t p : / / j a v a. s u n. c o m / p r o d u c t s / j d k / 1. 2 / d o c s / g u i d e / s e r i a l i z a t i o n / s p e c / s e r i a l TO C. d o c. h t m l Java Object Serialization Specification(Java )
292 client-side proxy R M I RMI Specification h t t p : / / j a v a. s u n. c o m / p r o d u c t s / j d k / 1. 2 / d o c s / g u i d e / r m i / s p e c / r m i TO C. d o c. h t m l 26. 2. 1 J a v a 4. m a i n R M I S e c u r i t y M a n a g e r C L A S S PAT H R M I 5. m a i n ( i n c o m i n g ) 6. a p p l e t b o o t s t r a pr M I // h o s t / o b j e c t n a m e U R L o b j e c t n a m e R M I R M I Applying the Factory Pattern to RMI http://java.sun.com/products/jdk/1.2/docs/guide/rmi/factory.html
2 9 3 2 6 J B u i l d e r R M I J a v a H e l l o S e r v e r r e b i n d U R L j a v a. l a n g. S t r i n g I P U R L ; U R L H e l l o S e r v e r U R L // m y h o s t : 1234 / H e l l o S e r v e r 1099 1099 R M I o b j H e l l o I m p l 26.1.3 Hello Wo r l d a p p l e t Hello Wo r l d a p p l e t H e l l o S e r v e r s a y H e l l o a p p l e t 1) File New A p p l e t 2) C l a s s H e l l o A p p l e t 3) F i n i s h H e l l o A p p l e t. j a v a 4)
294 a p p l e t 1) a p p l e t RMI Registry H e l l o S e r v e r N a m i n g. r e b i n d N a m i n g. l o o k u p U R L j a v a. l a n g. S t r i n g a p p l e t
2 9 5 2 6 J B u i l d e r R M I J a v a g e t C o d e B a s e N a m i n g. l o o k u p U R L N a m i n g. l o o k u p N a m i n g. l o o k u p U R L H e l l o S e r v e r l o o k u p H e l l o I m p l _ S t u b H e l l o I m p l e x a m p l e s. h e l l o. H e l l o I m p l _ S t u b N a m i n g. l o o k u p H e l l o A p p l e t 2) a p p l e t s a yhe l l o RMI Hello Wo r l d! RMI m e s s a g e 3) a p p l e t p a i n t a p p l e t Hello Wo r l d! N a m i n g. l o o k u p U R L a p p l e t A p p l e t S e c u r i t y M a n a g e r a p p l e t a p p l e t 26.1.4 applet HTML a p p l e t H T M L A p p l e t e x a m p l e s. h e l l o. H e l l o A p p l e t. h t m l \ m y c l a s s e s
296 H T T P We b a p p l e t H T M L c o d e b a s e a p p l e t H T M L../ a p p l e t c o d e a p p l e t e x a m p l e s. h e l l o. H e l l o A p p l e t code = "examples.hello.helloapplet" 26.1.5 j a v a. s e c u r i t y. p o l i c y h t t p :// j a v a. s u n. c o m / p r o d u c t s / j d k / 1. 2 / d o c s / g u i d e / s e c u r i t y / P o l i c y F i l e s. h t m l J D K 1. 2 http://java.sun.com/ products/ jdk/1.2/docs/guide/security/ permissions.html 1) p o l i c y 2) / 3) ( ) 26.2 HTML Hello World /myproject/examples/hello
2 9 7 2 6 J B u i l d e r R M I J a v a Hello.java H e l l o H e l l o I m p l. j a v a H e l l o I m p l a p p l e t Hello Wo r l d HelloApplet.java a p p l e t e x a m p l e s. h e l l o. H e l l o A p p l e t. h t m l a p p l e t Hello Wo r l d We b policy. j a v a a p p l e t. j a v a. c l a s s R M I a p p l e t a p p l e t / m y c l a s s e s c :\ j b u i l d e r \ m y c l a s s e s a p p l e t H T M L Web Java Web http://host/~username/ HTTP URL h t m l We b URL file://home/username/public_html Java J a v a 1) Navigation pane H e l l o I m p l. j a v a Java Source Properties Generate RMI Stub/Skeleton O K 2) H e l l o. j p r m a k e c :\ j b u i l d e r \ m y c l a s s e s e x a m p l e s / h e l l o H e l l o. c l a s s h e l l o I m p l. c l a s s H e l l o A p p l e t. c l a s s a p p l e t / m y c l a s s e s / e x a m p l e s / h e l l o HelloImpl_Stub.class HelloImpl_Skel.class j a v a j a v a c r m i r m i c JDK 1.2 r m i - v c o m p a t 1) 1. 1 U n i c a s t
298 2) 1. 2 1. 2 r m i c - v 1. 2 r m i c Solaris rmic h t t p :// j a v a. s u n. c o m / p r o d u c t s / j d k / 1. 2 / d o c s / t o o l s d o c s / s o l a r i s / r m i c. h t m l Win32 rmic h t t p :// j a v a. s u n. c o m / p r o d u c t s / j d k / 1. 2 / d o c s / t o o l s d o c s / w i n 32 / r m i c. h t m l - v 1. 2 J a v a c a s t i n g J a v a 26.3 RMI applet 26.3.1 RMI R M I R M I s h e l l ( ) C L A S S PAT H CLASSPATH R M I C L A S S PAT H j a v a. r m i. s e r v e r. c o d e b a s e J B u i l d e r Windows NT Tools RMI Registry Wi n d o w s m o d i f i e d / a d d i t i o n a l Wi n d o w s C t r l + C DOS X RMI Windows
2 9 9 2 6 J B u i l d e r R M I J a v a 26.3.2 R M I RMI and Serialization FA Q h t t p : / / j a v a. s u n. c o m / p r o d u c t s / j d k / 1. 2 / d o c s / g u i d e / r m i / f a q. h t m l java.rmi.server.codebase J B u i l d e r H e l l o I m p l j a v a. s e c u r i t y. p o l i c y 1) H e l l o. j p r P r o p e r t i e s 2) R u n / D e b u g 3) Java VM Parameters - D 4) O K 5) H e l l o I m p l. j a v a R u n D O S Wi n d o w 26.3.3 applet a p p l e t a p p l e We b a p p l e t a p p l e t e x a m p l e s. h e l l o. H e l l o A p p l e t. h t m l R u n a p p l e t a p p l e Hello Wo r l d! a p p l e t 26-1 JavaSoft Web h t t p :// j a v a s o f t. c o m / p r o d u c t s / j d k / 1. 2 / d o c s / g u i d e / r m i / g e t s t a r t. d o c. h t m l Java RMI h t t p :// j a v a. s u n. c o m : 80 / p r o d u c t s / j d k / r m i /. Java Remote Method Invocation h t t p : / / j a v a. s u n. c o m : 8 0 / / p r o d u c t s / j d k / 1. 2 / d o c s / g u i d e / r m i / s p e c / r m i TO C. d o c. h t m l Remote Method Invocation Specification
300 26-1 h t t p : / / j a v a. s u n. c o m : 8 0 / / p r o d u c t s / j d k / 1. 2 / d o c s / g u i d e / r m i / s p e c / r m i - a r c h. d o c. h t m l # 6 0 RMI System Overview h t t p :// j a v a. s u n. c o m : 80 / m a r k e t i n g / c o l l a t e r a l / j a v a r m i. h t m l Java Remote Method Invocation - Distributed Computing for Java (A White Paper) Advantages h t t p :// j a v a. s u n. c o m : 80 / m a r k e t i n g / c o l l a t e r a l / j a v a r m i. h t m l # 2 h t t p :// j a v a. s u n. c o m / p r o d u c t s / j d k / 1. 2 / d o c s / g u i d e / r m i / i n d e x. h t m l R M I Enhancements(for JDK 1.2) R M I