A service deployment is a
configuration of a collection of SAS Foundation Services that specifies
the data that is necessary to instantiate the services, as well as
dependencies on other services. You create service deployments for
applications that deploy or access the services. You can store the
service deployment configuration in the following locations:
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 Repository.
The SAS Metadata Server controls access to the metadata.
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 Repository. If you use an XML file to store service
deployment metadata, then there is no administration or access control
for the metadata in the XML file.
container deployment file:
You can export service
deployment metadata from the SAS Metadata Repository to a container
deployment file. You can then deploy the SAS Foundation Services configuration
in a Spring Framework container.
Note: It is recommended that you
store the service deployment metadata on a SAS Metadata Repository.
Storing the service deployment metadata in a SAS Metadata Repository
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:
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
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 groups
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)
designate which service
interfaces are implemented by the service. The Discovery Service is
locates services according to 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 com.sas.services.logging.LoggingServiceInterface
.
Note: All SAS Foundation Services
(including local services) implement the Remote Service interface.
specifies the Java
class that is 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.
specify other services
on which the service depends. 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 on
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)
specify named services
for remote access. 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.
consumers (application configurations)
group the resources
that are associated with a specific application. If several applications
share a single service configuration, then you can group the resources
in your service configurations by defining consumers. Consumers enable
you to install and uninstall the specific parts of a service configuration
that are associated with a specific application. For example, if your
Logging Service configuration contains a renderer that is specific
to SAS Web Report Studio and you uninstall SAS Web Report Studio,
then the consumer definition can be used to remove that specific renderer
while leaving the rest of the Logging Service configuration intact.
authorization permissions
enable you to specify
which user or group identities can perform which actions on a particular
resource.
Note: If a service depends on other
services, then you must define those services before defining the
service that depends on them. For details about service dependencies
and order of definition, see
Service Dependencies.
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.