╤≡σΣα JavaBeans ∩εδαπασ≥± φα ±≥αφΣα≡≥φ√σ ∞σ⌡αφΦτ∞√ ±ε⌡≡αφσφΦ Java-εß·σΩ≥εΓ. ╥αΩΦ⌡ ∞σ⌡αφΦτ∞εΓ ΣΓα. ╚φ≥σ≡⌠σΘ± java.io. Serializable (±∞. δΦ±≥Φφπ 18) ∩≡σΣ≤±∞α≥≡ΦΓασ≥ ±ε⌡≡αφσφΦσ Γ ±≥αφΣα≡≥φεΘ ⌠ε≡∞σ π≡α⌠α εß·σΩ≥εΓ, Σε±≥≤∩φ√⌡ Φτ Σαφφεπε. ┬∩≡ε≈σ∞, ∞σ≥εΣ√ writeObject/readObject Φ τΣσ±ⁿ ∩≡σΣε±≥αΓδ ■≥ ∩εδⁿτεΓα≥σδ ∞ ε∩≡σΣσδσφφ≤■ ±ΓεßεΣ≤. ╚φ≥σ≡⌠σΘ± java.io.Externalizable (±∞. δΦ±≥Φφπ 19) Σσδασ≥ ²≥≤ ±ΓεßεΣ≤ αß±εδ■≥φεΘ - Java-∞α°Φφα ßσ≡σ≥ φα ±σß δΦ°ⁿ ±ε⌡≡αφσφΦσ Ωδα±±εΓεΘ Φφ⌠ε≡∞α÷ΦΦ, Γ±σ ε±≥αδⁿφεσ ε≥Σασ≥± φα ε≥Ω≤∩ ∩εδⁿτεΓα≥σδ■. ╨σαδΦτα÷Φ Φφ≥σ≡⌠σΘ±α Externalizable ÷σδσ±εεß≡ατφα Γ ∩σ≡Γ≤■ ε≈σ≡σΣⁿ ≥επΣα, ΩεπΣα σ±≥ⁿ φσεß⌡εΣΦ∞ε±≥ⁿ ∩≡σΣ±≥αΓΦ≥ⁿ Ωε∞∩εφσφ≥ JavaBeans ΩαΩ ²δσ∞σφ≥ Σ≡≤πεΘ εß·σΩ≥φεΘ ±≡σΣ√, ≥αΩεΘ, φα∩≡Φ∞σ≡, ΩαΩ OLE ΦδΦ OpenDoc.
╧≡Φ ±ε⌡≡αφσφΦΦ εß·σΩ≥εΓ Γ ΣεδπεΓ≡σ∞σφφεΘ ∩α∞ ≥Φ ∩≡Φ⌡εΣΦ≥± ≤≈Φ≥√Γα≥ⁿ ±≥αφΣα≡≥φ√σ ∩≡εßδσ∞√, ±Γ ταφφ√σ ± ≡ατδΦ≈φ√∞ Γ≡σ∞σφσ∞ µΦτφΦ Ωε∞∩εφσφ≥εΓ, ± Φτ∞σφσφΦσ∞ Φ⌡ Γσ≡±ΦΘ Φ ± εßσ±∩σ≈σφΦσ∞ Φ⌡ Φφ⌠ε≡∞α÷ΦεφφεΘ ßστε∩α±φε±≥Φ; ∞√, εΣφαΩε, φα ²≥Φ⌡ ∩≡εßδσ∞α⌡ ε±≥αφαΓδΦΓα≥ⁿ± φσ ß≤Σσ∞.
╤ετΣαφΦσ φεΓεπε ²Ωτσ∞∩δ ≡α Ωε∞∩εφσφ≥εΓ ≥αΩµσ ±ε∩≡ µσφε ± φσΩε≥ε≡√∞Φ ≥εφΩε±≥ ∞Φ. ▌Ωτσ∞∩δ ≡ ∞εµσ≥ ±ετΣαΓα≥ⁿ± Γ ≡ατφ√⌡ Ωεφ≥σΩ±≥α⌡, φα∩≡Φ∞σ≡, Γ Ωεφ≥σΩ±≥σ ∩≡ΦδεµσφΦ ΦδΦ Γ Ωεφ≥σΩ±≥σ Φφ±≥≡≤∞σφ≥αδⁿφεπε εΩ≡≤µσφΦ . ╠σ≥εΣ instantiate Ωδα±±α java.beans.Beans (±∞. δΦ±≥Φφπ 20) φαΣσδσφ Σε±≥α≥ε≈φ√∞ Φφ≥σδδσΩ≥ε∞, ≈≥εß√ ≤≈σ±≥ⁿ Ωεφ≥σΩ±≥ Φ ±Σσδα≥ⁿ Γ±σ Ωε≡≡σΩ≥φε; Γ ²≥εΘ ±Γ τΦ ∩εδⁿτεΓα≥σδ■ ≡σΩε∞σφΣ≤σ≥± Φτßσπα≥ⁿ ±ετΣαφΦ ²Ωτσ∞∩δ ≡εΓ Φφ√∞Φ ∞σ≥εΣα∞Φ.
╧ε∞Φ∞ε instantiate, Ωδα±± Beans ±εΣσ≡µΦ≥ φσΩε≥ε≡√σ Σ≡≤πΦσ ∞σ≥εΣ√, εßδσπ≈α■∙Φσ ≤∩≡αΓδσφΦσ Ωε∞∩εφσφ≥α∞Φ εß·σΩ≥φεΘ ±≡σΣ√ (±∞. δΦ±≥Φφπ 20).
╙∩αΩεΓΩα ±ε⌡≡αφσφφ√⌡ Java-εß·σΩ≥εΓ (Φ, Γ ≈α±≥φε±≥Φ, Ωε∞∩εφσφ≥εΓ εß·σΩ≥φεΘ ±≡σΣ√) Γαµφα ∩≡σµΣσ Γ±σπε Σδ ²⌠⌠σΩ≥ΦΓφεΘ Σε±≥αΓΩΦ Φ⌡ ∩ε ±σ≥Φ. ╤∩σ÷Φ⌠ΦΩα÷ΦΦ JavaBeans ≡σΩε∞σφΣ≤■≥ (φε φσ ∩≡σΣ∩Φ±√Γα■≥) Φ±∩εδⁿτεΓα≥ⁿ Σδ ≤∩αΩεΓΩΦ ⌠ε≡∞α≥ JAR (Java-α≡⌡ΦΓ).
Java-α≡⌡ΦΓ√ ∞επ≤≥ ±εΣσ≡µα≥ⁿ ⌠αΘδ√ Ωδα±±εΓ, ≡στ≤δⁿ≥α≥√ ±σ≡ΦαδΦτα÷ΦΦ εß·σΩ≥εΓ, Φτεß≡αµσφΦ , ±∩≡αΓε≈φ≤■ Φφ⌠ε≡∞α÷Φ■ Φ Σ≡≤πΦσ ≡σ±≤≡±√. ╤ α≡⌡ΦΓε∞ ∞εµσ≥ ß√≥ⁿ α±±ε÷ΦΦ≡εΓαφ manifest-⌠αΘδ, ε∩Φ±√Γα■∙ΦΘ σπε ±εΣσ≡µΦ∞εσ, Γ ≥ε∞ ≈Φ±δσ ταΓΦ±Φ∞ε±≥Φ ∞σµΣ≤ Ωε∞∩εφσφ≥α∞Φ.
═α ∩≡Φ∞σ≡σ ±ε⌡≡αφσφΦ Ωε∞∩εφσφ≥εΓ ∞εµφε ΓΦΣσ≥ⁿ, φα±ΩεδⁿΩε ≤∩≡ε∙ασ≥± µΦτφⁿ ≡ατ≡αßε≥≈ΦΩεΓ τα ±≈σ≥ ∩≡εΣ≤∞αφφεΘ ε≡παφΦτα÷ΦΦ Java-≥σ⌡φεδεπΦΦ. ╧≡εßδσ∞α ±ε⌡≡αφσφΦ ≡σ°σφα φα ≤≡εΓφσ ±≥αφΣα≡≥φεπε Java-εΩ≡≤µσφΦ , ≥αΩ ≈≥ε Γ±σ φαΣ±≥≡εΘΩΦ (≥αΩΦσ ΩαΩ JavaBeans) ∞επ≤≥ ∩εδαπα≥ⁿ± φα ±≤∙σ±≥Γ≤■∙Φσ ∞σ⌡αφΦτ∞√.
╧≡σΣ±≥αΓδ σ≥± ≤ΣΦΓΦ≥σδⁿφ√∞, ≈≥ε ±∩σ÷Φ⌠ΦΩα÷Φ [3], ≡σπδα∞σφ≥Φ≡≤■∙α ⌠≤φΣα∞σφ≥αδⁿφεσ ε≥φε°σφΦσ Ωε∞∩εφσφ≥√/Ωεφ≥σΘφσ≡, φσ Γε°δα Γ ≈Φ±δε ∩σ≡Γεε≈σ≡σΣφ√⌡ Φ Σε≡αßα≥√Γασ≥± ≥εδⁿΩε ±σΘ≈α±, Γ ≡α∞Ωα⌡ φεΓεΘ Γσ≡±ΦΦ JavaBeans ± ≡αßε≈Φ∞ φατΓαφΦσ∞ Glasgow.
╠σ⌡αφΦτ∞ Ωεφ≥σΘφσ≡εΓ φσεß⌡εΣΦ∞ Σδ Σε±≥ΦµσφΦ ∩ε Ω≡αΘφσΘ ∞σ≡σ ΣΓ≤⌡ ÷σδσΘ:
╧σ≡Γ√Θ ∩≤φΩ≥ ετφα≈ασ≥, Γ ≈α±≥φε±≥Φ, ΦφΩα∩±≤δ ÷Φ■ ±εΓεΩ≤∩φε±≥Φ Ωε∞∩εφσφ≥εΓ, ≥αΩ ≈≥ε ± ≥ε≈ΩΦ τ≡σφΦ εΩ≡≤µσφΦ εφα Γ√πδ ΣΦ≥ ΩαΩ σΣΦφεσ ÷σδεσ ± φαßε≡ε∞ ∞σ≥εΣεΓ, ∩≡σΣε±≥αΓδ σ∞√⌡ Ωεφ≥σΘφσ≡ε∞. ╩≡ε∞σ ≥επε, ∩≡Φ∞σφΦ≥σδⁿφε Ω Φσ≡α≡⌡Φ≈σ±ΩεΘ ±≥≡≤Ω≥≤≡σ Γετ∞εµσφ ±Φ±≥σ∞α≥Φ≈σ±ΩΦΘ εß⌡εΣ Φ εß≡αßε≥Ωα σσ ²δσ∞σφ≥εΓ.
┬≥ε≡εΘ ∩≤φΩ≥ Φ∞σσ≥ ∩≡ε≥ΦΓε∩εδεµφεσ φατφα≈σφΦσ - ΦφΩα∩±≤δ ÷Φ■ εΩ≡≤µσφΦ . ╩εφ≥σΘφσ≡ Γ√±≥≤∩ασ≥ Γ ≡εδΦ εßεδε≈ΩΦ, ±Ω≡√Γα■∙σΘ ε≥ Ωε∞∩εφσφ≥εΓ ε±εßσφφε±≥Φ Γφσ°φσΘ ±≡σΣ√ Φ ∩≡σΣε±≥αΓδ ■∙σΘ Φ∞ ±ΓεΘ Ωεφ≥σΩ±≥.
╫≥εß√ Φτßσµα≥ⁿ ≤∩ε≥≡σßδσφΦ ∩σ≡σπ≡≤µσφφεπε Γ Java-±≡σΣσ ≥σ≡∞Φφα "Ωεφ≥σΘφσ≡", αΓ≥ε≡√ ±∩σ÷Φ⌠ΦΩα÷ΦΦ ≤∩ε≥≡σßδ ■≥ ±ε≈σ≥αφΦσ "BeanContext". ╠√ φσ ß≤Σσ∞ ²≥επε Σσδα≥ⁿ, ∩ε±ΩεδⁿΩ≤, ∩ε∞Φ∞ε ∩≡σΣε±≥αΓδσφΦ εß∙σπε Ωεφ≥σΩ±≥α, ≤ Ωεφ≥σΘφσ≡α σ±≥ⁿ Φ Σ≡≤πΦσ ⌠≤φΩ÷ΦΦ; φαΣσσ∞± , ≈≥ε Ω ∩≤≥αφΦ÷σ ²≥ε φσ ∩≡ΦΓσΣσ≥.
╨σαδΦτα÷Φ ∞σ⌡αφΦτ∞α Ωεφ≥σΘφσ≡εΓ Φ±∩εδⁿτ≤σ≥ ±δ≤µσßφ√Θ Φφ≥σ≡⌠σΘ± java.util.Collection, Ωε≥ε≡√Θ ∩≡σΣ∩εδαπασ≥± ΓΩδ■≈Φ≥ⁿ Γ εΣφ≤ Φτ ßδΦµαΘ°Φ⌡ Γσ≡±ΦΘ Java-±≡σΣ√. ╘≡απ∞σφ≥ ε∩Φ±αφΦ ²≥επε Φφ≥σ≡⌠σΘ±α, ±εΣσ≡µα∙ΦΘ ≥Φ∩Φ≈φ√σ ∞σ≥εΣ√ Σδ ≡αßε≥√ ± φαßε≡α∞Φ, ∩≡ΦΓσΣσφ φα δΦ±≥Φφπσ 21.
╚φ≥σ≡⌠σΘ± java.beans.BeanContextChild ±εΣσ≡µΦ≥ ε∩Φ±αφΦ ∞σ≥εΣεΓ, ∩ετΓεδ ■∙Φ⌡ α±±ε÷ΦΦ≡εΓα≥ⁿ ± Ωε∞∩εφσφ≥ε∞ εß·σ∞δ■∙ΦΘ Ωεφ≥σΘφσ≡ Φ ε∩≡α°ΦΓα≥ⁿ ²≥≤ α±±ε÷Φα÷Φ■ (±∞. δΦ±≥Φφπ 22). ╥αΩΦ∞ εß≡ατε∞, ±Γ τΦ, ΓσΣ≤∙Φσ ΓφΦτ (ε≥ Ωεφ≥σΘφσ≡α Ω Ωε∞∩εφσφ≥≤), εß±δ≤µΦΓασ≥ Φφ≥σ≡⌠σΘ± Collection, α ±Γ τΦ, ΓσΣ≤∙Φσ ΓΓσ≡⌡, - Φφ≥σ≡⌠σΘ± BeanContextChild.
╤ ε≥φε°σφΦσ∞ Ωε∞∩εφσφ≥√/Ωεφ≥σΘφσ≡ α±±ε÷ΦΦ≡εΓαφε ±εß√≥Φσ beanContextChanged. ╤εε≥Γσ≥±≥Γ≤■∙ΦΘ Φφ≥σ≡⌠σΘ± (BeanContextListener) ε∩Φ±αφ φα δΦ±≥Φφπσ 23.
┬εεß∙σ πεΓε≡ , ≡α±∩≡ε±≥≡αφσφΦσ ²≥επε ±εß√≥Φ ∞εµσ≥ ∩≡εΦ±⌡εΣΦ≥ⁿ Γ φσ±ΩεδⁿΩε ∩≡Φσ∞εΓ: Ωεφ≥σΘφσ≡, ∩εδ≤≈ΦΓ ΦτΓσ∙σφΦσ ε≥ Ωε∞∩εφσφ≥α, ∩σ≡σΣασ≥ σπε ±ΓεΦ∞ ∩εΣ∩Φ±≈ΦΩα∞, Γ ≈Φ±δε Ωε≥ε≡√⌡, Γσ≡ε ≥φε, Γ⌡εΣΦ≥ εß·σ∞δ■∙ΦΘ Ωεφ≥σΘφσ≡, Φ ≥.Σ. ╫≥εß√ ≡α±∩ετφα≥ⁿ ∩εΣεßφ√σ "Γ≥ε≡Φ≈φ√σ" ±εß√≥Φ Φ ε∩≡σΣσδΦ≥ⁿ ∩σ≡ΓεΦ±≥ε≈φΦΩ, ∩≡σΣ≤±∞ε≥≡σφ√ ±εε≥Γσ≥±≥Γ≤■∙Φσ ∞σ≥εΣ√ ±εß√≥ΦΘφεπε εß·σΩ≥α BeanContextEvent (±∞. δΦ±≥Φφπ 24).
╚τ∞σφσφΦ ±εΓεΩ≤∩φε±≥Φ Ωε∞∩εφσφ≥εΓ, Γ⌡εΣ ∙Φ⌡ Γ Ωεφ≥σΘφσ≡, εß±δ≤µΦΓασ≥ ±εß√≥ΦΘφ√Θ εß·σΩ≥ BeanContextMembershipEvent. ╬φ ±εΣσ≡µΦ≥ Φφ⌠ε≡∞α÷Φ■ ε ≡ατφε±≥Φ ("Σσδⁿ≥σ") ∞σµΣ≤ ±≥α≡√∞ Φ φεΓ√∞ ±ε±≥αΓε∞ Ωεφ≥σΘφσ≡α, ≥ε σ±≥ⁿ ε ≥ε∞, ΩαΩΦσ Ωε∞∩εφσφ≥√ ß√δΦ ΣεßαΓδσφ√ ΦδΦ, φα∩≡ε≥ΦΓ, ≤Σαδσφ√ (δΦ±≥Φφπ 25).
╚φ≥σπ≡Φ≡≤■∙Φ∞ ²δσ∞σφ≥ε∞ ≡α±±∞α≥≡ΦΓασ∞εΘ ±∩σ÷Φ⌠ΦΩα÷ΦΦ Γδ σ≥± Φφ≥σ≡⌠σΘ± java.beans.BeanContext, ε∩Φ±√Γα■∙ΦΘ ±Γ τΦ, ΦΣ≤∙Φσ ΩαΩ ΓΓσ≡⌡, ≥αΩ Φ ΓφΦτ (τα ±≈σ≥ ≡α±°Φ≡σφΦ Φφ≥σ≡⌠σΘ±εΓ BeanContextChild Φ Collection ±εε≥Γσ≥±≥Γσφφε). ╚φ≥σ≡⌠σΘ± BeanContext ∩ετΓεδ σ≥ ≥αΩµσ ε∩≡ε±Φ≥ⁿ ∩≡σΣε±≥αΓδ σ∞√σ Ωεφ≥σΘφσ≡ε∞ ±σ≡ΓΦ±√ Φ ≡σ±≤≡±√. ╤εΣσ≡µΦ≥ εφ Φ ∞σ≥εΣ√ Σδ ≡σπΦ±≥≡α÷ΦΦ ∩εΣ∩Φ±≈ΦΩεΓ ±εß√≥ΦΘ (±∞. δΦ±≥Φφπ 26).
╨ατ≤∞σσ≥± , Ω≡ε∞σ ±Φφ≥αΩ±Φ±α ±∩σ÷Φ⌠Φ÷Φ≡≤σ≥± ±σ∞αφ≥ΦΩα ∞σ≥εΣεΓ Φφ≥σ≡⌠σΘ±α BeanContext.
╧≡Φ ΣεßαΓδσφΦΦ Ωε∞∩εφσφ≥α ∞σ≥εΣε∞ add (), ≤φα±δσΣεΓαφφ√∞ ≤ Φφ≥σ≡⌠σΘ±α Collection, Ωεφ≥σΘφσ≡ "∩≡ΦΓ τ√Γασ≥" ²≥ε≥ Ωε∞∩εφσφ≥ Ω ±σßσ, Γ√τ√Γα Γ φσ∞ ∞σ≥εΣ setBeanContext ± α≡π≤∞σφ≥ε∞ this (∩εδφε÷σφφ√σ Ωε∞∩εφσφ≥√ Σεδµφ√ ≡σαδΦτεΓ√Γα≥ⁿ Φφ≥σ≡⌠σΘ± BeanContextChild). ┬ ±Γε■ ε≈σ≡σΣⁿ, Ωε∞∩εφσφ≥ ∞εµσ≥ ∩≡ε≥σ±≥εΓα≥ⁿ ∩≡ε≥ΦΓ ΓΩδ■≈σφΦ Γ Ωεφ≥σΘφσ≡, Γετß≤µΣα Φ±Ωδ■≈Φ≥σδⁿφ≤■ ±Φ≥≤α÷Φ■ PropertyVetoException. ┼±δΦ ²≥ε ±δ≤≈Φ≥± , Ωεφ≥σΘφσ≡ εß ταφ ε≥∞σφΦ≥ⁿ ΣεßαΓδσφΦσ, Γετß≤ΣΦΓ Φ±Ωδ■≈Φ≥σδⁿφ≤■ ±Φ≥≤α÷Φ■ IllegalArgumentException. ╧≡Φ ≤±∩σ°φε∞ ΣεßαΓδσφΦΦ Ωε∞∩εφσφ≥α Ωεφ≥σΘφσ≡ ≡α±∩≡ε±≥≡αφ σ≥ ∩εΣ∩Φ±≈ΦΩα∞ ±εß√≥Φσ beanContextChanged ± ±εε≥Γσ≥±≥Γ≤■∙Φ∞ εß·σΩ≥ε∞-∩α≡α∞σ≥≡ε∞. ╩εφ≥σΘφσ≡ Σεδµσφ ∩εΣ∩Φ±α≥ⁿ± ≤ φεΓεπε Ωε∞∩εφσφ≥α φα ±εß√≥Φ , ±Γ ταφφ√σ ±ε ±ΓεΘ±≥Γα∞Φ ∩ε±δσΣφσπε, ≈≥εß√ ε≥±δσµΦΓα≥ⁿ ∩ε Ω≡αΘφσΘ ∞σ≡σ ±ΓεΘ±≥Γε beanContext Φ φσ Σε∩≤±≥Φ≥ⁿ φα≡≤°σφΦ ÷σδε±≥φε±≥Φ Φσ≡α≡⌡Φ≈σ±ΩεΘ ±≥≡≤Ω≥≤≡√. ╩≡ε∞σ ≥επε, Ωε∞∩εφσφ≥ ≡σπΦ±≥≡Φ≡≤σ≥± ΩαΩ ∩εΣ∩Φ±≈ΦΩ ±εß√≥ΦΘ, Γετß≤µΣασ∞√⌡ Ωεφ≥σΘφσ≡ε∞.
╧≡Φ ≤ΣαδσφΦΦ εß·σΩ≥α Φτ Ωεφ≥σΘφσ≡α ∩≡εΦτΓεΣ ≥± εß≡α≥φ√σ ΣσΘ±≥ΓΦ . ┬ ≈α±≥φε±≥Φ, Γ√τ√Γασ≥± ∞σ≥εΣ setBeanContext ± α≡π≤∞σφ≥ε∞ null. ┼±δΦ Ωε∞∩εφσφ≥ φα⌡εΣΦ≥± Γ ±ε±≥ε φΦΦ, φσ ∩ετΓεδ ■∙σ∞ ∩≡εΦτΓσ±≥Φ ≤ΣαδσφΦσ, εφ Γετß≤µΣασ≥ Φ±Ωδ■≈Φ≥σδⁿφ≤■ ±Φ≥≤α÷Φ■ PropertyVetoException, τα±≥αΓδ ≥σ∞ ±α∞√∞ Ωεφ≥σΘφσ≡ ε≥Ωατα≥ⁿ± ε≥ ≤ΣαδσφΦ .
╬≥∞σ≥Φ∞, ≈≥ε Ωεφ≥σΘφσ≡φα ≡σαδΦτα÷Φ ∞σ≥εΣεΓ Φφ≥σ≡⌠σΘ±α Collection Σεδµφα ß√≥ⁿ ßστε∩α±φεΘ Γ ∞φεπε∩ε≥εΩεΓεΘ ±≡σΣσ.
╨α±±∞ε≥≡σφφα ±∩σ÷Φ⌠ΦΩα÷Φ τα∩εδφ σ≥ ε≈σφⁿ Γαµφ≤■ ∞σ≥εΣεδεπΦ≈σ±Ω≤■ ß≡σ°ⁿ Γ JavaBeans. ╒ε≥σδε±ⁿ ß√ φαΣσ ≥ⁿ± , ≈≥ε ∩σ≡σ⌡εΣ Ω φεΓεΘ Γσ≡±ΦΦ ∩≡ΦΩδαΣφεπε ∩≡επ≡α∞∞φεπε Φφ≥σ≡⌠σΘ±α Java, ΓΩδ■≈α■∙σΘ Φφ≥σ≡⌠σΘ± BeanContext, ∩≡εΦτεΘΣσ≥ Γ ßδΦµαΘ°σσ Γ≡σ∞ .
╩ε∞∩εφσφ≥√ εß·σΩ≥φεΘ ±≡σΣ√ εß√≈φε ΓταΦ∞εΣσΘ±≥Γ≤■≥ φσ ≥εδⁿΩε ± εß·σ∞δ■∙Φ∞ Ωεφ≥σΘφσ≡ε∞, φε Φ ∞σµΣ≤ ±εßεΘ. ╠σ⌡αφΦτ∞ ±εß√≥ΦΘ - ²≥ε εΣφα π≡αφⁿ ≥αΩεπε ΓταΦ∞εΣσΘ±≥ΓΦ . ┬ Σε∩εδφσφΦσ φσεß⌡εΣΦ∞α Γετ∞εµφε±≥ⁿ εß∞σφα ±≥≡≤Ω≥≤≡Φ≡εΓαφφ√∞Φ ²δσ∞σφ≥α∞Φ Σαφφ√⌡.
╤εε≥Γσ≥±≥Γ≤■∙α ±∩σ÷Φ⌠ΦΩα÷Φ [5] πε≥εΓΦ≥± ±∩σ÷ΦαδΦ±≥α∞Φ Ωε∞∩αφΦΘ Sun Microsystems Φ Lotus Development. ╚ ⌡ε≥ ±εΓ∞σ±≥φα ≡αßε≥α ≥εδⁿΩε φα≈αδα±ⁿ, ∞√ ±ε≈δΦ φσεß⌡εΣΦ∞√∞ ε±Γσ≥Φ≥ⁿ Γ√ΣΓΦφ≤≥√σ ∩≡σΣδεµσφΦ ΓΓΦΣ≤ Φ±Ωδ■≈Φ≥σδⁿφεΘ Γαµφε±≥Φ τα≥≡απΦΓασ∞εΘ ≥σ∞√.
╓σφ≥≡αδⁿφ√∞ ∩εφ ≥Φσ∞ ∩≡σΣδαπασ∞√⌡ ±∩σ÷Φ⌠ΦΩα÷ΦΘ Γδ σ≥± Φφ⌠ε≡∞α÷Φεφφα °Φφα. ╩ε∞∩εφσφ≥√ ∞επ≤≥ ∩εΣΩδ■≈α≥ⁿ± Ω °Φφσ, ∩ε∞σ∙α≥ⁿ φα φσσ Σαφφ√σ (²≥ε Σσδα■≥ ∩ε±≥αΓ∙ΦΩΦ) Φ ±≈Φ≥√Γα≥ⁿ Σαφφ√σ (²≥ε Σσδα■≥ ∩ε≥≡σßΦ≥σδΦ). ╬ß∞σφ φε±Φ≥ α±Φφ⌡≡εφφ√Θ ⌡α≡αΩ≥σ≡: ∩ε±≥αΓ∙ΦΩ, ∩ε∞σ±≥ΦΓ Σαφφ√σ, φσ ταßε≥Φ≥± ε ≥ε∞, ΩεπΣα εφΦ ß≤Σ≤≥ ±≈Φ≥αφ√. ─δ ΦΣσφ≥Φ⌠ΦΩα÷ΦΦ ²δσ∞σφ≥εΓ Σαφφ√⌡ Φ±∩εδⁿτ≤■≥± Φ⌡ Φ∞σφα.
╚φ⌠ε≡∞α÷Φεφφα °Φφα ε∩Φ±√Γασ≥± Ωδα±±ε∞ InfoBus. ╠σ≥εΣ√ ²≥επε Ωδα±±α (≡σαδΦτ≤σ∞επε Γ ≡α∞Ωα⌡ ΓΦ≡≥≤αδⁿφεΘ Java-∞α°Φφ√) ∩ε≡εµΣα■≥ ²Ωτσ∞∩δ ≡√ °Φφ√, ε±≤∙σ±≥Γδ ■≥ ∩εΣΩδ■≈σφΦσ Ωε∞∩εφσφ≥εΓ Ω ∩εΣ⌡εΣ ∙Φ∞ ²Ωτσ∞∩δ ≡α∞, ε≥±δσµΦΓα■≥ ±∩Φ±εΩ °Φφ Φ ∩εΣΩδ■≈σφφ√⌡ Ω φΦ∞ Ωε∞∩εφσφ≥εΓ, ≡α±∩≡ε±≥≡αφ σ≥ ±εß√≥Φ , εß±δ≤µΦΓα■∙Φσ εß∞σφ Σαφφ√∞Φ, Φ ≥.∩. ╘≡απ∞σφ≥ ε∩Φ±αφΦ Ωδα±±α InfoBus ∩≡σΣ±≥αΓδσφ φα δΦ±≥Φφπσ 27.
╧≡ε÷σ±± Φφ⌠ε≡∞α÷Φεφφεπε ΓταΦ∞εΣσΘ±≥ΓΦ Ωε∞∩εφσφ≥εΓ Γ ±∩σ÷Φ⌠ΦΩα÷Φ ⌡ InfoBus ∞εµφε ∩εΣ≡ατΣσδΦ≥ⁿ φα ∩ ≥ⁿ ⌠ατ:
─δ ∩εΣΩδ■≈σφΦ Ω °Φφσ Ωε∞∩εφσφ≥ Σεδµσφ ≡σαδΦτεΓα≥ⁿ Φφ≥σ≡⌠σΘ± InfoBusMember, ∩εδ≤≈Φ≥ⁿ ±±√δΩ≤ φα ²Ωτσ∞∩δ ≡ °Φφ√ Φ ΓεΘ≥Φ Γ ≈Φ±δε σσ ≈δσφεΓ. ╘≡απ∞σφ≥ Φφ≥σ≡⌠σΘ±α InfoBusMember ∩≡ΦΓσΣσφ φα δΦ±≥Φφπσ 28. ╬ß≡α≥Φ∞ ΓφΦ∞αφΦσ, ≈≥ε °Φφα, α±±ε÷ΦΦ≡≤σ∞α ± Ωε∞∩εφσφ≥ε∞, ≥≡αΩ≥≤σ≥± ΩαΩ σπε ±ΓεΘ±≥Γε, Φτ∞σφσφΦσ τφα≈σφΦ Ωε≥ε≡επε ∞εµσ≥ ε≥±δσµΦΓα≥ⁿ± φα ε±φεΓσ ∞σ⌡αφΦτ∞α ±εß√≥ΦΘ.
─δ εßδσπ≈σφΦ ≡σαδΦτα÷ΦΦ Φφ≥σ≡⌠σΘ±α InfoBusMember ±∩σ÷Φ⌠ΦΩα÷ΦΦ ∩≡σΣδαπα■≥ Ωδα±± InfoBusMemberImpl, Ωε≥ε≡√Θ, Γ Σε∩εδφσφΦσ Ω "εß τα≥σδⁿφ√∞", ∩≡σΣε±≥αΓδ σ≥ σ∙σ ΣΓα ≤Σεßφ√⌡ ∞σ≥εΣα - joinInfoBus () Φ leaveInfoBus () (±∞. δΦ±≥Φφπ 29).
─δ ≡σαδΦτα÷ΦΦ Γ≥ε≡εΘ ⌠ατ√ (∩≡ε±δ≤°ΦΓαφΦσ °Φφ√) ∩ε±≥αΓ∙ΦΩ Σεδµσφ ∩εΣ∩Φ±α≥ⁿ± φα Φφ⌠ε≡∞α÷Φ■ ε τα∩≡ε±α⌡ Σαφφ√⌡, Γε±∩εδⁿτεΓαΓ°Φ±ⁿ ∞σ≥εΣε∞ addDataProducer () Ωδα±±α InfoBus. └φαδεπΦ≈φε, ∩ε≥≡σßΦ≥σδⁿ Σεδµσφ ∩εΣ∩Φ±α≥ⁿ± φα Φφ⌠ε≡∞α÷Φ■ ε φαδΦ≈ΦΦ Σαφφ√⌡, εß≡α≥ΦΓ°Φ±ⁿ Ω ∞σ≥εΣ≤ addDataConsumer (). ╩ε∞∩εφσφ≥ ∞εµσ≥ εΣφεΓ≡σ∞σφφε Γδ ≥ⁿ± Φ ∩ε±≥αΓ∙ΦΩε∞, Φ ∩ε≥≡σßΦ≥σδσ∞ (≥Φ∩Φ≈φ√Θ ∩≡Φ∞σ≡ - ∩≡ε∞σµ≤≥ε≈φεσ τΓσφε ΩεφΓσΘσ≡α).
╥≡σ≥ⁿ■ ⌠ατ√ Φφ⌠ε≡∞α÷Φεφφεπε ΓταΦ∞εΣσΘ±≥ΓΦ Ωε∞∩εφσφ≥εΓ εß±δ≤µΦΓα■≥ ∩≡σΦ∞≤∙σ±≥Γσφφε ±εß√≥ΦΘφ√σ εß·σΩ≥√. ┬ ±εε≥Γσ≥±≥ΓΦΦ ± ∞εΣσδⁿ■, ∩≡Φφ ≥εΘ Γ ±∩σ÷Φ⌠ΦΩα÷ΦΦ InfoBus, ∩ε±≥αΓ∙ΦΩ ε∩εΓσ∙ασ≥ ∩ε≥≡σßΦ≥σδσΘ ε ∩ε ΓδσφΦΦ φεΓεπε ²δσ∞σφ≥α Σαφφ√⌡. ╧ε≥≡σßΦ≥σδΦ τα∩≡α°ΦΓα■≥ ≤ ∩ε±≥αΓ∙ΦΩεΓ Σαφφ√σ, ΩεπΣα Γ φΦ⌡ ΓετφΦΩασ≥ φ≤µΣα. ╬ß∞σφ ²δσ∞σφ≥ε∞ Σαφφ√⌡ ±≥αφεΓΦ≥± Γετ∞εµφ√∞, σ±δΦ ∩ε±≥αΓ∙ΦΩ Φ ∩ε≥≡σßΦ≥σδⁿ Φ±∩εδⁿτ≤■≥ Σδ φσπε εΣφε Φ ≥ε µσ Φ∞ . ╬≥Γσ≥±≥Γσφφε±≥ⁿ τα φαΣδσµα∙ΦΘ Γ√ßε≡ Φ∞σφ δσµΦ≥ φα ≡ατ≡αßε≥≈ΦΩσ ∩≡ΦδεµσφΦ .
╩δα±± InfoBusEvent Γδ σ≥± ßατεΓ√∞ Σδ ±εß√≥ΦΘφ√⌡ εß·σΩ≥εΓ ∩ε±≥αΓΩΦ/∩≡Φσ∞α. ┼πε ε∩Φ±αφΦσ ∩≡ΦΓσΣσφε φα δΦ±≥Φφπσ 30.
╧ε±≥αΓ∙ΦΩ εß· Γδ σ≥ ε φαδΦ≈ΦΦ φεΓ√⌡ Σαφφ√⌡, ≡α±±√δα Γ±σ∞ ∩ε≥≡σßΦ≥σδ ∞ °Φφ√ ±εß√≥ΦΘφ√Θ εß·σΩ≥ Ωδα±±α InfoBusItemAvailableEvent. ╠σ≥εΣ√ ²≥επε Ωδα±±α ∩ετΓεδ ■≥ ∩εδ≤≈Φ≥ⁿ Φφ⌠ε≡∞α÷Φ■ ε ∩ε±≥αΓ∙ΦΩσ Φ α±±ε÷ΦΦ≡εΓαφφ√Θ ²δσ∞σφ≥ Σαφφ√⌡.
╧ε≥≡σßΦ≥σδⁿ, µσδα■∙ΦΘ ∩εδ≤≈Φ≥ⁿ Σαφφ√σ, ≡α±±√δασ≥ εß·σΩ≥ Ωδα±±α InfoBusItemRequestedEvent, ε∩Φ±αφΦσ Ωε≥ε≡επε ∩≡ΦΓσΣσφε φα δΦ±≥Φφπσ 31. ╬ß≡α≥Φ∞ ΓφΦ∞αφΦσ φα ∞σ≥εΣ setDataItem, ∩ετΓεδ ■∙ΦΘ ∩ε±≥αΓ∙ΦΩ≤, ∩εδ≤≈ΦΓ°σ∞≤ ±εß√≥ΦΘφ√Θ εß·σΩ≥, "∩≡ΦΓ τα≥ⁿ" Ω φσ∞≤ ²δσ∞σφ≥ Σαφφ√⌡, Γ√ΣαΓ σπε ≥σ∞ ±α∞√∞ ΦφΦ÷Φα≥ε≡≤ τα∩≡ε±α.
╘ε≡∞α≥ ²δσ∞σφ≥α Σαφφ√⌡ ε∩≡σΣσδ σ≥± Φφ≥σ≡⌠σΘ±α∞Φ, Ωε≥ε≡√σ ²≥ε≥ ²δσ∞σφ≥ ≡σαδΦτ≤σ≥. ┴ατεΓ√∞ Φφ≥σ≡⌠σΘ±ε∞ ²δσ∞σφ≥εΓ Σαφφ√⌡ Γδ σ≥± DataItem, Γ ≈Φ±δε ∩≡σσ∞φΦΩεΓ Ωε≥ε≡επε Γ⌡εΣ ≥ CollectionAccess, DbAccess Φ Σ≡. ╧ε±ΩεδⁿΩ≤ ∩≡εßδσ∞α εß∞σφα ±≥≡≤Ω≥≤≡Φ≡εΓαφφ√∞Φ Σαφφ√∞Φ ≤µσ ≡σ°σφα Γ ≡α∞Ωα⌡ αß±≥≡αΩ≥φεπε εΩεφφεπε Φφ±≥≡≤∞σφ≥α≡Φ (∩αΩσ≥ java.awt.datatransfer), ∩≡σΣ±≥αΓδ σ≥± σ±≥σ±≥Γσφφ√∞ Φ Γ ±∩σ÷Φ⌠ΦΩα÷Φ ⌡ InfoBus ∩εΘ≥Φ ≥σ∞ µσ ∩≤≥σ∞, ≈≥ε Φ ß√δε ±Σσδαφε.
╤∩σ÷Φ⌠ΦΩα÷ΦΦ InfoBus ≥εδⁿΩε φα≈αδΦ ±ΓεΘ ∩≤≥ⁿ Ω ε⌠Φ÷Φαδⁿφε∞≤ ≤≥Γσ≡µΣσφΦ■. ╠φεπΦσ Σσ≥αδΦ σ∙σ φσ ε∩≡σΣσδσφ√. ╥σ∞ φσ ∞σφσσ, ε±φεΓε∩εδαπα■∙Φσ ≡σ°σφΦ ∩≡Φφ ≥√, Φ εφΦ ∩≡σΣ±≥αΓδ ■≥± Γσ±ⁿ∞α ≤Σα≈φ√∞Φ. ┬ ≈α±≥φε±≥Φ, ∩εφ ≥Φσ ²Ωτσ∞∩δ ≡α °Φφ√ ∩ετΓεδ σ≥ ±≥≡≤Ω≥≤≡Φ≡εΓα≥ⁿ ∩≡ε±≥≡αφ±≥Γε ∩ε±≥αΓ∙ΦΩεΓ Φ ∩ε≥≡σßΦ≥σδσΘ, ≤∞σφⁿ°α ±δεµφε±≥ⁿ ±Φ±≥σ∞√ Φ ∩εΓ√°α ²⌠⌠σΩ≥ΦΓφε±≥ⁿ εß∞σφα Σαφφ√∞Φ.
┬ ≡ατφ√⌡ ±Φ≥≤α÷Φ ⌡ Ωε∞∩εφσφ≥ εß·σΩ≥φεΘ ±≡σΣ√ Σεδµσφ ∩εΓε≡α≈ΦΓα≥ⁿ± Ω ∩εδⁿτεΓα≥σδ■ ≡ατφ√∞Φ π≡αφ ∞Φ. ═α∩≡Φ∞σ≡, Γ Φφ±≥≡≤∞σφ≥αδⁿφε∞ εΩ≡≤µσφΦΦ φσεß⌡εΣΦ∞ε ∩εδ≤≈α≥ⁿ Φφ⌠ε≡∞α÷Φ■ εß α⌠Φ°Φ≡≤σ∞√⌡ ⌡α≡αΩ≥σ≡Φ±≥ΦΩα⌡ εß·σΩ≥α. ┬ φα±≥ε ∙σσ Γ≡σ∞ ≥αΩ≤■ Φφ⌠ε≡∞α÷Φ■ ∩≡σΣε±≥αΓδ σ≥ ±∩σ÷Φαδⁿφ√Θ Φφ⌠ε≡∞α÷ΦεφφεΘ εß·σΩ≥, Ωε±Γσφφε (∩ε Φ∞σφΦ Ωδα±±α) α±±ε÷ΦΦ≡εΓαφφ√Θ ± Φ±±δσΣ≤σ∞√∞ Φ ≡σαδΦτ≤■∙ΦΘ Φφ≥σ≡⌠σΘ± BeanInfo. ╬ΣφαΩε ßεδσσ σ±≥σ±≥ΓσφφεΘ ß√δα ß√ φσ Ωε±Γσφφα , α ∩≡ ∞α α±±ε÷Φα÷Φ , ∩ετΓεδ ■∙α σΣΦφεεß≡ατφε ε±≤∙σ±≥Γδ ≥ⁿ Σε±≥≤∩ Ω ≡ατφ√∞ "∩≡ε ΓδσφΦ ∞" εß·σΩ≥εΓ.
╨σ°σφΦ■ ±⌠ε≡∞≤δΦ≡εΓαφφεΘ ταΣα≈Φ ±δ≤µΦ≥ ε≈σφⁿ Γαµφα Γ Ωεφ÷σ∩≥≤αδⁿφε∞ ∩δαφσ ±∩σ÷Φ⌠ΦΩα÷Φ [4]. ╓σφ≥≡αδⁿφεσ ∞σ±≥ε Γ φσΘ ταφΦ∞ασ≥ ∩εφ ≥Φσ απ≡σπα≥α - ±≤∙φε±≥Φ, εßδαΣα■∙σΘ "∞φεπεπ≡αφφ√∞" ∩εΓσΣσφΦσ∞, ΣΦφα∞Φ≈σ±ΩΦ ≤φα±δσΣεΓαφφ√∞ ≤ ±εΓεΩ≤∩φε±≥Φ Ωδα±±εΓ (Φφ≥σ≡⌠σΘ±εΓ). ┬ απ≡σπα≥ Γ⌡εΣ ≥ ∩≡σΣ±≥αΓΦ≥σδΦ ±εε≥Γσ≥±≥Γ≤■∙Φ⌡ Ωδα±±εΓ, α ≥αΩµσ Ωεε≡ΣΦφα≥ε≡, ±∩ε±εßφ√Θ ∩ε τα∩≡ε±≤ Γ√ΣαΓα≥ⁿ φ≤µφεπε ∩≡σΣ±≥αΓΦ≥σδ .
╤∩σ÷Φ⌠ΦΩα÷ΦΦ φσ ∩≡σΣ≤±∞α≥≡ΦΓα■≥ Γφσ±σφΦ ΩαΩΦ⌡-δΦßε Φτ∞σφσφΦΘ Γ τ√Ω Java. └π≡σπα≥ Φ Γ⌡εΣ ∙ΦΘ Γ φσπε Ωεε≡ΣΦφα≥ε≡ ∩≡σΣ±≥αΓδσφ√ Φφ≥σ≡⌠σΘ±ε∞ Aggregate (±∞. δΦ±≥Φφπ 32). ╚φ≥σ≡⌠σΘ± Aggregate ±εΣσ≡µΦ≥ ∞σ≥εΣ√, ∩ετΓεδ ■∙Φσ ∩εδ≤≈Φ≥ⁿ ±±√δΩ≤ φα εß·σΩ≥ ≥≡σß≤σ∞επε Ωδα±±α Φ ε∩≡ε±Φ≥ⁿ ∩εΣΣσ≡µΦΓασ∞√Θ απ≡σπα≥ε∞ φαßε≡ Ωδα±±εΓ.
╘ε≡∞αδⁿφε ΩαµΣ√Θ ∩≡σΣ±≥αΓΦ≥σδⁿ Γδ σ≥± ±α∞ε±≥ε ≥σδⁿφ√∞ εß·σΩ≥ε∞, ∩≡ΦφαΣδσµα∙Φ∞ ±Γεσ∞≤ Ωδα±±≤, εΣφαΩε ± ΦΣσΘφεΘ ≥ε≈ΩΦ τ≡σφΦ ßεδσσ ∩≡αΓΦδⁿφε ±≈Φ≥α≥ⁿ, ≈≥ε ∞σ≥εΣ getInstanceOf () ΓετΓ≡α∙ασ≥ ≡ατφ√σ ∩≡ε ΓδσφΦ εΣφεπε (απ≡σπα≥φεπε) εß·σΩ≥α.
╤∩σ÷Φ⌠ΦΩα÷ΦΦ JavaBeans Γ ±εΓεΩ≤∩φε±≥Φ ± ∩≡σΣδαπασ∞√∞Φ Σε∩εδφσφΦ ∞Φ εß≡ατ≤■≥ ÷σδε±≥φ≤■ α≡⌡Φ≥σΩ≥≤≡≤ Ωε∞∩εφσφ≥φεΘ εß·σΩ≥φεΘ ±≡σΣ√, ∩ετΓεδ ■∙σΘ φαΩα∩δΦΓα≥ⁿ Φ ∞φεπεΩ≡α≥φε Φ±∩εδⁿτεΓα≥ⁿ ∩≡επ≡α∞∞Φ±≥±ΩΦσ τφαφΦ . ╙φΦΩαδⁿφ√∞ Σε±≥εΦφ±≥Γε∞ JavaBeans Γδ σ≥± Java-⌠≤φΣα∞σφ≥, ∩≡σΣε±≥αΓδ ■∙ΦΘ ±εΓ≡σ∞σφφ√Θ εß·σΩ≥φ√Θ τ√Ω, πα≡αφ≥Φ≡≤■∙ΦΘ ∞εßΦδⁿφε±≥ⁿ Φ Φφ⌠ε≡∞α÷Φεφφ≤■ ßστε∩α±φε±≥ⁿ ≡ατ≡αßα≥√Γασ∞επε ∩≡επ≡α∞∞φεπε εßσ±∩σ≈σφΦ .
╩ε∞∩εφσφ≥√ ±≡σΣ√ JavaBeans εΩατ√Γα■≥± ∞εßΦδⁿφ√∞Φ ΓΣΓεΘφσ. ╠ε±≥ Ω ActiveX αΓ≥ε∞α≥Φ≈σ±ΩΦ "ΓΩδαΣ√Γασ≥" Φ⌡ Γ ²≥≤ ±≡σΣ≤, α ±≡σΣ±≥Γα Java IDL ∩ε∞επα■≥ ε≡παφΦτεΓα≥ⁿ ΓταΦ∞εΣσΘ±≥ΓΦσ ± CORBA-ß≡εΩσ≡α∞Φ εß·σΩ≥φ√⌡ τα∩≡ε±εΓ.
╨ατ≡αßε≥Ωα ±∩σ÷Φ⌠ΦΩα÷ΦΘ JavaBeans ±δσΣεΓαδα Φ ±δσΣ≤σ≥ ≥≡αΣΦ÷Φ ∞ ε≥Ω≡√≥ε±≥Φ, ταδεµσφφ√∞ φα ∩≡σΣ√Σ≤∙Φ⌡ ²≥α∩α⌡ ≡ατΓΦ≥Φ Java-≥σ⌡φεδεπΦΦ. ╧α≡≥φσ≡α∞Φ JavaSoft Γ ²≥εΘ ≡αßε≥σ Γ√±≥≤∩αδΦ ≥αΩΦσ ΦτΓσ±≥φ√σ Ωε∞∩αφΦΦ, ΩαΩ Apple Computer, Borland International, IBM, Informix Software, Lotus Development, Netscape Communications, Novell, Oracle, Silicon Graphics, Sybase, Texas Instruments Φ ∞φεπΦσ Σ≡≤πΦσ. ╤∩σ÷Φ⌠ΦΩα÷ΦΦ Σε±≥≤∩φ√ Σδ ±ΓεßεΣφεπε ετφαΩε∞δσφΦ , Γφσ±σφΦ τα∞σ≈αφΦΘ Φ ∩≡σΣδεµσφΦΘ.
╧εδΦ≥ΦΩα ∩α≡≥φσ≡±≥Γα ±∩ε±εß±≥ΓεΓαδα ±ετΣαφΦ■ ∞φεπε≈Φ±δσφφ√⌡ Φφ±≥≡≤∞σφ≥αδⁿφ√⌡ εΩ≡≤µσφΦΘ, ∩εΣΣσ≡µΦΓα■∙Φ⌡ ∩≡ε÷σ±±√ ≡ατ≡αßε≥ΩΦ Φ Φφ≥σπ≡α÷ΦΦ Ωε∞∩εφσφ≥εΓ JavaBeans. ═ατεΓσ∞ Data Director for Java (Informix Software), Visual Age for Java (IBM), BeanMachine (Lotus Development), Cosmo Code (Silicon Graphics). ═α ∩εΣ⌡εΣσ JBuilder (Borland International), Visual JavaScript (Netscape Communications), Java Studio Φ Java Workshop (SunSoft), PowerJ (Sybase) Φ Σ≡.
╨ατ≡αßε≥≈ΦΩΦ, Σσδα■∙Φσ ±≥αΓΩ≤ φα JavaBeans, φσ ≡Φ±Ω≤■≥ ∩≡εΦπ≡α≥ⁿ. ▌≥α Ωε∞∩εφσφ≥φα εß·σΩ≥φα ±≡σΣα Γ±≥≤∩ασ≥ Γ ∩ε≡≤ τ≡σδε±≥Φ, εßδαΣα Γ±σ∞Φ Ωα≈σ±≥Γα∞Φ, φσεß⌡εΣΦ∞√∞Φ Σδ ≤±∩σ°φεπε ∩≡εΣΓΦµσφΦ .