CN115774661A - 具有用户数据隔离的多用户调试 - Google Patents
具有用户数据隔离的多用户调试 Download PDFInfo
- Publication number
- CN115774661A CN115774661A CN202210855582.6A CN202210855582A CN115774661A CN 115774661 A CN115774661 A CN 115774661A CN 202210855582 A CN202210855582 A CN 202210855582A CN 115774661 A CN115774661 A CN 115774661A
- Authority
- CN
- China
- Prior art keywords
- developer
- program
- source code
- computer
- debugging
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
- G06F21/335—User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/77—Software metrics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
具有用户数据隔离的多用户调试。本文描述的示例提供了用于程序的多用户调试的计算机实现的方法。所述方法包括:从第一开发者接收发起所述程序的调试的第一请求;以及从第二开发者接收发起所述程序的所述调试的第二请求。该方法进一步包括响应于接收到第一请求和第二请求,发起程序的调试。所述方法进一步包括将用于所述程序的第一源代码发送到所述第一开发者,其中所述第一源代码与所述第一开发者相关联。所述方法进一步包含将用于所述程序的第二源代码发送到所述第二开发者,其中所述第二源代码与所述第二开发者相关联。该方法还包括响应于接收到对第一源代码或第二源代码中的至少一个的改变来更新程序。
Description
背景技术
本文所描述的实施例总体上涉及处理系统,并且更具体地涉及具有用户数据隔离的多用户调试。
复杂的计算机软件程序可以将逻辑功能分成若干层,其中的一个或多个可以被细分成不同的部件。这些组件同时运行以完成特定功能。在一些情况下,这些组件是由不同的公司开发的。然而,在其他情况下,它们由同一公司开发但属于不同的部门。
发明内容
本发明实施例针对具有用户数据隔离的多用户调试。
一种非限制性示例计算机实现的方法,包括接收来自第一开发者发起对该程序的调试的第一请求并且从第二开发者接收发起对该程序的调试的第二请求。该方法进一步包括响应于接收到第一请求和第二请求,发起程序的调试。所述方法进一步包括将用于所述程序的第一源代码发送到所述第一开发者,其中所述第一源代码与所述第一开发者相关联。所述方法进一步包含将用于所述程序的第二源代码发送到所述第二开发者,其中所述第二源代码与所述第二开发者相关联。该方法还包括响应于接收到对第一源代码或第二源代码中的至少一者的改变来更新程序。
该非限制性示例计算机实现的方法提供多用户调试环境并且还提供通过隔离的数据保护,这通过向开发者提供仅对代码的他们对应的部分访问的同时允许多用户调试来改进正被调试的程序和它们在其上运行的计算系统。这保护了被调试的程序的源代码。即使是来自不同公司/实体的开发者,也可以对一个功能执行顺序调试以提高问题解决的效率。
除了本文描述的特征中的一个或多个之外,或者作为替代方案,该方法的进一步的实施例可以包括:该第一请求包括与该第一开发者相关联的第一用户调试证书。除了本文描述的特征中的一个或多个之外,或者作为替换,所述方法的进一步实施例可以包括:基于所述第一用户调试证书,在向所述第一开发者发送所述程序的所述第一源代码之前,判定所述第一开发者是否被授权访问所述程序的所述第一源代码。用户调试证书允许开发者对他们的源代码的相应部分的权限控制。
除了本文描述的特征中的一个或多个之外,或者作为替代方案,该方法的进一步实施例可以包括:该第二请求包括与该第二开发者相关联的第二用户调试证书。除了本文描述的特征中的一个或多个之外,或者作为替换,所述方法的其他实施例可以包括:基于所述第二用户调试证书,在向所述第二开发者发送所述程序的所述第二源代码之前,确定所述第二开发者是否被授权访问所述程序的所述第二源代码。用户调试证书允许开发者对他们的源代码的相应部分的权限控制。
本发明的其他实施例在计算机系统和计算机程序产品中实现上述方法的特征。
通过本发明的技术实现了附加的技术特征和益处。在本文中详细描述了本发明的实施例和方面,并且这些实施例和方面被认为是所要求保护的主题的一部分。为了更好的理解,参考详细说明和附图。
附图说明
在说明书结尾处的权利要求中特别指出并明确要求本文描述的专有权的细节。本发明实施例的上述和其他特征和优点通过以下结合附图的详细描述是显而易见的,其中:
图1描绘了根据本公开的多个方面具有用户数据隔离的多用户调试的系统的框图;
图2A描绘了根据本文描述的一个或多个实施例的导致错误的栈调用的表;
图2B描绘了根据本文描述的一个或多个实施例的程序名称和对应的组件名称的表格;
图2C描绘了根据本文描述的一个或多个实施例的程序名称和对应的组件名称以及每个组件的相关联的所有权/访问的表;
图3A和3B描绘了根据本文描述的一个或多个实施例的图1的系统的实例;
图4描绘了根据本文描述的一个或多个实施例的用于具有源代码控制的数据隔离的方法的流程图;
图5描绘了根据本文描述的一个或多个实施例的云计算环境;
图6描绘了根据本文描述的一个或多个实施例的抽象模型层;以及
图7描绘了根据本文描述的一个或多个实施例的用于实施当前描述的技术的处理系统的框图。
本文所描绘的这些图是说明性的。在不背离本发明的范围的情况下,可以对这里所描述的图或操作进行许多变化。例如,可以以不同的顺序执行动作,或者可以添加、删除或修改动作。此外,术语“耦接”及其变形描述了在两个元件之间具有通信路径,并且不暗示元件之间的没有中间元件/连接的情况下的直接连接。所有这些变型被认为是说明书的一部分。
具体实施方式
本发明的一个或多个实施例提供了具有用户数据隔离的多用户调试。
复杂的计算机软件程序可以将逻辑功能分成若干层,这些层中的一个或多个可以被细分成不同的部件。这些组件同时运行以完成特定功能。在某些情况下,这些组件是由不同的公司开发的。然而,在其他情况下,它们由同一公司开发但属于不同的部门。由于源代码权限管理的要求,开发者通常仅被允许访问用于他们自己的公司/部门的组件的程序代码。
当程序中存在问题时,再现该问题以确定哪个或哪些组件引起该问题是有用的。但是有时该问题只能在特定环境中再现。与所讨论的功能相关的每个部件都需要一起工作以确定问题的范围。然而,如果单独对每个组件进行调试,不仅需要更多的时间来再现问题,而且组件之间的一些中间状态也不容易保存,这增加了组件之间的通信工作量。
本发明的上述方面通过使用调试管理器模块在组件之间提供多用户调试环境来解决现有技术的缺点。本文描述的多用户调试环境为具有不同组件的开发者提供顺序调试功能,同时还基于权限控制提供组件之间代码的本地可见性。该多用户调试环境提高了开发商之间通信的效率,节省了通信时间,满足代码权限控制。多用户调试环境还通过隔离提供数据保护,其通过在允许多用户调试的同时向开发人员提供仅对他们各自的代码部分的访问来改进正被调试的程序和它们在其上运行的计算系统。这保护了被调试的程序的源代码。即使是来自不同公司/实体的开发人员也可以对一个功能执行顺序调试以提高解决问题的效率。
现在转向图1,根据本公开的各方面描绘了用于用于具有用户数据隔离的多用户调试的系统100的框图。系统100包括处理系统110、调试管理器引擎120以及调试客户端131、132、133(统称为“调试客户端130”)。尽管示出了三个调试客户端131至133,但是在其他实施例中可以实现更少或额外的调试客户端,并且本技术不限于所示出的特定数量的调试客户端。系统100提供在利用源代码和运行时地址权限控制的多用户(例如,调试客户端130)之间的一个调试会话中顺序地调试复杂程序(例如,程序116)。
处理系统110包括处理设备112和存储器114。处理设备112可以是任何合适的处理设备,诸如图7的处理系统700的处理器721中的一个或多个,并且存储器114可以是任何合适的存储器,诸如图7的处理系统700的RAM 724或ROM 722。存储器114是计算机可读存储介质的实例,并且可以将程序116存储为指令(例如,计算机可读程序指令),所述指令当由处理设备112执行时使得操作被执行。
在程序116的软件开发期间,可能期望调试程序116,诸如当发生错误或“漏洞”时。调试是发现并校正在诸如程序116之类的程序的执行期间出现的缺陷或问题的动作。
在图1所示的实施例中,提供了支持调试的调试管理器引擎120。根据本文描述的一个或多个实施例,调试管理器引擎120向用户/开发者提供对不同组件的访问(或其所有权)以使用其相应的调试客户端130顺序地调试功能,同时基于权限控制在组件之间提供代码的本地可见性。根据本文描述的一个或多个实施例,调试管理器引擎120可以与处理系统100和调试客户端130通信。调试客户端130可以是使得用户能够执行调试的任何合适的设备或系统,诸如膝上型计算机、台式计算机、移动电话、平板计算机等。调试管理器引擎120通过提供用户调试证书来提供基于权限控制的用户数据隔离,该用户调试证书为开发者提供查看和调试程序116的源代码、检查和改变特定存储器地址的内容的适当权限等。
在示例中,调试管理器引擎120可以被并入(或结合)处理系统110中,从而使得处理系统110(使用处理设备112和存储器114)致使实现调试管理器引擎120。在另一示例中,调试管理器引擎120可以在与处理系统110分开的处理系统(未示出)中实现。
关于图1所描述的不同组件、模块、引擎等可实施为存储在计算机可读存储介质上的指令、实施为硬件模块、实施为专用硬件(例如,专用硬件、专用集成电路(ASIC)、专用处理器(ASSP)、现场可编程门阵列(FPGA)、实施为嵌入式控制器、硬连线电路等)或实施为这些的一些组合或结合。根据本公开的各方面,本文中描述的引擎可以是硬件和编程的组合。编程可以是存储在有形存储器上的处理器可执行指令,并且硬件可以包括用于执行这些指令的处理设备112。因此,系统存储器(例如,存储器114)可以存储程序指令,这些程序指令当由处理设备112执行时实施本文描述的引擎(例如,程序116、调试管理器引擎120等)。还可以利用其他引擎来包括本文中其他示例中所描述的其他特征和功能。
现在描述图2A-2C,其涉及根据本文描述的一个或多个实施例的正被调试的程序(例如,程序116)的组件。在图2A-2C的示例中,组件组件1、组件2和组件3一起在处理系统110上运行以完成特定功能。然而,当运行时,程序116遇到从组件3_程序2发出的错误201。根据本文中描述的一个或多个实施例,在图2的表中描绘导致错误201的调用栈200的示例。
表中的每一行表示关于调用栈200的信息,包括已经调用什么组件和程序。例如,调用栈200以调用组件1_程序2的组件1_程序1开始,组件1_程序2又调用组件2_程序1。组件2_程序1调用组件3_程序1,后者又调用组件3_程序2。可以看出,组件/程序通过相应的调用相互关联。
图2B描绘了根据本文描述的一个或多个实施例的程序名称和对应组件名称的表210。在该实例中,组件1_程序1和组件1_程序2对应于组件1,组件2_程序1对应于组件2,组件3_程序1和组件3_程序2对应于组件3。每个组件具有不同的权限来访问其各自的源代码,如参见图2C所描述的。
具体地,图2C描绘了根据本文描述的一个或多个实施例的程序名称和对应的组件名称以及每个组件相关联的所有权/访问的表210。即,每个组件由开发者220的开发者访问(或拥有)。在该示例中,组件1可由开发者221访问(或拥有),组件2可由开发者222访问(或拥有),并且组件3可由开发者223访问(或拥有)。换言之,每个开发者220具有如图2C所示的组件的权限。
在调试时,有用的是再现问题以确定哪个(哪些)/程序(哪些)引起该问题。与所讨论的函数(即,被调试的函数)相关的每个部件都需要一起工作以确定问题的范围。然而,如果单独调试每个组件,则不容易保存组件之间的一些中间状态,这增加了组件之间的通信工作量。在不同开发者涉及对组件的不同访问的情况下,这是特别困难的。例如,第一开发者(例如,一个开发者可仅访问组件1,而第二开发者仅可访问组件2和组件3)。
为了启动调试,一个或多个开发者220向调试管理器引擎120发送对于其(多个)各自组件的调试请求。这在图3A的示例中示出,其中,开发者221、开发者222和开发者223中的每个使用他们各自的调试客户端131、132、133向调试管理器引擎120分别发送对于他们自己的组件(如图2B中所示)的调试请求301、302、303。每个请求包括开发者用户调试证书。例如,开发者221具有用户调试证书311,该用户调试证书311被包括在调试请求301中或与调试请求301一起。类似地,开发者222具有用户调试证书312,其包括在调试请求302中或与调试请求302一起,并且开发者223具有用户调试证书313,其包括在调试请求303中或与调试请求303一起。
调试管理器引擎120接收调试请求301、302、303以及用户调试证书311、312、313,如图所示。也就是说,开发者221、开发者222和开发者223中的每一个使用他们各自的调试客户端130来将他们各自的程序116的组件(例如,组件1、组件2、组件3)置于调试中。当开发者221、开发者222和开发者223中的每一个开始调试时,调试开始。调试管理器引擎120根据他们各自的调试请求301、302、303以及他们各自的用户调试证书311、312、313来将源代码发送给每个开发者(例如,开发者221、开发者222和开发者223)。由此,开发者221看到组件1的源代码(即,与开发者221相关联的程序116的组件),开发者222看到组件2的源代码(即,与开发者222相关联的程序116的组件),并且开发者223看到组件3的源代码(即,与开发者223相关联的程序116的组件)。然后,如图3B所示,在其相应的调试客户端130的显示器上为每个开发者呈现调试界面。例如,开发人员221被呈现有用于组件1的调试接口321,开发人员222被呈现有用于组件2的调试接口322,并且开发人员223被呈现有用于组件3的调试接口323。开发者220中的一个或多个可随后修订他们各自的源代码以更新程序从而纠正错误。
图4描绘了根据本文描述的一个或多个实施例的用于具有源代码控制的数据隔离的方法400的流程图。参照如图1、图3A和图3B所示的系统100来描述方法400,但是方法400不限于此,并且可以使用任何合适的系统、设备或其组合来实现方法400。例如,方法400可由任何合适的设备和/或系统来执行,诸如:图1、3A和3B的处理系统110和/或调试管理器引擎120;图7的处理系统700;和/或任何其他合适的装置和/或系统。方法400例如在不同组件(例如,组件1、组件2、组件3)在相同调用堆栈中(参见例如图2A)但具有不同地址范围的情况下是有用的。
在框402处,开发者(例如,开发者220之一)向调试管理器引擎120发送请求以检查具有长度的指定地址的内容。例如,与调试客户端131相关联的开发者221从调试客户端131向调试管理器引擎120发送请求。应当理解,多个开发者可同时、并发或在不同时间向调试管理器引擎120发送请求。
在框404处,调试管理器引擎120将指定的地址和长度发送到调试服务器引擎118以请求组件名称(例如,在开发者221的情况下为组件1)。
在框406处,调试服务器引擎118向调试管理器引擎120返回具有长度的地址的组件名称。
在框408,调试管理器引擎120检查请求开发者(例如,开发者221)是否被授权访问/修改组件(例如,组件1)。如果没有,则在框410处,向与开发者相关联的调试客户端(例如,与开发者221相关联的调试客户端131)返回没有授权的指示(例如,消息)。
然而,如果如在框408处确定的请求开发者被授权,则方法400前进到框412,其中,由调试管理器引擎120将指定的地址和长度发送回调试服务器引擎118以请求组件(例如,组件1)的内容。
在框414,调试服务器引擎118将地址的内容返回至调试管理器引擎120,并且然后在框416,调试管理器引擎120将地址的内容返回至发起请求的调试客户端131(例如,调试客户端131)。
还可以包括附加的过程,并且应理解的是,图4中所描绘的过程表示展示,并且在不背离本公开的范围的情况下,可以添加其他过程或可以移除、修改或重新安排现有过程。
继续参见图3B,使用调试管理器引擎120的系统100可以实现一个或多个数字证书管理器(DCM)应用编程接口(API)。例如,可以在调试管理器引擎120中实施一个或多个DCMAPI,以在不使用基于DCM浏览器的界面的情况下使证书管理自动化。使用这些DCM API编写的应用可以更新驻留在系统证书存储中的证书,更新应用定义以使用所更新的证书,并且用发布所更新的证书的证书权威机构来更新信任列表。例如,DCM API可以使得例如X.509证书能够与用户简档相关联,或者用于此目的的任何其他合适的证书。API可添加、移除、列出和发现与用户简档(例如,开发者220的简档)相关联的证书。
系统100使用调试客户端130中的一个或多个还可以实现提供以下功能的用户调试证书模块:调用DCM API以添加、移除和/或更新对调试服务器引擎的证书分配118,调用DCM API用于为调试服务器引擎118检索和验证证书分配信息等。
证书(例如,用户调试证书321至323)可以包含对应开发者的用户简档的信息、模块/程序/服务程序名称、到期日期等。例如,调试管理器引擎120可以在提供对源代码的访问和/或数据记录之前验证证书。
应当理解,尽管本公开包括关于云计算的详细描述,但本文所叙述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
云计算是一种服务交付模型,用于使得能够方便的、按需的网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与所述服务的提供者的交互被快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特点如下:
按需自助服务:云消费者可以根据需要自动地单方面地配设计算能力,如服务器时间和网络存储,而无需与服务的提供商进行人类交互。
广泛的网络访问:能力可通过网络获得并且通过促进由异构瘦或厚客户端平台(例如,移动电话、膝上计算机、和PDA)使用的标准机制访问。
资源池:提供者的计算资源被池化以使用多租户模型来服务多个消费者,其中根据需求动态地分配和重新分配不同的物理和虚拟资源。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够以较高抽象级别(例如,国家、州或数据中心)指定位置。
快速弹性:可以快速且弹性地供应能力,在一些情况下自动地,以快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
测量服务:云系统通过在适合于服务类型(例如,存储、处理、带宽、和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供商的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用程序部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
基础架构即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作系统和应用程序。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
部署模型如下:
私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础设施由若干组织共享并且支持具有共享关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公共云:云基础架构可用于大众或大型行业组织,并由出售云服务的组织拥有。
混合云:云基础设施是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
现在参见图5,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备诸如例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点10可彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图5中所示的计算设备54A-N的类型仅旨在是说明性的,并且计算节点10和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
现在参见图6,示出了由云计算环境50(图5)提供的一组功能抽象层。应当提前理解,图6中所示的组件、层和功能仅仅是说明性的,本发明的实施例不限于此。如所描述,提供以下层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的实例包括:大型机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储装置65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户端75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价82在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行85提供根据SLA预期未来需求的云计算资源的预安排和采购。
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航91;软件开发和生命周期管理92;虚拟课堂教育交付93;数据分析处理94;事务处理95;以及调试程序96。
应当理解的是,本文描述的一个或多个实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。例如,图7描绘了用于实现本文所描述的技术的处理系统700的框图。根据本文描述的一个或多个实施例,处理系统700是图5的云计算节点10的示例。在示例中,处理系统700具有一个或多个中央处理单元(“处理器”或“处理资源”)721a、721b、721c等。(统称为或一般地称为(一个或多个)处理器721和/或(一个或多个)处理设备)。在本公开的各方面中,每个处理器721可包括精简指令集计算机(RISC)微处理器。处理器721经由系统总线733耦合到系统存储器(例如,随机存取存储器(RAM)724)和不同其他组件。只读存储器(ROM)722耦合到系统总线733并且可以包括基本输入/输出系统(BIOS),其控制处理系统700的某些基本功能。
进一步描绘的是耦合到系统总线733上的输入/输出(I/O)适配器727和网络适配器726。I/O适配器727可以是与硬盘723和/或存储装置725或任何其他类似部件通信的小型计算机系统接口(SCSI)适配器。I/O适配器727、硬盘723和存储设备725在本文中统称为大容量存储设备734。用于在处理系统700上执行的操作系统740可被存储在大容量存储设备734中。网络适配器726将系统总线733与外部网络736互连,使得处理系统700能够与其他这样的系统通信。
显示器(例如,显示监视器)735通过显示适配器732连接至系统总线733,该显示适配器可以包括用于改进图形密集型应用的性能的图形适配器和视频控制器。在本公开的一个方面中,适配器726、727和/或732可连接到一个或多个I/O总线,这些I/O总线经由中间总线桥(未示出)连接到系统总线733。用于连接诸如硬盘控制器、网络适配器和图形适配器之类的外围设备的合适的I/O总线通常包括诸如外围组件互连(PCI)之类的公共协议。附加的输入/输出设备被示为经由用户界面适配器728和显示适配器732连接到系统总线733。键盘729、鼠标730和扬声器731可经由用户接口适配器728互连到系统总线733,用户接口适配器728可包括例如将多个设备适配器集成到单个集成电路中的超级I/O芯片。
在本公开的一些方面,处理系统700包括图形处理单元737。图形处理单元737是经设计以操纵和改变存储器以加速预期输出到显示器的帧缓冲器中的图像的创建的专用电子电路。一般而言,图形处理单元737在操纵计算机图形和图像处理时非常有效,并且具有高度并行的结构,其使得它比通用CPU对其中并行完成大数据块的处理的算法更有效。
因此,如本文配置的,处理系统700包括处理器721形式的处理能力、包括系统存储器(例如,RAM 724)和大容量存储设备734的存储能力、诸如键盘729和鼠标730的输入装置以及包括扬声器731和显示器735的输出能力。在本公开的一些方面,系统存储器(例如,RAM724)和大容量存储设备734的一部分共同存储操作系统740(诸如来自IBM公司的操作系统)以协调处理系统700中示出的不同组件的功能。
本文参考相关附图描述本发明的不同实施例。在不脱离本发明的范围的情况下,可设计本发明的替代实施例。在以下描述和附图中阐明了元件之间的各种连接和位置关系(例如,上方、下方、相邻等)。除非另有规定,否则这些连接和/或位置关系可以是直接或间接的,并且本发明本文方面并示意图是限制性的。因此,实体的连接可以指直接的或间接的连接,并且实体之间的位置关系可以是直接的或间接的位置关系。此外,本文描述的各种任务和过程步骤可以并入具有本文未详细描述的附加步骤或功能的更全面的程序或过程中。
以下定义和缩写将用于解释权利要求书和说明书。如本文使用的,术语“包含(comprises)”、“包含(comprising)”、“包括(includes)”、“包括(including)”、“具有(has)”、“具有(having)”、“含有(contains)”或“含有(containing)”或其任何其他变体旨在涵盖非排他性的包括。例如,包含一系列要素的组合物、混合物、工艺、方法、物品或设备不必仅限于那些要素,而是可以包括未明确列出的或这种组合物、混合物、工艺、方法、物品或设备固有的其他要素。
此外,术语“示例性”在本文中用于意指“充当示例、实例或例证”。本文中描述为“示例性”的任何实施方式或设计不一定被解释为优于或优于其他实施方式或设计。术语“至少一个”和“一个或多个”可以被理解为包括大于或等于一的任何整数,即,一个、两个、三个、四个等。术语“多个”可以被理解为包括大于或等于二的任何整数,即,两个、三个、四个、五个等。术语“连接”可以包括间接“连接”和直接“连接”两者。
术语“约”、“基本上”、“大约”及其变体旨在包括与基于在提交申请时可用的设备的具体量的测量相关联的误差程度。例如,“约”可以包括给定值的±8%或5%、或2%的范围。
为了简洁起见,涉及制造和使用本发明的方面的常规技术可以或可以不本文详细描述。具体地,用于实现本文所描述的不同技术特征的计算系统和特定计算机程序的各个方面是众所周知的。因而,为了简洁起见,许多常规实施细节在本文中仅简要提到或完全省略,而不提供众所周知的系统和/或过程细节。
本发明可以是在任何可能的技术细节集成水平下的系统、方法、和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载至对应的计算/处理设备或下载至外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
本发明的各方面在本文中是参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述的。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机、或其他可编程数据处理装置的处理器以产生机器,这样使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
这些计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置、或其他设备上,以便使得在该计算机、其他可编程装置或其他设备上执行一系列操作步骤以产生计算机实现的过程,从而使得在该计算机、其他可编程装置、或其他设备上执行的指令实现流程图和/或框图的或多个框中所指定的功能/动作。
图中的流程图和框图展示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
已经出于说明的目的呈现了本发明的各个实施例的描述,但并不旨在是详尽的或限于所公开的实施例。在不脱离所描述的实施例的范围的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。本文使用的术语被选择来最好地解释实施例的原理、实际应用或优于市场中发现的技术的技术改进,或者使得本领域普通技术人员能够理解本文描述的实施例。
Claims (11)
1.一种用于程序的多用户调试的计算机实现方法,所述方法包括:
从第一开发者接收发起所述程序的调试的第一请求;
从第二开发者接收发起所述程序的所述调试的第二请求;
响应于接收到所述第一请求和所述第二请求,发起所述程序的所述调试;
将用于所述程序的第一源代码发送到所述第一开发者,其中所述第一源代码与所述第一开发者相关联;
将用于所述程序的第二源代码发送到所述第二开发者,其中所述第二源代码与所述第二开发者相关联;以及
响应于接收对所述第一源代码或所述第二源代码中的至少一个的改变而更新所述程序。
2.根据权利要求1所述的计算机实现的方法,其中,所述第一请求包括与所述第一开发者相关联的第一用户调试证书。
3.根据权利要求2所述的计算机实现的方法,进一步包括:
在将所述程序的所述第一源代码发送到所述第一开发者之前,基于所述第一用户调试证书确定所述第一开发者是否被授权访问所述程序的所述第一源代码。
4.根据权利要求3所述的计算机实现的方法,其中,响应于确定所述第一开发者被授权访问所述第一源代码,将所述第一源代码发送到所述第一开发者。
5.根据权利要求3所述的计算机实现的方法,其中响应于确定所述第一开发者未被授权访问所述第一源代码,不将所述第一源代码发送到所述第一开发者。
6.如权利要求1所述的计算机实现的方法,其中所述第二请求包括与所述第二开发者相关联的第二用户调试证书。
7.根据权利要求6所述的计算机实施的方法,进一步包括:
在将所述程序的所述第二源代码发送到所述第二开发者之前,基于所述第二用户调试证书确定所述第二开发者是否被授权访问所述程序的所述第二源代码。
8.根据权利要求7所述的计算机实现的方法,其中响应于确定所述第二开发者被授权访问所述第二源代码,将所述第二源代码发送到所述第二开发者。
9.根据权利要求7所述的计算机实现的方法,其中响应于确定所述第二开发者未被授权访问所述第二源代码,不将所述第二源代码发送到所述第二开发者。
10.一种系统,包括:
存储器,包括计算机可读指令;以及
处理设备,用于执行所述计算机可读指令,所述计算机可读指令控制所述处理设备执行如权利要求1-9之一所述的操作。
11.一种计算机程序产品,包括程序指令,所述程序指令可由处理器执行以使所述处理器执行根据权利要求1-9中任一项所述的操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/467,906 US11748236B2 (en) | 2021-09-07 | 2021-09-07 | Multi-user debugging with user data isolation |
US17/467,906 | 2021-09-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115774661A true CN115774661A (zh) | 2023-03-10 |
Family
ID=85386236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210855582.6A Pending CN115774661A (zh) | 2021-09-07 | 2022-07-20 | 具有用户数据隔离的多用户调试 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11748236B2 (zh) |
JP (1) | JP2023038901A (zh) |
CN (1) | CN115774661A (zh) |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8938708B2 (en) * | 2012-08-14 | 2015-01-20 | International Business Machines Corporation | Determining project status in a development environment |
CN103973741B (zh) | 2013-01-31 | 2018-02-09 | 国际商业机器公司 | 用于在云系统中进行远程调试的方法和装置 |
WO2015183276A1 (en) | 2014-05-29 | 2015-12-03 | Hewlett-Packard Development Company, L.P. | Isolating production environment debugging sessions |
US10152404B2 (en) | 2016-11-07 | 2018-12-11 | Vmware, Inc. | Collaborative debugging |
US10783056B2 (en) * | 2018-01-08 | 2020-09-22 | Ozcode Ltd | Time travel source code debugger incorporating point in time links |
US20200204618A1 (en) * | 2018-12-24 | 2020-06-25 | Nimbella Corp. | Method and system for addressing and executing serverless functions |
US20210149788A1 (en) * | 2019-11-18 | 2021-05-20 | Microsoft Technology Licensing, Llc | Software diagnosis using transparent decompilation |
CN111078554B (zh) * | 2019-12-16 | 2022-05-27 | 腾讯科技(深圳)有限公司 | 一种小程序调试方法、装置、设备及存储介质 |
US11307966B2 (en) * | 2020-04-06 | 2022-04-19 | Red Hat, Inc. | Shared software debugging service |
US11461223B2 (en) * | 2020-06-09 | 2022-10-04 | Methodics, Inc. | Efficient computing hardware and software component design testing through test fragmentation and isolated execution within a discrete computing environment |
CN112231231B (zh) * | 2020-11-16 | 2023-12-12 | 广州速威智能系统科技有限公司 | 云端服务的调试方法、系统及装置 |
US11693760B2 (en) * | 2020-12-21 | 2023-07-04 | RunSafe Security, Inc. | System and methods for live debugging of transformed binaries |
-
2021
- 2021-09-07 US US17/467,906 patent/US11748236B2/en active Active
-
2022
- 2022-07-15 JP JP2022113665A patent/JP2023038901A/ja active Pending
- 2022-07-20 CN CN202210855582.6A patent/CN115774661A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2023038901A (ja) | 2023-03-17 |
US20230071020A1 (en) | 2023-03-09 |
US11748236B2 (en) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10977167B2 (en) | Application monitoring with a decoupled monitoring tool | |
US11902251B2 (en) | Socket transferring for HPC networks using kernel tracing | |
US20150142978A1 (en) | Management of cloud provider selection | |
JP7446332B2 (ja) | ソフトウェア・プログラムの管理 | |
US10412192B2 (en) | Jointly managing a cloud and non-cloud environment | |
AU2020426828B2 (en) | Reserving one or more security modules for secure guest | |
US9513948B2 (en) | Automated virtual machine provisioning based on defect state | |
US11442781B2 (en) | Master image for deploying workloads in a heterogeneous computing environment | |
US11783065B2 (en) | Business data protection for running tasks in computer system | |
CN114595467A (zh) | 针对数据中心对象的多阶段保护 | |
US11157243B2 (en) | Client-side source code dependency resolution in language server protocol-enabled language server | |
WO2022053048A1 (en) | Ensuring secure provisioning of blockchain infrastructure | |
CN118056394A (zh) | 管理专有结构化对象 | |
US11558387B2 (en) | Validation of approver identifiers in a cloud computing environment | |
US20210281561A1 (en) | Certification for connection of virtual communication endpoints | |
US11748236B2 (en) | Multi-user debugging with user data isolation | |
CN115485677A (zh) | 在分布式数据存储环境中的安全数据复制 | |
US11829741B2 (en) | Instantiated deployment of microservices | |
CN112148935B (zh) | 用于多实例的nbmp功能执行的方法和装置 | |
WO2023193682A1 (en) | Local arrangement of remote deployment | |
JP2024505417A (ja) | クラスタ・リソース署名検証 | |
CN116457754A (zh) | 辅助处理器命令类型过滤 | |
JP2023047323A (ja) | スケーリング時にアプリケーションインスタンスを構成する為の、コンピュータに実装される方法、コンピュータシステム及びコンピュータ・プログラム | |
CN116569135A (zh) | 基于每一命令过滤指示符的命令类型过滤 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |