throbber
INIW
`
`A Collection of JiniTM
`
`Technology Helper
`Utilities and Services
`
`Specifications
`
`This Collection of JiniTM Technology Helper Utilities and
`Services Specifications defines a set of standard helper utilities
`and services which extend the Jini Technology Core Platform.
`These helper utilities and services encapsulate desirable
`behaviors in the form of a set ofreusable components that can be
`used to help simplify the process ofdeveloping Jini technology-
`enabled clients and services (Jim' clients andservices) for the Jini
`technology application environment. Employing these utilities
`and services to build such desirable behavior into a Jini client or
`
`service can help to avoid poor design and implementation
`decisions, greatly simplifying the development process.
`
`®«Mun
`
`microsystems
`
`Version 1.1
`October 2000
`
`1
`
`APPLE 1020
`
`1
`
`APPLE 1020
`
`

`

`ii
`
`Copyright © 2000 Sun Microsystems, Inc.
`901 San Antonio Road, Palo Alto, CA 94303 USA.
`All rights reserved.
`
`Sun Microsystems, Inc. has intellectual property rights (“Sun IPR”) relating to implementations of the technology
`described in this publication (“the Technology”). In particular, and without limitation, Sun IPR may include one or more
`patents or patent applications in the US. or other countries. Your limited right to use this publication does not grant you any
`right or license to Sun IPR nor any right or license to implement the Technology. Sun may, in its sole discretion, make
`available a limited license to Sun IPR and/or to the Technology under a separate license agreement. Please visit http://
`WWW. sun. com/software/communitysource/.
`
`Sun, the Sun logo, Sun Microsystems, Jini, the Jini logo, JavaSpaces, Java, and JavaBeans are trademarks or registered
`trademarks of Sun Microsystems, Inc. in the United States and other countries.
`
`THIS SPECIFICATION IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
`IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FIT-
`NESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
`
`THIS SPECIFICATION COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS.
`CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN; THESE CHANGES WILL BE
`INCORPORATED IN NEW EDITIONS OF THE SPECIFICATION. SUN MICROSYSTEMS, INC. MAY MAKE
`IMPROVEMENTS AND/OR CHANGES IN ANY TECHNOLOGY, PRODUCT, OR PROGRAM DESCRIBED IN
`THIS SPECIFICATION AT ANY TIME.
`
`2
`
`

`

`
`
`
`
`Contents
`
`US Introduction to Helper Utilities and Services ............ 1
`
`US.1 Summary ................................................ 1
`US.2 Terminology ............................................. 3
`US.2.1 Terms Related to Discovery and Join ..................... 3
`US.2.2 Jini Clients and Services ............................... 4
`
`US.2.3 Helper Service ....................................... 4
`
`US.2.4 Helper Utility ........................................ 5
`US.2.5 Managed Sets ........................................ 5
`US.2.6 What Exceptions Imply about Future Behavior ............. 5
`US.2.7 Unavailable Lookup Services ........................... 7
`US.2.8 Discarding a Lookup Service ........................... 8
`US.2.8.1 Active Communication Discarded Event .......... 8
`
`US.2.8.2 Active No-Interest Discarded Event .............. 9
`
`US.2.8.3 Passive Communication Discarded Event ......... 9
`
`US.2.8.4 Passive No-Interest Discarded Event ............. 9
`
`US.2.8.5 Changed Event ............................. 10
`US.2.8.6 Remote Objects, Stubs, and Proxies ............. 10
`US.2.9 Activation ......................................... 12
`
`US.3 Introduction to the Helper Utilities ..................... 13
`US.3.1 The Discovery Utilities ............................... 13
`US.3.1.1
`The D'i scove ryManagement Interface .......... 14
`
`US.3.1.2 The D1" scove ryGroupManagement Interface ..... 14
`
`US.3.1.3 The D'i scoveryLocatorManagement Interface .
`
`.
`
`. 14
`
`US.3.1.4 The LookupD‘i scove ry Helper Utility .......... 14
`US.3.1.5 The LookupLocatorDi scovery Helper Utility .
`.
`. 15
`US.3.1.6 The LookupD‘i scoveryManager Helper Utility .
`.
`. 15
`US.3.1.7 The Constants Class ....................... 15
`
`US.3.1.8 The Outgoi ngMul t1" castRequest Utility ....... 15
`US.3.1.9 The Incom‘i ngMu'l t'i castRequest Utility ....... 15
`US.3.1.10 The Outgoi ngMul t1" castAnnouncement Utility .
`. 16
`
`3
`
`

`

`iv
`
`[38.31.11 The Incomi ngMul ti castAnnouncement Utility . 16
`US.3.1.12 The Outgoi ngUni castRequest Utility ........ 16
`[38.31.13 The Incomi ngUm' castRequest Utility ........ 16
`
`[38.31.14 The Outgoi ngUm' castResponse Utility ....... 16
`US.3.1.15 The Incomi ngUni castResponse Utility ....... 16
`US.3.2 The Lease Utilities .................................. 17
`
`The LeaseRenewal Manager Helper Utility ...... 17
`US.3.2.1
`US.3.3 The Join Utilities .................................... 17
`
`
`
`The 301' nManager Helper Utility .............. l7
`[38.3.3.1
`US.3.4 The Service Discovery Utilities ........................ 18
`[38.341
`The Se rvi ceDi scoveryManager Helper Utility. . 18
`USA Introduction to the Helper Services ..................... 19
`US.4.1 The Lookup Discovery Service ........................ l9
`US.4.2 The Lease Renewal Service ........................... 19
`
`US.4.3 The Event Mailbox Service ........................... 20
`
`USS Dependencies ........................................... 21
`
`DU Jini Discovery Utilities Specification .................... 23
`
`DU.1 Introduction ............................................ 23
`
`DU.1.1 Dependencies ...................................... 23
`DU.2 The Discovery Management Interfaces ................. 25
`DU.2.1 Overview .......................................... 25
`
`DU.2.2 Other Types ........................................ 26
`DU.2.3 The D1" scove ryManagement Interface ................... 27
`DU.2.3.1 The Semantics ............................. 27
`
`DU.2.4 The D1" scove ryGroupManagement Interface .............. 30
`DU.2.4.1 The Semantics ............................. 30
`
`DU.2.5 The D'i scove ryLocatorManagement Interface ............ 32
`DU.2.5.1 The Semantics ............................. 33
`
`DU.2.6 Supporting Interfaces and Classes ...................... 34
`DU.2.6.1 The Di scoveryL‘i stener Interface ............ 34
`
`DU.2.6.2 The D1' scoveryChangeLi stener Interface ...... 35
`
`DU.2.6.3 The Di scoveryEvent Class .................. 36
`DU.2.7 Serialized Forms .................................... 38
`
`DU.3 LookupD'i scover'y Utility ............................... 39
`DU.3.1 Other Types ........................................ 39
`DU.3.2 The Interface ....................................... 40
`
`DU.3.3 The Semantics ...................................... 40
`
`DU.3.4 Supporting Interfaces and Classes ...................... 41
`DU.3.4.1 The D1' scove ryManagement Interfaces ......... 41
`
`DU.3.4.2 Security and Multicast Discovery: The
`42
`D1" scove ryPe mi 551' on Class
`DU.3.5 Serialized Forms .................................... 43
`
`4
`
`

`

`DU.4 The LookupLocator'Di scover'y Utility .................. 45
`DU.4.1 Overview .......................................... 45
`
`DU.4.2 Other Types ........................................ 46
`DU.4.3 The Interface ....................................... 46
`
`DU.4.4 The Semantics ...................................... 47
`
`DU.4.5 Supporting Interfaces ................................. 48
`DU.4.5.1 The Di scove ryManagement Interfaces .......... 48
`The LookupDi scover'yManager' Utility .................. 49
`DU.5.1 Overview .......................................... 49
`
`DU.5
`
`DU.5.2 Other Types ........................................ 49
`DU.5.3 The Interface ....................................... 50
`
`DU.5.4 The Semantics ...................................... 50
`
`DU.5.5 Supporting Interfaces and Classes ....................... 53
`DU.5.5.1 The Di scove ryManagement Interfaces .......... 53
`
`DU.5.5.2 Security and Multicast Discovery: The
`Di scoveryPermission Class
`53
`Low-Level Discovery Protocol Utilities .................. 55
`DU.6.1 The Constants Class ................................ 55
`DL'.6.1.1 Overview ................................. 55
`
`DU.6
`
`DU.6.1.2 Other Types ............................... 55
`DU.6.1.3 The Class Definition ......................... 56
`
`DL'.6.1.4 The Semantics ............................. 56
`
`DU.6.2 The Outgoi ngMuI ti castRequest Utility ................ 57
`DU.6.2.1 Overview ................................. 57
`
`DL'.6.2.2 Other Types ............................... 57
`DL'.6.2.3 The Interface ............................... 57
`
`DU.6.2.4 The Semantics ............................. 58
`
`DU.6.3 The Incomi ngMuI ti castRequest Utility ................ 58
`DL'.6.3.1 Overview ................................. 58
`
`DU.6.3.2 Other Types ............................... 59
`DU.6.3.3 The Interface ............................... 59
`
`DL'.6.3.4 The Semantics ............................. 59
`
`DU.6.4 The Outgoi ngMuI ti castAnnouncement Utility ........... 60
`DU.6.4.1 Overview ................................. 60
`
`DL'.6.4.2 Other Types ............................... 60
`DL'.6.4.3 The Interface ............................... 61
`
`DU.6.4.4 The Semantics ............................. 61
`
`DU.6.5 The Incomi ngMuI ti castAnnouncement Utility ........... 62
`DL'.6.5.1 Overview ................................. 62
`
`
`
`DL'.6.5.2 Other Types ............................... 62
`DU.6.5.3 The Interface ............................... 63
`
`DL'.6.5.4 The Semantics ............................. 63
`
`DU.6.6 The Outgoi ngUni castRequest Utility .................. 64
`DU.6.6.1 Overview ................................. 64
`
`DU.6.6.2 Other Types ............................... 64
`
`5
`
`

`

`vi
`
`DU.6.6.3 The Interface .............................. 64
`
`DU.6.6.4 The Semantics ............................. 64
`
`DU.6.7 The Incomi ngUn1' castRequest Utility .................. 65
`DU.6.7.1 Overview ................................. 65
`
`DU.6.7.2 Other Types ............................... 65
`DU.6.7.3 The Interface .............................. 65
`
`DU.6.7.4 The Semantics ............................. 66
`
`DU.6.8 The Outgoi ngUn'i castResponse Utility ................. 66
`DU.6.8.1 Overview ................................. 66
`
`DU.6.8.2 Other Types ............................... 66
`DU.6.8.3 The Interface .............................. 67
`
`DU.6.8.4 The Semantics ............................. 67
`
`DU.6.9 The Incomi ngUn1' castResponse Utility ................. 68
`DU.6.9.1 Overview ................................. 68
`
`DU.6.9.2 Other Types ............................... 68
`DU.6.9.3 The Interface .............................. 68
`
`DU.6.9.4 The Semantics ............................. 68
`
`EU Jini Entry Utilities Specification ......................... 71
`
`EU.1 Entry Utilities .......................................... 71
`EU.1.1 AbstractEntry .................................... 71
`EU.1.2 Serialized Form ..................................... 72
`
`LM Jini Lease Utilities Specification ......................... 73
`
`LM.1 Introduction ............................................ 73
`
`LM.2 The LeaseRenewa'l Manager ............................. 75
`LM.2.1 Other Types ........................................ 76
`LM.3 The Interface ........................................... 77
`
`LM.4 The Semantics .......................................... 79
`
`LM.5 Supporting Interfaces and Classes ...................... 87
`LM.5.1 The LeaseL'i stener Interface ......................... 87
`
`LM.5.1.1 The Semantics ............................. 88
`
`LM.5.2 The Desi redExpi rationLi stener Interface ............. 88
`LM.5.2.1 The Semantics ............................. 89
`
`LM.5.3 The LeaseRenewal Event Class ........................ 89
`
`LM.5.3.1 The Semantics ............................. 90
`
`LM.5.4 Serialized Forms .................................... 91
`
`JU Jini Join Utilities Specification ........................... 93
`
`JU.1 Introduction ............................................ 93
`
`JU.2 The Jo-i nManager' ....................................... 95
`JU.2.1 Other Types ........................................ 96
`
`6
`
`

`

`vii
`
`JU.3 The Interface ........................................... 97
`
`JU.4 The Semantics .......................................... 99
`
`JU.5 Supporting Interfaces and Classes .................... 105
`JU.5.1 The D1' scove ryManagement Interface .................. 105
`IU.5.2 The Se rvi ceIDLi stener Interface .................... 106
`
`SD Jini Service Discovery Utilities Specification ......... 107
`
`SD.1 Introduction .......................................... 107
`
`SD.2 The Ser'V'i ceD'i scover'yManager' ...................... 109
`SD.2.1 The Object Types ................................... 111
`SD.3 The Interface ......................................... 113
`
`SD.4 The Semantics ........................................ 115
`SD.4.1 The Methods ...................................... 115
`
`SD.4.1.1 The Constructor ........................... 115
`
`SD.4.1.2 The createLookupCache Method ............. 116
`
`SD.4.1.3 The ‘Iookup Method ........................ 120
`
`SD.4.1.4 The getDi scove ryManager Method .......... 123
`
`SD.4.1.5 The getLeaseRenewa'l Manager Method ....... 124
`SD.4.1.6 The terminate Method ..................... 124
`
`SD.4.2 Defining Service Equality ............................ 125
`SD.4.3 Exporting RemoteEventL'i stener Objects .............. 126
`SD.5 Supporting Interfaces and Classes .................... 129
`SD.5.1 The Di scove ryManagement Interface .................. 129
`SD.5.2 The Se rvi ceItemFi 1 ter Interface .................... 130
`
`SD.5.2.1 The Semantics ............................ 131
`
`SD.5.3 The Se rV'i ceD'i scoveryEvent Class ................... 131
`SD.5.3.1 The Semantics ............................ 132
`
`SD.5.4 The Se rV'i ceD'i scoveryL'i stener Interface ............. 133
`SD.5.4.1 The Semantics ............................ 133
`
`SD.5.5 The LookupCache Interface .......................... 135
`SD.5.5.1 The Semantics ............................ 135
`
`LS Jini Lookup Attribute Schema Specification ......... 141
`
`LS.1 Introduction ........................................... 141
`
`LS.1.1 Terminology ...................................... 142
`LS.1.2 Design Issues ...................................... 142
`LS.1.3 Dependencies ...................................... 143
`LS.2 Human Access to Attributes .......................... 145
`
`L821 Providing a Single View of an Attribute’s Value .......... 145
`LS.3 JavaBeans Components and Design Patterns ......... 147
`L831 Allowing Display and Modification of Attributes .......... 147
`LS.3.1.1 Using JavaBeans Components with Entry Classes
`147
`
`7
`
`

`

`viii
`
`. 148
`.
`.
`LS.3.2 Associating JavaBeans Components with Entry Classes .
`LS.3.3 Supporting Interfaces and Classes ..................... 150
`LS.4 Generic Attribute Classes ............................. 151
`
`L841 Indicating User Modifiability ......................... 151
`LS.4.2 Basic Service Information ........................... 151
`
`LS.4.3 More Specific Information ........................... 153
`
`LS.4.4 Naming a Service .................................. 154
`LS.4.5 Adding a Comment to a Service ....................... 154
`LS.4.6 Physical Location .................................. 155
`LS.4.7 Status Information .................................. 156
`
`LS.4.8 Serialized Forms ................................... 157
`
`LD Jini Lookup Discovery Service ......................... 159
`
`LD.1 Introduction ........................................... 159
`
`LD.1.1 Goals and Requirements ............................. 162
`LD.1.2 Other Types ....................................... 162
`LD.2 The Interface .......................................... 163
`
`LD.3 The Semantics ......................................... 165
`
`LD.3.1 Registration Semantics .............................. 165
`LD.3.2 Event Semantics ................................... 168
`
`LD.3.3 Leasing Semantics ................................. 170
`LD.4 Supporting Interfaces and Classes ..................... 171
`LD.4.1 The LookupDi scove ryRegi st ration Interface .......... 171
`LD.4.1.1 The Semantics ............................ 173
`
`LD.4.2 The RemoteD‘i scove ryEvent Class .................... 180
`LD.4.2.1 The Semantics ............................ 182
`
`LD.4.2.2 Serialized Forms .......................... 184
`
`LD.4.3 The LookupUnmarshal Exception Class ............... 184
`LD.4.3.1 The Semantics ............................ 186
`
`LD.4.3.2 Serialized Forms .......................... 187
`
`LR Jini Lease Renewal Service Specification ............. 189
`
`LR.1 Introduction ........................................... 189
`
`LR.1.1 Goals and Requirements ............................ 190
`
`LR.1.2 Other Types ....................................... 191
`LR.2 The Interface .......................................... 193
`LR.2.1 Events ........................................... 200
`
`LR.2.2 Serialized Forms ................................... 204
`
`EM Jini Event Mailbox Service Specification ............. 205
`
`EM.1 Introduction ........................................... 205
`
`EM.1.1 Goals and Requirements ............................. 206
`
`8
`
`

`

`EM.1.2 Other Types ....................................... 206
`EM.2 The Interface ......................................... 207
`
`EM.3 The Semantics ........................................ 209
`
`EM.4 Supporting Interfaces and Classes .................... 211
`EM.4.1 The Semantics ..................................... 212
`
`ix
`
`9
`
`

`

`10
`
`10
`
`

`

`
`
`US
`
`
`
`Introduction to Helper
`Utilities and Services
`
`US.1 Summary
`
`WHEN developing clients and services that will participate in the application
`environment for JiniTM technology, there are a number of behaviors that the devel-
`oper may find desirable to incorporate in the client or service. Some of these
`behaviors may satisfy requirements described in the specifications of various Jini
`technology components; some behaviors may simply represent design practices
`that are desirable and should be encouraged. Examples of the sort of behavior that
`is required or desirable include the following:
`
`9 It is a requirement of the Jini discovery protocols that a service must con-
`tinue to listen for and act on announcements from lookup services in which
`the service has registered interest.
`
`9 It is a requirement of the Jini discovery protocols that, until successful, a ser-
`vice must continue to attempt to join the specific lookup services with which
`it has been configured to join.
`
`9 Under many conditions, a Jini technology-enabled client (Jim' client) or ser-
`vice will wish to regularly renew leases that it holds. For example, when a
`Jini technology-enabled service (Jim' service) registers with a Jini lookup
`service, the service is requesting residency in the lookup service. Residency
`in a lookup service is a leased resource. Thus, when the requested residency
`is granted, the lookup service also imposes a lease on that residency. Typi-
`cally, such a registered service will wish to extend the lease on its residency
`
`11
`
`11
`
`

`

`SUMMAR Y
`
`beyond the original expiration time, resulting in a need to renew the lease on
`a regular basis.
`
`9 Many Jini services will need to maintain a dormant (inactive) state, becom-
`ing active only when needed.
`
`9 Many Jini clients and services will need to have a mechanism for finding and
`managing Jini services.
`
`0 Many Jini clients and services will find it desirable to employ a separate ser-
`vice that will handle events, in some useful way, on behalf of the participant.
`
`To help simplify the process of developing clients and services for the appli-
`cation environment for Jini technology (Jini application environment), several
`specifications in this document collection define reusable components that encap-
`sulate behaviors such as those outlined above. Employing such utilities and ser-
`vices to build such desirable behavior into a Jini client or service can help to avoid
`poor design and implementation decisions, greatly simplifying the development
`process.
`
`What is presented first is terminology that may be helpful when analyzing
`these specifications. Following the section on terminology, brief summaries of the
`content of each of the current helper utilities and services specifications are pro-
`vided. Finally, the other specifications on which these specifications depend are
`listed for reference.
`
`12
`
`12
`
`

`

`INTRODUCTION TO HELPER UTILITIES AND SERVICES, version 1.1
`
`3
`
`
`
`
`US.2 Terminology
`
`THIS section defines terms and discusses concepts that may be referenced
`throughout the helper utilities and services specifications. While the terms and
`concepts that appear in this section are general in nature and may apply to multi-
`ple components specified in this collection, each specification may define addi-
`tional terms and concepts to further facilitate the understanding of a particular
`component. Each specification may also present supplemental information about
`some of the terms defined in this section and their relationship with the compo-
`nent being specified.
`Because this document makes use of a number of terms defined in the “JiniTM
`
`Technology Glossary”, reviewing the glossary is recommended. A number of the
`terms defined in the glossary are also defined in this section to provide easy refer-
`ence because those terms are used extensively in the helper utilities and services
`specifications. Additionally, this section augments the definitions of some of the
`terms from the glossary with details relevant to those specifications.
`In addition to the glossary, the JiniTM Technology Core Platform Specification
`(referred to as the core specification) presents detailed definitions of a number of
`terms and concepts appearing both in this section and throughout the helper utili-
`ties and services specifications. When appropriate, the relevant specification will
`be referenced.
`
`US.2.1 Terms Related to Discovery and Join
`
`The Jini Technology Core Platform Specification, “Discovery and Join ”, defines a
`discovering entity as one or more cooperating software objects written in the
`JavaTM programming language (Java software objects), executing on the same
`host, that are in the process of obtaining references to Jini lookup services. That
`specification also defines a joining entity as one or more cooperating Java soft-
`ware objects, on the same host, that have received a reference to a lookup service
`and are in the process of obtaining services from, and possibly exporting services
`to, a federation of Jini technology-enabled services and/or devices and Jini lookup
`services referred to as a aj'inn. The lookup services comprising a djinn may be
`
`A COLLECTION OF JINITM TECHNOLOGY HELPER UTILITIES AND SER VICES SPECIFICA TIONS
`
`13
`
`13
`
`

`

`TERMINOLOGY
`
`organized into one or more sets known as groups. Multiple groups may or may not
`be disjoint. Each group of lookup services is identified by a logical name repre-
`sented by a St ri ng object.
`The Jini Technology Core Platform Specification, “Discovery and Join”
`defines two protocols used in the discovery process: the multicast discovery proto-
`col and the unicast discovery protocol.
`When a discovering entity employs the multicast discovery protocol to dis-
`cover lookup services that are members of one or more groups belonging to a set
`of groups, that discovery process is referred to as group discovery.
`The utility class net.j1'n1' .core.d1' scovery. LookupLocator is defined in
`The Jini Technology Core Platform Specification, “Discovery and Join”. Any
`instance of that class is referred to as a locator. When a discovering entity
`employs the unicast discovery protocol to discover specific lookup services, each
`corresponding to an element in a set of locators, that discovery process is referred
`to as locator discovery.
`
`US.2.2
`
`Jini Clients and Services
`
`For the purposes of the helper utilities and services specifications, a Jini client is
`defined as a discovering entity that can retrieve a service (or a remote reference to
`a service) registered with a discovered lookup service and invoke the methods of
`the service to meet the entity’s requirements. An entity that acts only as a client
`never registers with (requests residency in) a lookup service.
`A Jini service is defined as both a discovering and a joining entity containing
`methods that may be of use to some other Jini client or service, and which regis-
`ters with discovered lookup services to provide access to those methods. Note that
`a Jini service can also act as a Jini client.
`
`The term client-like entity may be used, in general, when referring to Jini cli-
`ents and Jini services that act as clients.
`
`Note that when the term entity is used, that term may be referring to a discov-
`ering entity, a joining entity, a client-like entity, a service, or some combination of
`these types of entities. Whenever that general term is used, it should be clear from
`the context what type of entity is being discussed.
`
`US.2.3 Helper Service
`
`A Jini technology-enabled helper service is defined in this document as an inter-
`face or set of interfaces, with an associated implementation, that encapsulates
`behavior that is either required or highly desirable in service entities that adhere to
`
`14
`
`14
`
`

`

`INTRODUCTION TO HELPER UTILITIES AND SERVICES, version 1.1
`
`the Jini technology programming model (or simply the Jini programming model).
`A helper service is a Jini service that can be registered with any number of lookup
`services and whose methods can execute on remote hosts.
`
`In general, a helper service should be of use to more than one type of entity
`participating in the Jini application environment and should provide a significant
`reduction in development complexity for developers of such entities.
`
`US.2.4 Helper Utility
`
`This document distinguishes between a helper utility and a helper service. Helper
`utilities are programming components that can be used during the construction of
`Jini services and/or clients. Helper utilities are not remote and do not register with
`a lookup service. Helper utilities are instantiated locally by entities wishing to
`employ them.
`
`US.2.5 Managed Sets
`
`When performing discovery duties, entities will often maintain references to dis-
`covered lookup services in a set referred to as the managed set of lookup services.
`The entity may also maintain two other notable sets: the managed set of groups
`and the managed set aflocators.
`Each element of the managed set of groups is a name of a group whose mem-
`bers are lookup services that the entity wishes to be discovered via group discov-
`ery. The managed set of groups is typically represented as a String array, or a
`Co11ect1'on of Stri ng elements.
`
`Each element of the managed set of locators corresponds to a specific lookup
`service that the entity wishes to be discovered Via locator discovery. Typically, this
`set is represented as an array of net .j1'n1' .core . d1' scove ry. LookupLocator
`objects or some other C01 1 ecti on type whose elements are LookupLocator
`objects.
`Note that when the general term managed set is used, it should be clear from
`the context whether groups, locators, or lookup services are being discussed.
`
`US.2.6 What Exceptions Imply about Future Behavior
`
`When interacting with a remote object, an entity may call methods that result in
`exceptions. The specification of those methods should define what each possible
`exception implies (if anything) about the current state of the object. One important
`
`A COLLECTION OF JINITM TECHNOLOGY HELPER UTILITIES AND SER VICES SPECIFICA TIONS
`
`15
`
`15
`
`

`

`TERMINOLOGY
`
`aspect of an object’s state is whether or not fiirther interactions with the object are
`likely to be fruitfiJl. Throughout the helper utilities and services specifications, the
`following general terms may be used to classify what a given exception implies
`about the probability of success of future operations on the object that threw the
`exception:
`
`0 Bad object exception: If a method invocation on an object throws a bad
`object exception, it can be assumed that any further operations on that object
`will also fail.
`
`9 Bad invocation exception: If a method invocation on an object throws a bad
`invocation exception, it can be assumed that any retries of the same method
`with the same arguments that are expected to return the same value will also
`fail. No new assertions can be made about the probability of success of any
`future invocation of that method with different arguments or if a different
`return value is expected, nor can any new assertions be made about the prob-
`ability of success of invocations of the object’s other methods.
`
`0 Indefinite exception: If a method invocation on an object throws an indefinite
`exception, no new assertions can be made about the probability of success of
`any future invocation of that method, regardless of the arguments used or
`return value expected, nor can any new assertions be made about the proba-
`bility of success of any other operation on the same object.
`
`Unless otherwise noted, the throwing of a bad object, bad invocation, or indef-
`inite exception by one object does not imply anything about the state of another
`object, even if both objects are associated with the same remote entity.
`These terms can be used in the specification of a method to describe the mean-
`ing of exceptions that might be thrown, as well as in the specification of what a
`given utility or service will, may, or should do when it receives an exception in the
`course of interacting with a given object.
`If a specification does not say otherwise, the following classification is used to
`categorize each RuntimeException, Error, or java. rmi .RemoteExceptions as
`a bad object, bad invocation, or indefinite exception:
`
`0 Bad object exceptions:
`
`' Any java. 1ang . Runt‘imeExcepti on
`
`‘ Any java. 1ang . Error except one that is a java. 1 ang . L1' nkageError or
`
`java. 1 ang .OutOfMemoryError
`
`‘ Any java. rm1' .NoSuchObjectExcepti on
`
`16
`
`16
`
`

`

`INTRODUCTION TO HELPER UTILITIES AND SERVICES, version 1.1
`
`7
`
`a Any java. rm1' .Ser‘verEr‘ror‘ with a detail field that is a bad object
`exception
`
`‘ Any java. rmi . Se rverExcepti on with a detail field that is a bad object
`exception
`
`9 Bad invocation exceptions:
`
`‘ Any java.rmi.MarshalException with a detail
`
`field that
`
`is a
`
`java.1'o.0bjectStreamExcept1'on
`
`‘ Any java.rmi.Unmarsha1 Exception with a detail
`
`field that
`
`is a
`
`java.1'o.0bjectStreamExcept1'on
`
`‘ Any java. rmi . Se rverExcepti on with a detail field that is a bad invo-
`cation exception
`
`9 Indefinite exceptions
`
`‘ Any java.1ang.0utOfMemoryError
`
`' Any java.1ang . L1' nkageError
`
`' Any java. rm1' .RemoteException except those that can be classified as
`either a bad invocation or bad object exception
`
`US.2.7 Unavailable Lookup Services
`
`While interacting (or attempting to interact) with a lookup service, an entity may
`encounter one of the exception types described in the previous section. When the
`entity does receive such an exception, what may be concluded about the state of
`the lookup service is dependent on the type of exception encountered.
`If an entity encounters a bad object exception while interacting with a lookup
`service, the entity can usually conclude that the associated proxy it holds can no
`longer be used to interact with the lookup service. This can be due to any number
`of reasons. For example, if the lookup service is administratively destroyed, the
`old proxy will never be capable of communicating with any new incarnations of
`the lookup service, allowing the entity to dispose of the old proxy since it is no
`longer of any use to the entity.
`If an indefinite exception occurs while interacting with a lookup service, the
`entity can interpret such an occurrence as a communication failure that may or
`may not be only temporary.
`Finally, entities that encounter a bad invocation exception while interacting
`with a lookup service should view the lookup service as being in an unknown,
`
`A COLLECTION OF JINITM TECHNOLOGY HELPER UTILITIES AND SER VICES SPECIFICA TIONS
`
`17
`
`17
`
`

`

`TERMINOLOGY
`
`possibly corrupt state, and should discontinue further interaction with that lookup
`service until the problem is resolved.
`Whenever an entity receives any of these exceptions while interacting with a
`lookup service,
`the affected lookup service is referred to as unavailable or
`unreachable. For most entities the unavailability of a particular lookup service
`should not prevent the entity from continuing its processing, although in other sit-
`uations an entity might consider at least some of these exceptional conditions
`unrecoverable. In general, when an entity encounters an unreachable lookup ser-
`vice, the exception or error indicating that the lookup service is unavailable should
`be caught and handled, usually by requesting

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket