1. A manipulator device comprising:
a base;
a first linear slide mounted to the base, the first linear slide having a first carriage movable along a first axis;
a second linear slide mounted to the first carriage, the second linear slide having a second carriage movable along a second axis orthogonal to the first axis;
a drive link coupled between the base and the second carriage, the drive link being rotatable about a proximal center of motion that is fixed relative to the base, the drive link being configured to move the second carriage in an arcuate path relative to the base, the arcuate path having a constant radius, wherein the first and the second linear slides constrain the second carriage to have a non-rotating orientation relative to the base as the second carriage moves along the arcuate path;
a drive member carried by the second carriage and connected to the drive link such that the drive member rotates with respect to the second carriage as it moves along the arcuate path but maintains the same rotational orientation as the drive link;
a driven member carried by the second carriage, the driven member being laterally spaced apart from and rotationally coupled to the drive member such that the driven member rotates with respect to the second carriage as it moves along the arcuate path but the driven member maintains the same rotational orientation as the drive member and the drive link; and
an end effector carried by the second carriage and rotationally coupled to the driven member such that the end effector maintains the same rotational orientation as the driven member, the drive member, and the drive link,
the elements of the manipulator device thereby cooperating to constrain the end effector to rotate about a remote center of motion that is displaced from the proximal center of motion as the drive link moves the second carriage along the arcuate path.
2. The manipulator device of claim 1, wherein the base is rotatable about an axis that intersects the proximal center of motion and the remote center of motion such that the end effector is spherically rotatable in two degrees of freedom about the remote center of motion.
3. The manipulator device of claim 2, wherein the device further comprises shaft encoders to provide feedback of rotational positions in the two degrees of freedom about the remote center of motion.
4. The manipulator device of claim 1, further comprising a prime mover coupled to the drive link and configured to move the second carriage along the arcuate path.
5. The manipulator device of claim 4, wherein the device includes an automated mode in which at least one degree of freedom is driven by a computer controlled actuator.
6. The manipulator device of claim 1, wherein the end effector is configured to be manually moved, and the drive link is configured to follow the motion of the second carriage and constrain the second carriage to move along the arcuate path.
7. The manipulator device of claim 6, wherein the device includes a powered assist mode in which manual movements of the end effector are sensed and a prime mover provides force to assist with those movements.
8. The manipulator device of claim 7, wherein the device includes the manual mode, the powered assist mode, and an automated mode in which at least one degree of freedom is driven by a computer controlled actuator.
9. The manipulator device of claim 1, wherein the end effector comprises an intravenous line inserter.
10. A method of constraining an end effector to rotate about a remote center of motion that is displaced from a proximal center of motion that is fixed relative to a base, the method comprising:
providing the base and a first linear slide mounted to the base, the first linear slide having a first carriage;
moving the first carriage along a first axis;
providing a second linear slide mounted to the first carriage, the second linear slide having a second carriage;
moving the second carriage along a second axis orthogonal to the first axis;
providing a drive link coupled between the base and the second carriage;
rotating the drive link about the proximal center of motion such that the drive link moves the second carriage in an arcuate path relative to the base, the arcuate path having a constant radius, wherein the first and the second linear slides constrain the second carriage to have a non-rotating orientation relative to the base as the second carriage moves along the arcuate path;
providing a drive member carried by the second carriage and connected to the drive link;
rotating the drive member with respect to the second carriage as it moves along the arcuate path and maintaining the same rotational orientation as the drive link;
providing a driven member carried by the second carriage, the driven member being laterally spaced apart from and rotationally coupled to the drive member;
rotating the driven member with respect to the second carriage as it moves along the arcuate path and maintaining the driven member in the same rotational orientation as the drive member and the drive link; and
providing an end effector carried by the second carriage and rotationally coupled to the driven member such that the end effector maintains the same rotational orientation as the driven member, the drive member, and the drive link.
11. The method of claim 10, further comprising rotating the base about an axis that intersects the proximal center of motion and the remote center of motion such that the end effector is spherically rotated in two degrees of freedom about the remote center of motion.
12. The method of claim 11, further comprising providing feedback with shaft encoders of rotational positions in the two degrees of freedom about the remote center of motion.
13. The method of claim 10, further comprising moving the second carriage along the arcuate path with a prime mover coupled to the drive link.
14. The method of claim 13, further comprising selecting an automated mode of the device in which at least one degree of freedom is driven by a computer controlled actuator.
15. The method of claim 10, further comprising manually moving the end effector, and allowing the drive link to follow the motion of the second carriage and constrain the second carriage to move along the arcuate path.
16. The method of claim 15, further comprising selecting a powered assist mode of the device in which manual movements of the end effector are sensed and a prime mover provides force to assist with those movements.
17. The method of claim 16, further comprising alternately selecting between the manual mode, the powered assist mode, and an automated mode of the device in which at least one degree of freedom is driven by a computer controlled actuator.
18. The method of claim 10, further comprising providing an intravenous line inserter on the end effector.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A computer-implemented method for protecting platform-as-a-service platforms, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:
identifying a platform-as-a-service platform that enables on-demand access to a computing environment via the Internet andor a service provider, the platform-as-a-service platform being configured to allow installations of third-party application packages;
intercepting, at a reverse proxy system that is configured to receive network traffic on behalf of the platform-as-a-service platform and to relay approved network traffic to the platform-as-a-service platform, a third-party application package in transit to the platform-as-a-service platform for installation;
extracting a manifest file from the third-party application package;
parsing the manifest file to obtain metadata that specifies characteristics of the third-party application package, wherein the metadata comprises information identifying a resource of an existing application within the platform-as-a-service platform subject to use by an application to be installed from the third-party application package;
applying a compliance policy to the third-party application package to determine whether to allow an installation of the third-party application package on the platform-as-a-service platform based on the metadata.
2. The computer-implemented method of claim 1, wherein the third-party application package comprises an application package created by a provider other than a provider of the platform-as-a-service platform.
3. The computer-implemented method of claim 1, wherein applying the compliance policy to the third-party application package based on the metadata comprises submitting a request to a workflow approval system for the installation of the third-party application package on the platform-as-a-service platform.
4. The computer-implemented method of claim 1, wherein:
intercepting the third-party application package comprises intercepting the third-party application package on a proxy system configured to intercept network traffic leaving the computing environment, the computing environment comprising an administration system for the platform-as-a-service platform;
the administration system is configured to submit third-party application packages to the platform-as-a-service platform.
5. The computer-implemented method of claim 1, wherein intercepting the third-party application package comprises intercepting the third-party application package from a mobile computing device configured to use the reverse proxy system to access the platform-as-a-service platform.
6. The computer-implemented method of claim 1, wherein the platform-as-a-service platform does not support the application of compliance policies.
7. A system for protecting platform-as-a-service platforms, the system comprising:
an identification module programmed to identify a platform-as-a-service platform that enables on-demand access to a computing environment via the Internet andor a service provider, the platform-as-a-service platform being configured to allow installations of third-party application packages;
an interception module programmed to intercept, at a reverse proxy system that is configured to receive network traffic on behalf of the platform-as-a-service platform and to relay approved network traffic to the platform-as-a-service platform, a third-party application package in transit to the platform-as-a-service platform for installation;
an extraction module programmed to extract a manifest file from the third-party application package and to parse the manifest file to obtain metadata that specifies characteristics of the third-party application package, wherein the metadata comprises information identifying a resource of an existing application within the platform-as-a-service platform subject to use by an application to be installed from the third-party application package;
an application module programmed to apply a compliance policy to the third-party application package to determine whether to allow an installation of the third-party application package on the platform-as-a-service platform based on the metadata;
at least one processor configured to execute the identification module, the interception module, the extraction module, and the application module.
8. The system of claim 7, wherein the application module is programmed to apply the compliance policy to the third-party application package based on the metadata by blocking the installation of the third-party application package on the platform-as-a-service platform.
9. The system of claim 7, wherein the application module is programmed to apply the compliance policy to the third-party application package based on the metadata by submitting a request to a workflow approval system for the installation of the third-party application package on the platform-as-a-service platform.
10. The system of claim 7, wherein:
the interception module is programmed to intercept the third-party application package by intercepting the third-party application package on a proxy system configured to intercept network traffic leaving the computing environment, the computing environment comprising an administration system for the platform-as-a-service platform;
the administration system is configured to submit third-party application packages to the platform-as-a-service platform.
11. The system of claim 7, wherein the interception module is programmed to intercept the third-party application package by intercepting the third-party application package from a mobile computing device configured to use the reverse proxy system to access the platform-as-a-service platform.
12. The system of claim 7, wherein the metadata specifies that an application installed from the third-party application package accesses unsecure web services.
13. The system of claim 7, wherein the application module is programmed to apply the compliance policy based on an identifier of a user attempting to install the third-party application package on the platform-as-a-service platform.
14. A non-transitory computer-readable-storage medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:
identify a platform-as-a-service platform that enables on-demand access to a computing environment via the Internet andor a service provider, the platform-as-a-service platform
being configured to allow installations of third-party application packages;
intercept, at a reverse proxy system that is configured to receive network traffic on behalf of the platform-as-a-service platform and to relay approved network traffic to the platform-as-a-service platform, a third-party application package in transit to the platform-as-a-service platform for installation;
extract a manifest file from the third-party application package;
parse the manifest file to obtain metadata that specifies characteristics of the third-party application package, wherein the metadata comprises information identifying a resource of an existing application within the platform-as-a-service platform subject to use by an application to be installed from the third-party application package;
apply a compliance policy to the third-party application package to determine whether to allow an installation of the third-party application package on the platform-as-a-service platform based on the metadata.
15. The non-transitory computer-readable-storage medium of claim 14, wherein the one or more computer-executable instructions cause the computing device to apply the compliance policy to the third-party application package based on the metadata by causing the computing device to block the installation of the third-party application package on the platform-as-a-service platform.
16. The non-transitory computer-readable-storage medium of claim 14, wherein the one or more computer-executable instructions cause the computing device to apply the compliance policy to the third-party application package based on the metadata by causing the computing device to submit a request to a workflow approval system for the installation of the third-party application package on the platform-as-a-service platform.
17. The non-transitory computer-readable-storage medium of claim 14, wherein:
the one or more computer-executable instructions cause the computing device to intercept the third-party application package by causing the computing device to intercept the third-party application package on a proxy system configured to intercept network traffic leaving the computing environment, the computing environment comprising an administration system for the platform-as-a-service platform;
the administration system is configured to submit third-party application packages to the platform-as-a-service platform.
18. The non-transitory computer-readable-storage medium of claim 14, wherein the one or more computer-executable instructions cause the computing device to intercept the third-party application package by causing the computing device to intercept the third-party application package from a mobile computing device configured to use the reverse proxy system to access the platform-as-a-service platform.
19. The non-transitory computer-readable-storage medium of claim 14, wherein the platform-as-a-service platform does not support the application of compliance policies.