@@ -155,7 +155,7 @@ that we can build upon.
155155 from (1) a GUI, which is itself typically built using another
156156 framework, such as AngularJS; (2) a CLI; or (3) a closed-loop
157157 control program. There are other differences—for example,
158- Adapters (a kind of Controller) use gNMI as a standard
158+ Adaptors (a kind of Controller) use gNMI as a standard
159159 interface for controlling backend components, and persistent
160160 state is stored in a key-value store instead of a SQL DB—but the
161161 biggest difference is the use of a declarative rather than an
@@ -168,11 +168,11 @@ x-config, in turn, uses Atomix (a key-value store microservice), to
168168make configuration state persistent. Because x-config was originally
169169designed to manage configuration state for devices, it uses gNMI as
170170its southbound interface to communicate configuration changes to
171- devices (or in our case, software services). An Adapter has to be
171+ devices (or in our case, software services). An Adaptor has to be
172172written for any service/device that does not support gNMI
173- natively. These adapters are shown as part of Runtime Control in
173+ natively. These adaptors are shown as part of Runtime Control in
174174:numref: `Figure %s <fig-roc >`, but it is equally correct to view each
175- adapter as part of the backend component, responsible for making that
175+ adaptor as part of the backend component, responsible for making that
176176component management-ready. Finally, Runtime Control includes a
177177Workflow Engine that is responsible for executing multi-step
178178operations on the data model. This happens, for example, when a change
@@ -467,15 +467,15 @@ the case of Aether, Open Policy Agent (OPA) serves this role.
467467 <https://www.openpolicyagent.org/> `__.
468468
469469
470- 5.2.4 Adapters
470+ 5.2.4 Adaptors
471471~~~~~~~~~~~~~~
472472
473473Not every service or subsystem beneath Runtime Control supports gNMI,
474- and in the case where it is not supported, an adapter is written to
474+ and in the case where it is not supported, an adaptor is written to
475475translate between gNMI and the service’s native API. In Aether, for
476- example, a gNMI :math: `\rightarrow ` REST adapter translates between
476+ example, a gNMI :math: `\rightarrow ` REST adaptor translates between
477477the Runtime Control’s southbound gNMI calls and the SD-Core
478- subsystem’s RESTful northbound interface. The adapter is not
478+ subsystem’s RESTful northbound interface. The adaptor is not
479479necessarily just a syntactic translator, but may also include its own
480480semantic layer. This supports a logical decoupling of the models
481481stored in x-config and the interface used by the southbound
@@ -484,15 +484,15 @@ Control to evolve independently. It also allows for southbound
484484devices/services to be replaced without affecting the northbound
485485interface.
486486
487- An adapter does not necessarily support only a single service. An
488- adapter is one means of taking an abstraction that spans multiple
487+ An adaptor does not necessarily support only a single service. An
488+ adaptor is one means of taking an abstraction that spans multiple
489489services and applying it to each of those services. An example in
490490Aether is the *User Plane Function * (the main packet-forwarding module
491491in the SD-Core User Plane) and *SD-Core *, which are jointly
492- responsible for enforcing *Quality of Service *, where the adapter
492+ responsible for enforcing *Quality of Service *, where the adaptor
493493applies a single set of models to both services. Some care is needed
494494to deal with partial failure, in case one service accepts the change,
495- but the other does not. In this case, the adapter keeps trying the
495+ but the other does not. In this case, the adaptor keeps trying the
496496failed backend service until it succeeds.
497497
4984985.2.5 Workflow Engine
@@ -519,7 +519,7 @@ ongoing development.
519519gNMI naturally lends itself to mutual TLS for authentication, and that
520520is the recommended way to secure communications between components
521521that speak gNMI. For example, communication between x-config and
522- its adapters uses gNMI, and therefore, uses mutual TLS. Distributing
522+ its adaptors uses gNMI, and therefore, uses mutual TLS. Distributing
523523certificates between components is a problem outside the scope of
524524Runtime Control. It is assumed that another tool will be responsible
525525for distributing, revoking, and renewing certificates.
@@ -738,7 +738,7 @@ that it supports the option of spinning up an entirely new copy of the
738738SD-Core rather than sharing an existing UPF with another Slice. This is
739739done to ensure isolation, and illustrates one possible touch-point
740740between Runtime Control and the Lifecycle Management subsystem:
741- Runtime Control, via an Adapter , engages Lifecycle Management to
741+ Runtime Control, via an Adaptor , engages Lifecycle Management to
742742launch the necessary set of Kubernetes containers that implement an
743743isolated slice.
744744
@@ -802,7 +802,7 @@ Giving enterprises the ability to set isolation and QoS parameters is
802802an illustrative example in Aether. Auto-generating that API from a
803803set of models is an attractive approach to realizing such a control
804804interface, if for no other reason than it forces a decoupling of the
805- interface definition from the underlying implementation (with Adapters
805+ interface definition from the underlying implementation (with Adaptors
806806bridging the gap).
807807
808808.. sidebar :: UX Considerations
@@ -839,15 +839,15 @@ configuration change requires a container restart, then there may be
839839little choice. But ideally, microservices are implemented with their
840840own well-defined management interfaces, which can be invoked from
841841either a configuration-time Operator (to initialize the component at
842- boot time) or a control-time Adapter (to change the component at
842+ boot time) or a control-time Adaptor (to change the component at
843843runtime).
844844
845845For resource-related operations, such as spinning up additional
846846containers in response to a user request to create a *Slice * or
847847activate an edge service, a similar implementation strategy is
848848feasible. The Kubernetes API can be called from either Helm (to
849849initialize a microservice at boot time) or from a Runtime Control
850- Adapter (to add resources at runtime). The remaining challenge is
850+ Adaptor (to add resources at runtime). The remaining challenge is
851851deciding which subsystem maintains the authoritative copy of that
852852state, and ensuring that decision is enforced as a system invariant.\ [# ]_
853853Such decisions are often situation-dependent, but our experience is
0 commit comments