将脚本作为企业 IP 进行保护并记录脚本使用情况大家好,
我想知道其他人正在采取哪些措施来保护他们的脚本作为企业知识产权,以及是否有组织记录脚本的使用情况。脚本记录有助于我们了解哪些脚本的使用最为广泛,并据此制定相应的措施。
我们目前的方法是将加密的脚本使用情况记录到网络驱动器,这需要用户已在网络上进行身份验证。如果 JMP 脚本无法访问网络驱动器,脚本将终止。如果可以访问,它会通过将文本文件写入网络目录来记录脚本使用情况信息,例如脚本名称、用户名和日期/时间。执行此操作的时间相当长,有时甚至超过 10 秒,具体取决于用户位置、服务器以及可能存在的网络状况。我认为大部分时间都花在了文件写入操作上。从用户的角度来看,这不太好……看起来 JMP 花费了大量时间尝试打开脚本的 GUI,但实际上这些时间都花在了连接服务器和写入文件上。我无法解决我们的网络问题,并且我有一些解决方法,但我想看看大家在阅读完本文后是否有其他建议。
注意:我们对脚本进行加密以便查看,但我们不对脚本进行加密以便运行。
当前的:
- 运行脚本
- 检查网络路径是否存在
- 如果存在,则记录使用信息(耗时较长)并继续执行脚本。使用 save text file() 命令将文本保存到 csv 文件中。
- 这样就完成了身份验证和日志记录。如果我们只需要验证身份验证,只需检查目录是否存在就足够了,而且速度似乎相当快。
- 否则,终止脚本
提案1:
- 运行脚本
- 如果 authentication_namespace 不存在(首次在 JMP 会话中验证身份验证)
- 注意:此处的“authentication_namespace”指的是可以创建的命名空间,并且可以在其中创建变量。JMP 会话中的任何脚本都可以检查该命名空间是否已创建,或者是否尚不存在。我们可以使用它在身份验证后创建此命名空间。
- 如果网络目录存在,(验证用户是否在公司网络上)
- 创建 authentication_namespace。我们可以在其中创建一个变量,但我认为没有必要。我们稍后再验证它的存在。
- 找到本地日志文件并将所有先前本地记录的脚本使用数据上传到服务器。
- 仅在身份验证期间执行此操作至少可以将每次 JMP 会话的写入时间缩短到一次
- 问题:需要筛选多少个文件?我会将其保存在默认目录下的“log”文件夹中,以将其限制在我们的日志文件中,但如果文件损坏了怎么办?或者如果用户单独打开了该文件怎么办?或者如果用户双击某个脚本,并创建了多个具有相同时间戳(即最新时间戳)的文件怎么办?或者如果同时打开了多个 JMP 会话怎么办?以后的 JMP 会话将无法访问命名空间的引用,只能访问我们指定的名称。等等。
- 如果网络目录不存在,则终止,因为用户不在网络上
- 如果 authentication_namespace 存在(用户之前已在此 JMP 会话中被验证为已通过身份验证),则将使用情况本地记录到默认目录 \ log 文件夹。
- 如果文件不存在,则创建它并保存日志信息
- 如果文件存在,则附加日志信息
- (请注意上面概述的警告、多个文件等)
- 现在无需将信息传输到服务器,仅在 JMP 会话中第一次验证身份验证时才执行此操作
上述方案虽然可行,但会变得很复杂,而且我认为会引发问题。面对数百名用户,一旦出现问题,调试起来将是一场噩梦。
提案2:
与我们目前的方法类似,但网络验证是通过检查网络目录是否存在(快速)来完成的,而日志记录是通过启动一个 JMP 无需等待的日志记录任务来完成的。我不确定这是否可行。JMP 能否启动一个远程写入文件的任务,而不等待它完成?这样可以大大简化这个问题。
如果您对此主题有任何其他想法,请告诉我。
谢谢
麦克风
自动化和脚本回复:将脚本作为公司 IP 进行保护并记录脚本使用情况我认为您可以使用Run Program()启动一项任务而不必等待它完成。
总的来说,我不会真正做这种类型的日志记录,因为它很快就会变得复杂。如果真的必须这样做,我会创建一个合适的系统来支持它(带有 API 和用于日志存储的数据库的 HTTP 服务器),并使用 JMP 的“新建 HTTP 请求”来发送数据。
回复:将脚本作为公司 IP 进行保护并记录脚本使用情况“很快变得复杂”——这涵盖了很多非技术层面的内容。