370 - 架构匹配 Flashcards
source code
Implementation/Development View
image files
Implementation/Development View
web pages
Implementation/Development View
DLLs
动态链接库
Implementation/Development View
executables
Implementation/Development View
data files
Implementation/Development View
A description of the organization (i.e., Java packages, JAR files) 组织结构描述(如Java包、JAR⽂
件)
Implementation/Development View
software assets
Implementation/Development View
off-the-shelf components
Implementation/Development View
Configuration management (ownership, release strategy)
Implementation/Development View
concurrency
Process View
parallelism
Process View
system startup and shutdown
Process View
fault
tolerance
Process View
components, layers
logical view
object distribution
Process View
Object Distribution(对象分布)指的是在分布式系统中,将对象(通常是面向对象编程中的对象实例)分布在多个计算机或节点上,以便它们可以在不同的物理位置之间进行交互和协作。对象分布允许不同位置的对象相互通信、共享资源和完成任务,形成一个虚拟的整体系统。
关键概念
远程对象:对象分布通常需要远程对象(Remote Object),即可以被其他节点上的对象远程调用的对象。这些对象可能通过网络进行通信,以响应远程的请求。
分布式对象系统:许多分布式系统(如Java RMI、CORBA、gRPC)都支持对象分布,使得开发者可以创建分布在不同机器上的对象,并让它们看起来像是在本地运行的一样。
代理模式(Proxy):在分布式系统中,通常会使用代理对象(或称“Stub”)来代表远程对象,帮助本地代码调用远程对象的方法。代理会将请求传递到远程对象,获取结果并返回给本地对象。
通信协议:对象分布通常需要依赖网络通信协议(如TCP/IP、HTTP)来实现远程调用和数据传输。
对象位置透明性:对象分布的一个目标是提供位置透明性,即让开发者可以忽略对象的实际位置,将分布式对象视为本地对象进行操作。
举例说明
假设一个电商系统将库存管理对象分布到不同的仓库服务器上,每个服务器管理本地库存数据。当用户下单时,系统可以通过对象分布的方式,远程调用库存对象的检查和更新方法。尽管这些库存对象位于不同的服务器上,系统仍然可以透明地操作它们,就像操作本地对象一样。
优缺点
优点:提高系统的扩展性和可用性,允许资源分布在多个位置,减轻单个服务器的负载。
缺点:增加了系统的复杂性和通信开销,网络延迟、数据一致性和错误处理也更具挑战。
典型应用
对象分布广泛应用于需要跨多节点协作的场景,如分布式数据库、微服务架构、分布式计算平台等。在这些系统中,对象分布使得多个服务器能够协作完成复杂任务,并对外提供统一的服务接口。
deadlock
Process View
response time
Process View
throughput
Process View
faults
Process View
reuse
Implementation/Development View
physical network configuration
Deployment/Physical View
subcontracting
Implementation/Development View
Subcontracting(分包)指的是将项目中的某些任务或部分工作外包给第三方公司或个人来完成。这种方法在项目管理、建筑、制造、软件开发等各个行业中都很常见。
Subcontracting 的工作原理
在分包过程中,主承包方(也称为总承包方)会与客户签订合同,负责项目的整体交付。而总承包方则会将一些特定任务或部分工作交给分包方完成。分包方通常具有某种特定的专业技能,能够在特定领域为主承包方提供支持。分包方完成的工作最后会汇总到主项目中,由总承包方对客户负责。
举例说明
假设一家公司承包了一个软件开发项目,其中包含前端开发、后端开发和测试。该公司可能会将测试工作分包给一家专业的测试公司,这样可以减少工作量,同时确保测试的专业性。
Subcontracting 的优缺点
优点:
降低成本:分包有时比自己完成更便宜,尤其是在需要专门技能的情况下。
提高效率:可以通过分包加快进度,因为不同部分可以同时进行。
利用专长:分包可以利用其他公司在特定领域的专业知识,提高项目质量。
缺点:
管理难度增加:需要协调多个分包方的进度和质量,增加了项目管理的复杂性。
质量风险:分包方的工作质量可能影响整个项目的质量。
沟通挑战:由于涉及多个团队,沟通可能变得困难,容易导致误解或信息延迟。
应用场景
分包在大型项目中非常常见,尤其是需要多种专业技能的项目。建筑行业、IT行业、制造业、服务业等都会使用分包来更好地分配资源、降低成本并提高效率。
Deliverables and things that create deliverables
Implementation/Development View