All Libraries | This Library | Package | Class | Use | Tree | Deprecated | Index | Grand Index | Help
|  | Foundation |
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

*** This class provides Binary Compatibility only, not Source Compatibility ***

## com.sas.services.discovery
Class IsRemotelyAccessibleAttribute

    com.sas.services.discovery.IsRemotelyAccessibleAttribute

All Implemented Interfaces:
  ServiceAttributeInterface, java.io.Serializable

    public final class IsRemotelyAccessibleAttribute

A foundation service discovery attribute which may be used to locate a service based on whether or not it can be accessed by remote clients.

When a service is deployed, an `IsRemotelyAccessibleAttribute` will be added to its service discovery configuration. This will enable one to find a service based on its remotely accessibility configuration.

A foundation service is represented in a SAS Metadata Repository as a `ServiceComponent` metadata element. This element has an associated `Property` whose `PropertyName` attribute is "isRemotelyAccessible". This service lookup attribute represents this property setting.

The Foundation Services Manager plug-in to the SAS Management Console provides the capability to view/edit this property for a foundation service.

## Examples

Examples are provided to find a service that is:

- accessible to remote clients
- not accessible to remote clients

## Example 1: Find a service that is accessible to remote clients

To find a service that is accessible to remote clients, define a service template that specifies one or more interfaces that the desired service must implement and a `IsRemotelyAccessibleAttribute` initialized to Boolean.TRUE.

The following example shows how to define a service template that can be used to discover a foundation Authentication service that is accessible to remote clients.

     import com.sas.services.discovery.DiscoveryService;
     import com.sas.services.discovery.IsRemotelyAccessibleAttribute;
     import com.sas.services.discovery.ServiceAttributeInterface;
     import com.sas.services.discovery.ServiceTemplate;
     import com.sas.services.security.AuthenticationServiceInterface;

     ...

     // specify the desired service type(s)
     Class[] desiredServiceTypes = new Class[] {
        AuthenticationServiceInterface.class};

     // specify the optional attributes to be used to qualify a discovery lookup
     // to include only those services which are accessible to remote clients
     ServiceAttributeInterface[] serviceAttributes =
        new ServiceAttributeInterface[] {
           new IsRemotelyAccessibleAttribute(
              Boolean.TRUE)}; // is accessible to remote clients

     // create a service lookup template specifying the required
     // service interface(s) and a service attribute for a
     // service that is accessible to remote clients
     ServiceTemplate serviceTemplate = new ServiceTemplate(
        desiredServiceTypes,
        serviceAttributes);

     // discover a service satisfying the service template
     AuthenticationServiceInterface authenticationService = (AuthenticationServiceInterface)
        DiscoveryService.defaultInstance().findService(serviceTemplate);

## Example 2: Find a service that is not accessible to remote clients

To find a service that is not accessible to remote clients, define a service template that specifies one or more interfaces that the desired service must implement and a `IsRemotelyAccessibleAttribute` initialized to Boolean.FALSE.

The following example shows how to define a service template that can be used to discover a foundation Authentication service that is not accessible to remote clients.

     import com.sas.services.discovery.DiscoveryService;
     import com.sas.services.discovery.IsRemotelyAccessibleAttribute;
     import com.sas.services.discovery.ServiceAttributeInterface;
     import com.sas.services.discovery.ServiceTemplate;
     import com.sas.services.security.AuthenticationServiceInterface;

     ...

     // specify the desired service type(s)
     final Class[] desiredServiceTypes = new Class[] {
        AuthenticationServiceInterface.class};

     // specify the optional attributes to be used to qualify a discovery lookup
     // to include only those services which are not accessible to remote clients
     final ServiceAttributeInterface[] serviceAttributes =
        new ServiceAttributeInterface[] {
           new IsRemotelyAccessibleAttribute(
              Boolean.FALSE)}; // not accessible to remote clients

     // create a service lookup template specifying the required
     // service interface(s) and a service attribute for a
     // service that is not accessible to remote clients
     final ServiceTemplate serviceTemplate = new ServiceTemplate(
        desiredServiceTypes,
        serviceAttributes);

     // discover a service satisfying the service template
     final AuthenticationServiceInterface authenticationService = (AuthenticationServiceInterface)
        DiscoveryService.defaultInstance().findService(serviceTemplate);

Since:
  1.1
See Also:
  Serialized Form

Field Summary
`java.lang.Boolean` | `isRemotelyAccessible` An ID associated with a service.

Constructor Summary
`IsRemotelyAccessibleAttribute()` Constructs a default instance with a `null` indicating that it is unknown whether or not the service is intended to be remotely accessible.
`IsRemotelyAccessibleAttribute(java.lang.Boolean attributeIsRemotelyAccessible)` Constructs an instance initialized with a flag indicating whether or not the service is intended to be accessed remotely.

Method Summary
`java.util.Map<java.lang.String,java.lang.String>` | `getFieldNameToValueMap()` Gets a map of this attribute's fields and their values.

Methods inherited from class com.sas.services.AbstractServiceAttribute
`equals, hashCode, toString`

Field Detail

### isRemotelyAccessible

    public java.lang.Boolean isRemotelyAccessible

  An ID associated with a service.

Constructor Detail

### IsRemotelyAccessibleAttribute

    public IsRemotelyAccessibleAttribute()

  Constructs a default instance with a `null` indicating that it is unknown whether or not the service is intended to be remotely accessible.

### IsRemotelyAccessibleAttribute

    public IsRemotelyAccessibleAttribute(java.lang.Boolean attributeIsRemotelyAccessible)

  Constructs an instance initialized with a flag indicating whether or not the service is intended to be accessed remotely.

  Parameters:
    `attributeIsRemotelyAccessible` - `Boolean.TRUE` if the service is intended to be accessed remotely, `Boolean.FALSE` if the service is not intended to be accessed remotely. Specify `null` if remote accessibility is a don't care.

Method Detail

### getFieldNameToValueMap

    public java.util.Map<java.lang.String,java.lang.String> getFieldNameToValueMap()

  Gets a map of this attribute's fields and their values.
  - isRemotelyAccessible - whether or not the service is configured to be accessed by clients in remote JVMs

  Overrides:
    `getFieldNameToValueMap` in class `AbstractServiceAttribute`
  Returns:
    Map keyed by the `String` names of a field to their values.

*** This class provides Binary Compatibility only, not Source Compatibility ***

All Libraries | This Library | Package | Class | Use | Tree | Deprecated | Index | Grand Index | Help
|  | Foundation |
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2009 SAS Institute Inc. All Rights Reserved.