Detailed Description
Example embodiments will now be described more fully with reference to the accompanying drawings. Example embodiments may, however, be embodied in many different forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the concept of example embodiments to those skilled in the art.
Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided to give a thorough understanding of embodiments of the application. One skilled in the relevant art will recognize, however, that the subject matter of the present application can be practiced without one or more of the specific details, or with other methods, components, devices, steps, and so forth. In other instances, well-known methods, devices, implementations, or operations have not been shown or described in detail to avoid obscuring aspects of the application.
The block diagrams shown in the figures are functional entities only and do not necessarily correspond to physically separate entities. I.e. these functional entities may be implemented in the form of software, or in one or more hardware modules or integrated circuits, or in different networks and/or processor means and/or microcontroller means.
The flow charts shown in the drawings are merely illustrative and do not necessarily include all of the contents and operations/steps, nor do they necessarily have to be performed in the order described. For example, some operations/steps may be decomposed, and some operations/steps may be combined or partially combined, so that the actual execution sequence may be changed according to the actual situation.
Fig. 1 shows a schematic diagram of an exemplary system architecture to which the technical solution of the embodiments of the present application can be applied.
As shown in fig. 1, the system architecture may include a requestor 110, a proxy platform 130, and a service provider 150.
The invocation of a service refers to an application (say application a) invoking a service provided by another application (say application B). The platform where the application program initiating the access request is located is a requester, and the platform where the application program providing the service is located is a service provider. In the above example, the platform where the application a is located is the requester, and the platform where the application B is located is the service provider.
In the solution of the present application, the requester 110 establishes a communication connection with the agent platform 130, and the agent platform 130 establishes a communication connection with the service provider 150. To invoke a service provided by the service provider 150, the requestor 110 needs to send an access request to the proxy platform 130, and then the proxy platform 130 forwards the access request to the service provider 150.
That is, in the process of the requester 110 invoking the service provided by the service provider 150, the information transfer between the requester 110 and the service provider 150 is forwarded by the proxy platform 130 serving as a transit platform.
The implementation details of the technical solution of the embodiment of the present application are set forth in detail below:
fig. 2 shows a flowchart of a method for invoking a service, which is applied to a proxy platform and can be performed by a device having a computing processing function, according to an embodiment of the present application. Referring to fig. 2, the method for invoking the service at least includes steps 210 to 250, which are described in detail as follows:
step 210, obtaining an access request initiated by the requester based on an access code, where the access code is generated by the agent platform according to the configuration information of the target service.
It is worth mentioning that the target service does not refer to a certain service in particular, but refers to the service to be invoked in general.
The target service that can be called may be a data service or a service provided by a target interface. The data service performs services such as data query and data insertion.
Similarly, a target interface does not refer specifically to an interface, but rather broadly refers to an interface that may be invoked.
In order to realize that a requester invokes a target service provided by a service provider by means of a proxy platform, basic information of the target service is configured in the proxy platform in advance. The basic information of the target service may include a service name, a gateway path, a backend address, a frequency limit (e.g., an access frequency upper limit), a request protocol, a response protocol, etc. of the target service, which are not particularly limited herein. In other embodiments, the basic information configured for the target service on the agent platform may also be set according to actual needs, for example, a limited access time period, etc.
For the service provided by the target service for the interface, the request protocol defines the contents of interface request parameters, parameter formats and the like, and similarly, the response protocol defines the contents of interface response parameters, parameter formats and the like.
The configuration information of the target service includes at least basic information configured for the target service on the agent platform. In other embodiments, the configuration information of the target service may also include a service identification on the agent platform of the target service, and the like.
In an embodiment, in order to configure the basic information corresponding to the target service, a configuration platform is provided in the agent platform, so that a user can configure the basic information of the target service through the configuration platform.
Specifically, the configuration platform provides an interactive client for a user, and the user inputs basic information of the target service through the interactive client, so that the configuration platform integrates the input basic information to obtain the basic information of the target service.
As described in the background, the code that runs on the requestor to implement the target service call is the access code.
In the scheme of the application, in order to avoid manual writing of the access code and improve the target service access efficiency, the proxy platform correspondingly generates the access code for realizing target service calling according to the configuration information of the target service.
That is, an access request initiated by a requestor to a proxy platform to invoke a target service is initiated by the requestor based on an access code generated by the proxy platform for the target service, the initiated access request being one of the results of the requestor running the access code generated by the proxy platform for the target service.
And step 230, calling a software development kit in the proxy platform according to the access request.
The agent platform includes a Software Development Kit (SDK) that integrates common functions in the service invocation process, such as access address, signature verification, network protocol, format encapsulation, etc. The software development kit is suitable for calling any target service, namely, the calling of any target service can be controlled through the software development kit.
And step 250, controlling to forward the access request to a service provider corresponding to the target service through the software open toolkit so as to call the target service.
As described above, the common function of making a service call is integrated in the software development kit, so that a call process of a control target service can be performed through the software development kit.
Call control between the requestor and the service provider is performed through a software development kit in the proxy platform. Therefore, in order to perform call control of the target service, developers of different service providers do not need to write codes for implementing call control respectively for the target service provided by the service provider, and the same software development kit is directly deployed in the proxy platform, so that call control of different target services can be implemented.
The access code is correspondingly generated for the target service according to the configuration information of the target service through the agent platform, and an engineer does not need to write the access code manually aiming at the target service, so that the calling efficiency of the target service is improved. Meanwhile, the requester sends the access request initiated based on the access code to the proxy platform, the proxy platform controls the forwarding of the access request to the service provider, and the information forwarding between the requester and the service provider is realized through the proxy platform, so that the calling control between the requester and the service provider is facilitated through the proxy platform, and the compiling of the calling control code on the service provider is not required to be realized for different service providers, the workload is further reduced, and the calling efficiency is improved.
In one embodiment, as shown in fig. 3, prior to step 210, the method further comprises:
at step 310, a code generation request is received, the code generation request indicating a target service to be accessed.
In order to generate an access code for a target service to be invoked, a code requester initiates a code generation request to a proxy platform. It can be understood that the code generation request at least indicates a target service to be accessed, so that the agent platform can correspondingly determine which target service needs to be targeted to generate the access code according to the received code generation request, thereby correspondingly obtaining the configuration information of the indicated target service according to the code application request.
Step 330, obtaining the configuration information of the target service according to the code generation request.
As described above, before initiating the access request of the target service, the basic information of the target service is configured in the proxy platform in advance, and the configuration information of the target service is correspondingly obtained and stored.
Step 350, generating an access code according to the configuration information.
Because the configuration information includes basic information of the target service, such as a request/response protocol, a back-end address, an access path, and the like, an access code can be generated for the target service correspondingly, so that when the access code runs, an access request can be sent to the proxy platform, and the proxy platform performs call control by calling a software development kit.
In one embodiment, the access code comprises an access protocol definition code, an object declaration code and a calling function, and the configuration information comprises an access protocol, an access path and a service identifier of the target service; step 350, comprising:
generating an access protocol definition code corresponding to the target service according to the access protocol of the target service; and
generating object declaration codes according to the address information of the agent platform, and indicating the agent platform to call the software development kit through the object declaration codes; and
and generating a calling function according to the access path and the service identifier of the target service.
The access protocol of the target service comprises a request protocol and a response protocol, wherein the request protocol specifies the content of a request initiating mode, request parameters and the like, and the response protocol defines the content of a response mode, response parameters and the like.
For example, for the service provided by the target service for the interface, the request protocol defines the content of the request initiation mode, the interface parameters, the type, and the like.
In one embodiment, since different access protocols are different, in order to adapt to different access protocols, the definition of parameters in the access protocol definition code is performed in a recursive definition manner.
In particular, the parameter definition is performed by the schema standard. In the schema standard, schema represents a collection of database objects, which may include multiple field classes. Each field object may itself be an object, with its own protocol, for example in the following code:
the segment of code defines a user structure, which, as indicated above, includes fields Name, Age, developer, Title, and Career. The Career field is a set of fields, which further includes a time field, a title field, and a Corp field.
Therefore, the definition of the complex access protocol can be performed in such a recursive manner. Specifically, structured protocols are described collectively by schema and field.
For example, in a schema, fields are defined as in table one:
list-schema
| Field(s)
|
Type (B)
|
Means of
|
| name
|
string
|
Data protocol name
|
| desc
|
string
|
Description of data protocol
|
| fields
|
[]field
|
Data protocol field configuration |
Wherein, the fields field in table one can also be an object, as shown in table two, the fields field further includes:
TABLE-two field
Therefore, by the mode of recursively defining the access protocol, the agent platform can be completely implemented according to the access protocol in the configuration information of the target service, and the complete consistency of configuration and actual application is ensured.
And object declaration code, namely performing object declaration for the target service, and indicating the agent platform software development kit when the object declaration code runs.
In one embodiment, the object declaration code is used by the address of the agent platform, the service identification of the target service, and the key of the code requester as parameters of the new sdk client object, and is declared by the var key. The generated object declaration code is as follows:
var(client=sdk.NewClient(A,B,C))
wherein, the parameter A is the address of the agent platform, the parameter B is the service identifier corresponding to the target service, and the parameter C is the key of the code requester.
In one embodiment, the code generation request further includes a code requestor identification, the method further comprising:
and performing authorization verification on the code requester according to the code requester identification.
If the code requestor passes the authorization verification, step 350 is performed.
In the embodiment, the agent platform stores the information of the authorized user in advance, so that the access code is generated according to the configuration information of the target service only when the code requester is the authorized user in the agent platform; otherwise, if the code requester fails the authorization verification, the generation of the access code for the code requester is denied.
In an embodiment, the generated access code further includes a code information list. The code information list is used as an annotation part in the access code, the code information list is convenient for a reader of the access code to know the basic information of the target service corresponding to the access code, and the code information list is not executed when the access code is executed. The code information list may be generated according to configuration information of the target service.
In one embodiment, the code information list includes a proxy platform address, an interface ID, an interface path, interface description information, a calling frequency, an interface attribute, an authorization object, a generation time, and the like.
In one embodiment, the software development kit includes signature verification code, and the configuration information includes a set of authorized access objects for the target service;
as shown in fig. 4, step 250 comprises:
and step 410, performing authorization verification on the requester according to the authorized access object set by running the signature verification code.
And signing the verification code, namely realizing the authorization verification function of the requester.
The set of authorized access objects is composed of corresponding identifications of the authorized access objects of the target service.
By operating the signature verification code, searching the identifier of the requester in the authorized access object set, and if the identifier of the requester is in the authorized access object set, indicating that the requester is an authorized access object served by a target, namely that the requester passes the authorization verification; otherwise, if the identifier of the requester is not found in the set of authorized access objects, the requester fails the authorization verification.
And step 430, if the requester passes the authorization verification, forwarding the access request to a service provider corresponding to the target service.
That is, the proxy platform forwards the access request to the service provider corresponding to the target service only when the requester passes the authorization verification.
In an embodiment, a signature code is included in a software development kit, an access request includes a gateway path, a request parameter and a key value corresponding to a requester, the gateway path, the request parameter and the key value are extracted from the access request by running the signature code, the gateway path, the request parameter and the key value are spliced, then a signature is performed through an HMACSHA1 algorithm to obtain a character string, and the character string is added to the access request, so that a service provider verifies information in the access request according to the character string after receiving the access request, and whether the information carried in the access request is tampered or not is guaranteed, and validity and accuracy of information transmission and data transmission are guaranteed.
In another embodiment, the software development kit includes access frequency defining code, as shown in fig. 5, step 250 includes:
and 510, acquiring historical frequency information of the requester accessing the target service by running the access frequency limiting code, and calculating the current access frequency according to the historical frequency information and the current access time.
The access frequency limiting code is a code for realizing the access frequency or time limiting function.
The frequency with which the requestor requests access to the target service is determined by running the access frequency limiting code.
The historical frequency information of the requester accessing the target service may be at least one of a historical access frequency and a historical number of accesses.
Then, based on the acquired historical frequency information and the current access time, the current access frequency can be obtained through corresponding calculation. Wherein the current access frequency may be the current access frequency, for example, 5 times/second, or the current access number, which is equal to the historical access number + 1.
In step 530, if the current access frequency meets the preset condition, the access request is forwarded to the service provider corresponding to the target service.
The preset condition may be an access frequency range, so that if the current access frequency is within the access frequency range, the current access frequency meets the preset condition.
By acquiring historical access frequency information and calculating the current access frequency, the access request is forwarded to a service provider corresponding to the target service only when the current access frequency meets a preset condition; otherwise, if the calculated current access frequency does not meet the preset condition, waiting and then calculating the current access frequency again according to the current time until the calculated current access frequency meets the preset condition, and further forwarding the access request to the service provider of the target service.
In another embodiment, the software development kit includes a signature verification code and an access frequency limiting code to perform authorization verification on the requester and to limit the access frequency, so that the access request is forwarded to the service provider of the target service only when the requester passes the authorization verification and the current access frequency meets a preset condition.
In one embodiment, the software development kit includes format encapsulation code, and before forwarding the access request to the service provider corresponding to the target service, the method further includes:
and encapsulating the access request according to the access protocol of the target service by operating the format encapsulation code.
As described above, for the target service, there is an agreed access protocol, so that any party needing to invoke the target service needs to perform information encapsulation according to the access protocol, and thus, the service provider of the target service can perform corresponding parsing when receiving a corresponding request.
In this embodiment, information is encapsulated by a format encapsulation code in a software development kit, an access request is encapsulated according to an access protocol of a target service, and a service provider of the target service can accurately analyze the encapsulated access request after receiving the encapsulated access request.
In one embodiment, the software development kit further includes a general API access function, a general insertion data function, a general overlay update function, a general part update function, a general deletion function, a general data reading function, and a general data lookup function, so as to provide a common function for calling each target service.
In one embodiment, as shown in fig. 6, after step 250, the method further comprises:
step 610, receiving response data returned by the service provider according to the received access request.
Step 630, forward the response data to the requestor.
Whether the target service invoked by the requestor is a service provided by the target interface or a data service, it is ultimately the result that needs to be returned by the target service implementation. I.e. response data
That is, the transfer of the response data needs to be performed by the proxy platform.
Further, prior to step 630, the response data is encapsulated according to the protocol of the requestor by format encapsulation code in the software development kit.
Embodiments of the apparatus of the present application are described below, which may be used to perform the methods of the above-described embodiments of the present application. For details which are not disclosed in the embodiments of the apparatus of the present application, reference is made to the embodiments of the method described above in the present application.
Fig. 7 is a block diagram illustrating a service invocation apparatus 700 according to an exemplary embodiment, where the service invocation apparatus 700 may be configured in the proxy platform of fig. 1, and with reference to fig. 7, the apparatus includes:
an access request obtaining module 710, configured to obtain an access request initiated by a requestor based on an access code, where the access code is generated by the agent platform according to the configuration information of the target service.
And the calling module 730 is used for calling the software development kit in the proxy platform according to the access request.
And a forwarding control module 750, configured to control, through the software opening toolkit, to forward the access request to a service provider corresponding to the target service, so as to perform invocation of the target service.
In one embodiment, the apparatus further comprises:
and the code generation request receiving module is used for receiving a code generation request, and the code generation request indicates the target service to be accessed.
And the configuration information acquisition module is used for acquiring the configuration information of the target service according to the code generation request.
And the access code generating module is used for generating an access code according to the configuration information.
In one embodiment, the access code comprises an access protocol definition code, an object declaration code and a calling function, and the configuration information comprises an access protocol, an access path and a service identifier of the target service; an access code generation module comprising:
a first generating unit for generating an access protocol definition code corresponding to a target service according to an access protocol of the target service; and
the second generation unit is used for generating object declaration codes according to the address information of the proxy platform and indicating the proxy platform to call the software development kit through the object declaration codes; and
and the third generation unit is used for generating a calling function according to the access path and the service identifier of the target service.
In one embodiment, the software development kit includes signature verification code, and the configuration information includes a set of authorized access objects for the target service; the forwarding control module 750 includes:
and the authorization verification unit is used for performing authorization verification on the requester according to the authorized access object set by operating the signature verification code.
And the first forwarding unit is used for forwarding the access request to a service provider corresponding to the target service if the requester passes the authorization verification.
In one embodiment, the software development kit includes access frequency defining code, and the forwarding control module 750 includes:
and the current access time calculating unit is used for acquiring historical frequency information of the target service accessed by the requester by running the access frequency limiting code and calculating the current access frequency according to the historical frequency information and the current access time.
And the second forwarding unit is used for forwarding the access request to a service provider corresponding to the target service if the current access frequency meets a preset condition.
In one embodiment, the software development kit includes format encapsulation code, the apparatus further comprising:
and the packaging module is used for packaging the access request according to the access protocol of the target service by operating the format packaging code.
In one embodiment, the apparatus further comprises:
and the response data receiving module is used for receiving response data returned by the service provider according to the received access request.
And the response data forwarding module is used for forwarding the response data to the requester.
In an embodiment, the target service includes at least one of a data service and a service provided by the target interface.
The implementation process of the function and the action of each module in the device is specifically detailed in the implementation process of the corresponding step in the service calling method, and is not described herein again.
It is understood that these modules may be implemented in hardware, software, or a combination of both. When implemented in hardware, these modules may be implemented as one or more hardware modules, such as one or more application specific integrated circuits. When implemented in software, the modules may be implemented as one or more computer programs executing on one or more processors.
Fig. 8 is a block diagram illustrating a proxy platform according to an exemplary embodiment, which includes a code generation module 810, a configuration platform 830, and a storage module 850, as shown in fig. 8.
The agent platform can generate an access code aiming at the data service and the service provided by the interface, wherein the access code generated for the service provided by the interface is called the interface code; the access codes generated for the data service are referred to as data codes. As shown in fig. 8, the code generation module 810 includes an interface code generator 811 for generating an interface code and a data code generator 813 for generating a data code.
The configuration platform 830 is used for basic information configuration, such as configuration, of the target service. As shown in fig. 8, the configuration platform 830 includes an interface configuration platform 831 and a data service configuration platform 833. The interface configuration platform 831 is configured to configure basic information of services provided by an interface, where the basic information of the services provided by the interface includes an interface name, a gateway path, a backend address, a frequency limit, a structured request protocol/response protocol, and the like. The data service configuration platform 833 is used to configure basic information for a data service, such as a structured data service protocol.
The storage module 850 is used for performing data of the agent platform, such as configuration information of each target service. Further, the storage module 850 may store the low-level data based on mongodb, or may store the data using any relational, document-type, or kv-type databases, such as mysql, postgresql, and the like, which is not limited herein.
In a specific embodiment, the agent platform may be developed based on the golang language, or may be developed by other programming languages, such as python, Java, c + +, and other high-level programming languages.
Further, the agent platform may be based on HTTP protocol + json format, or based on a combination of UDP/TCP protocol and any format such as protobuf, xml, formdata, and the like, and may also be a combination of other protocols and formats, which is not limited herein.
FIG. 9 illustrates a schematic structural diagram of a computer system suitable for use in implementing the electronic device of an embodiment of the present application.
It should be noted that the computer system 900 of the electronic device shown in fig. 9 is only an example, and should not bring any limitation to the functions and the scope of the application of the embodiments.
As shown in fig. 9, the computer system 900 includes a Central Processing Unit (CPU)901, which can perform various appropriate actions and processes, such as executing the method in the above-described embodiment, according to a program stored in a Read-Only Memory (ROM) 902 or a program loaded from a storage portion 908 into a Random Access Memory (RAM) 903. In the RAM 903, various programs and data necessary for system operation are also stored. The CPU 901, ROM 902, and RAM 903 are connected to each other via a bus 904. An Input/Output (I/O) interface 905 is also connected to bus 904.
The following components are connected to the I/O interface 905: an input portion 906 including a keyboard, a mouse, and the like; an output section 907 including a Cathode Ray Tube (CRT), a Liquid Crystal Display (LCD), and the like, a speaker, and the like; a storage portion 908 including a hard disk and the like; and a communication section 909 including a Network interface card such as a LAN (Local Area Network) card, a modem, or the like. The communication section 909 performs communication processing via a network such as the internet. The drive 910 is also connected to the I/O interface 905 as necessary. A removable medium 911 such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like is mounted on the drive 910 as necessary, so that a computer program read out therefrom is mounted into the storage section 908 as necessary.
In particular, according to embodiments of the application, the processes described above with reference to the flow diagrams may be implemented as computer software programs. For example, embodiments of the present application include a computer program product comprising a computer program embodied on a computer readable medium, the computer program comprising program code for performing the method illustrated by the flow chart. In such an embodiment, the computer program may be downloaded and installed from a network through the communication section 909, and/or installed from the removable medium 911. The computer program executes various functions defined in the system of the present application when executed by a Central Processing Unit (CPU) 901.
It should be noted that the computer readable medium shown in the embodiments of the present application may be a computer readable signal medium or a computer readable storage medium or any combination of the two. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples of the computer readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a Read-Only Memory (ROM), an Erasable Programmable Read-Only Memory (EPROM), a flash Memory, an optical fiber, a portable Compact Disc Read-Only Memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the present application, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. In this application, however, a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to: wireless, wired, etc., or any suitable combination of the foregoing.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present application. Each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams or flowchart illustration, and combinations of blocks in the block diagrams or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The units described in the embodiments of the present application may be implemented by software, or may be implemented by hardware, and the described units may also be disposed in a processor. Wherein the names of the elements do not in some way constitute a limitation on the elements themselves.
As another aspect, the present application also provides a computer-readable medium, which may be contained in the electronic device described in the above embodiments; or may exist separately without being assembled into the electronic device. The computer readable medium carries one or more programs which, when executed by an electronic device, cause the electronic device to implement the method described in the above embodiments.
It should be noted that although in the above detailed description several modules or units of the device for action execution are mentioned, such a division is not mandatory. Indeed, the features and functionality of two or more modules or units described above may be embodied in one module or unit, according to embodiments of the application. Conversely, the features and functions of one module or unit described above may be further divided into embodiments by a plurality of modules or units.
Through the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein may be implemented by software, or by software in combination with necessary hardware. Therefore, the technical solution according to the embodiments of the present application can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a usb disk, a removable hard disk, etc.) or on a network, and includes several instructions to enable a computing device (which can be a personal computer, a server, a touch terminal, or a network device, etc.) to execute the method according to the embodiments of the present application.
Reference herein to "a plurality" means two or more. "and/or" describes the association relationship of the associated objects, meaning that there may be three relationships, e.g., a and/or B, which may mean: a exists alone, A and B exist simultaneously, and B exists alone. The character "/" generally indicates that the former and latter associated objects are in an "or" relationship.
Other embodiments of the present application will be apparent to those skilled in the art from consideration of the specification and practice of the embodiments disclosed herein. This application is intended to cover any variations, uses, or adaptations of the invention following, in general, the principles of the application and including such departures from the present disclosure as come within known or customary practice within the art to which the invention pertains.
It will be understood that the present application is not limited to the precise arrangements described above and shown in the drawings and that various modifications and changes may be made without departing from the scope thereof. The scope of the application is limited only by the appended claims.