|
Foundation Services
A service deployment is a configuration of a collection of
SAS Foundation Services that specifies the data necessary to instantiate the services, as well as dependencies upon
other services. You create service deployments for applications that will deploy or access the services. You can store the service deployment configuration in either one
of the following locations:
- SAS Metadata Repository: you can use the Foundation Services Manager plug-in (of SAS Management Console) to administer service deployment metadata that is stored in a SAS Metadata Server repository. The SAS Metadata Server also controls access to the metadata.
- XML file: you can export service deployment metadata from the SAS Metadata Server to an
XML file. You can then use the XML file to import service deployment metadata into another SAS Metadata Server repository. If you use an XML file to store service deployment metadata,
there is no administration or access control for the metadata in the XML file.
Note: It is recommended that you store the service deployment metadata on a SAS Metadata Server; storing the service deployment metadata in a SAS Metadata Server enables it to be updated and queried from one centralized location.
To enable your application to deploy and access the foundation services, you can create local or remote service deployments:
- Local service deployment: a local service deployment
supports exclusive access to a set of services deployed within a single Java Virtual Machine (JVM).
Use a local service deployment when you want
your application to have its own exclusive set of foundation services.
- Remote service deployment: a remote service deployment supports shared access to a set of services that are deployed
within a single JVM, but are available to other JVM processes.
Use a remote service deployment when
you want to share a foundation service deployment among multiple applications.
When you create services for remote service deployments, you must specify that the services will
be accessed remotely. In order to allow remote access to the services, you must also create a service registry and
associate named services with the named components for the remote services.
A service deployment contains:
service deployment group(s). When you create service deployments (local or remote), you can also create groups within the service deployment in order to
organize services within a deployment hierarchy.
services and service initialization data. Within each service deployment group, you must define the services for that group. Service definitions
contain the following information:
- Service types (interfaces): service types designate which service interfaces are implemented by the service. The Discovery Service is used to locate services based upon their service interfaces. For example, if you want to locate a service that implements a Logging Service interface, have the Discovery Service search for a service that implements the
com.sas.services.logging.LoggingServiceInterface .
Note: All SAS Foundation Services (including local services) implement the RemoteServiceInterface .
- Service configuration: the service configuration specifies the Java class used to create the service, the service's optional configuration data, and the service's configuration user interface. The service configuration user interface defines the Java class used by the Foundation Services Manager to configure the service's configuration details.
- Service dependencies: when they are deployed, foundation services might depend on the availability of one or more other foundation services. When you define a service, you must specify the other services upon which that service depends. For example, the Authentication Service uses the Logging Service. Therefore, when you define the Authentication Service in a service deployment, you must specify the Logging Service as a dependency.
- Service names (for remote access only): if a foundation service is to be made available for remote clients, you must enable the service for remote access
and define named services (service names) that specify the service's name bindings to one or more
service registries.
- Authorization permissions: authorization parameters allow you to specify which user or group identities can perform which actions on a particular resource.
Important Note: If a service is dependent upon other services, you must define those services before defining the service that depends on them. For details about service dependencies and order of definition, see the Service Dependencies Table.
service registries and associated named services (remote service deployments only). To enable services for remote access,
you must define a service registry to use in locating remote services. (A service registry is a searchable registry of service descriptions that is used to register named service bindings).
You must then register the services with the service registry
by creating or associating named services that define how each service is to be used within the context of the Discovery Service.
To understand where service deployments are defined, see Understanding Service
Deployment Configuration.
If a service has a dependency on another service, you must first create the service upon which it depends. The following table shows the service dependencies and the relative order in which you must define the services.
Service Dependencies Table |
Service |
Service Dependencies |
Logging Service |
|
Authentication Service |
Logging Service |
Information Service |
Logging Service |
User Service |
Logging Service Authentication Service Information Service |
Session Service |
Logging Service |
Discovery Service |
Logging Service |
Event Broker Discovery Service |
Logging Service Discovery Service |
Event Broker Service |
Logging Service Authentication Service Information Service User Service Session Service |
Stored Process Service |
Logging Service |
|