基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET平台开发指南 - 分布式应用

简介: 分布式系统         分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。

分布式系统

        分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。在分布式数据库系统中,用户感觉不到数据是分布的,即用户不须知道关系是否分割、有无复本、数据存于哪个站点以及事务在哪个站点上执行等。

        在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。系统中存在一个以全局的方式管理计算机资源的分布式操作系统。通常,对用户来说,分布式系统只有一个模型或范型。在操作系统之上有一层软件中间件(middleware)负责实现这个模型。一个著名的分布式系统的例子是万维网(World Wide Web),在万维网中,所有的一切看起来就好像是一个文档(Web 页面)一样。

        上面的两端是摘抄自网络中的对分布式系统的介绍,按照上面的含义,C/S、B/S结构的应用也应该是分布式的应用,这也许是广义上的分布式应用。而在我们日常的应用开发中,是指对应用的数据层、业务层使用比如DCOM、CORBA、JAVA RMI、WebServices等技术的应用并且数据库、业务逻辑、界面都运行在不同的机器上的应用,这也许是在狭义上的分布式应用。

AgileEAS.NET平台的实现

        Microsoft .Net平台时下为我们提供了.NET WebServices、.NET Remoting、WCF三种优秀的技术,当然了如果有可能,你可以直接通过Socket技术实现自己的分布式通信技术。

        目前AgileEAS.NET平台实现了基于.NET WebServices和.NET Remoting技术的分布式应用场景。

        AgileEAS.NET在实践基于接口驱动的分布式应用访问,对于开发好的系统,在部署时可以根据应用环境选择使用那一种技术,只需要修改配置文件即可。

        AgileEAS.NET在分布式应用技术中提供了如下的程序集:

        EAS.Distributed.Interface:分布式系统接口定义

        EAS.Distributed.Message:分布式通信消息定义

        EAS.Distributed.RemotingClient:基于.NET Remoting技术的AgileEAS.NET分布式实现。

        EAS.Distributed.WebServiceClient:基于WebService技术的AgileEAS.NET分布式实现。

        我们来看一下AgileEAS.NET平台的分布式定义:

wps_clip_image-26900

        我们在分布式应用定义了如下接口:

        IDistributedDataAccessor

        分布式数据访问接口,上面的类库可以看到他直接继承自数据访问接口IDataAccessor,本身并没有定义任何的方法定义,从本质上讲,这个接口实现的是分工式环境下为应用提供和普通应用一样的数据访问功能。

        IDistributedOrmAccessor

分布式ORM访问器接口,继承自数据访问接口IORMAccessor,本身并没有定义任何的方法定义,从本质上讲,这个接口实现的是分工式环境下为应用提供和普通应用一样的ORM操作功能。

       IDistributedFileTransfer

分布式文件传输接口,提供了文件存在检查、文件上传、下载等功能。

       IRMIAccessor

        分布式ORM访问器接口,继承自对象方法访问对象IMethodInvoker,本身并没有定义任何的方法定义,从本质上讲,这个接口实现的是分工式环境下为应用提供和普通应用一样的对像方法功能,这个类似于JAVA RMI的实现思想,在AgileEAS.NET平台中主要用于业务代理层访问业务逻辑层的功能。

分布式与本地的统一和切换

我们再来回顾一下第AgileEAS.NET平台开发指南-实现业务一文中提及的分层架构图:

wps_clip_image-5632

        并且提到如下内容:

        对于涉及到的通信/传输服务,或者说通信/传输服务层,在分布式应用中,她是一个事实存在的通道,客户端部署着界面层、业务代理层,应用程序服务器刚部署着业务逻辑层和数据访问层;但是在非分布式应用中,比如客户端联想着所有组件,那么就通信/传输服务,为了统一这种分层架构,我在AgileEAS.NET平台中,对于访问本地业务组件的这种服务搞了一个虚拟的通信/传输服务。

        AgileEAS.NET平台自2004年发展到今天,我信提出一个概念,那就在开发过程中,我们可以不考虑应用的部属,开发出的一个可以可以运行在普通环境下,也可以运行在普通环境,也可以运行在分工式环境中。

        我们如果实现这种普通应用于分工式应用的统一呢,答案是我们使用了会话、资源和基于接口驱动的访问器技术。

        AgileEAS.NET平台上下文为应用开发提供了上下文会话,一个会话包含着若干的会话资源(比如数据连接、N种访问器)、而IOrmAccessor、IDataAccessor、IMethodInvoker本身就是会话资源,在运行期的容器根据系统配置文件决定加载何种访问器:

        普通应用:

wps_clip_image-30815

        基于WebService的分布式环境:

wps_clip_image-971

        基于Remoting的分布式环境:

wps_clip_image-16415

 

链接

     AgileEAS.NET平台开发指南-系列目录

     AgileEAS.NET应用开发平台介绍-文章索引

     AgileEAS.NET官方网站

     敏捷软件工程实验室

 

QQ群:116773358

目录
相关文章
|
5月前
|
存储 Shell Linux
快速上手基于 BaGet 的脚本自动化构建 .net 应用打包
本文介绍了如何使用脚本自动化构建 `.net` 应用的 `nuget` 包并推送到指定服务仓库。首先概述了 `BaGet`——一个开源、轻量级且高性能的 `NuGet` 服务器,支持多种存储后端及配置选项。接着详细描述了 `BaGet` 的安装、配置及使用方法,并提供了 `PowerShell` 和 `Bash` 脚本实例,用于自动化推送 `.nupkg` 文件。最后总结了 `BaGet` 的优势及其在实际部署中的便捷性。
226 10
|
1月前
|
C# Android开发 iOS开发
2025年全面的.NET跨平台应用框架推荐
2025年全面的.NET跨平台应用框架推荐
86 23
|
2月前
|
存储 缓存 负载均衡
从零到一:分布式缓存技术初探
分布式缓存通过将数据存储在多个节点上,利用负载均衡算法提高访问速度、降低数据库负载并增强系统可用性。常见产品有Redis、Memcached等。其优势包括性能扩展、高可用性、负载均衡和容错性,适用于页面缓存、应用对象缓存、状态缓存、并行处理、事件处理及极限事务处理等多种场景。
190 1
|
2月前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
119 2
|
3月前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
3月前
|
监控 算法 网络协议
|
3月前
|
供应链 算法 安全
深度解析区块链技术的分布式共识机制
深度解析区块链技术的分布式共识机制
99 0
|
3月前
|
JSON 算法 安全
JWT Bearer 认证在 .NET Core 中的应用
【10月更文挑战第30天】JWT(JSON Web Token)是一种开放标准,用于在各方之间安全传输信息。它由头部、载荷和签名三部分组成,用于在用户和服务器之间传递声明。JWT Bearer 认证是一种基于令牌的认证方式,客户端在请求头中包含 JWT 令牌,服务器验证令牌的有效性后授权用户访问资源。在 .NET Core 中,通过安装 `Microsoft.AspNetCore.Authentication.JwtBearer` 包并配置认证服务,可以实现 JWT Bearer 认证。具体步骤包括安装 NuGet 包、配置认证服务、启用认证中间件、生成 JWT 令牌以及在控制器中使用认证信息
176 2
|
4月前
|
消息中间件 中间件 数据库
NServiceBus:打造企业级服务总线的利器——深度解析这一面向消息中间件如何革新分布式应用开发与提升系统可靠性
【10月更文挑战第9天】NServiceBus 是一个面向消息的中间件,专为构建分布式应用程序设计,特别适用于企业级服务总线(ESB)。它通过消息队列实现服务间的解耦,提高系统的可扩展性和容错性。在 .NET 生态中,NServiceBus 提供了强大的功能,支持多种传输方式如 RabbitMQ 和 Azure Service Bus。通过异步消息传递模式,各组件可以独立运作,即使某部分出现故障也不会影响整体系统。 示例代码展示了如何使用 NServiceBus 发送和接收消息,简化了系统的设计和维护。
94 3
|
4月前
|
人工智能 文字识别 Java
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
尼恩,一位拥有20年架构经验的老架构师,通过其深厚的架构功力,成功指导了一位9年经验的网易工程师转型为大模型架构师,薪资逆涨50%,年薪近80W。尼恩的指导不仅帮助这位工程师在一年内成为大模型架构师,还让他管理起了10人团队,产品成功应用于多家大中型企业。尼恩因此决定编写《LLM大模型学习圣经》系列,帮助更多人掌握大模型架构,实现职业跃迁。该系列包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构》等,旨在系统化、体系化地讲解大模型技术,助力读者实现“offer直提”。此外,尼恩还分享了多个技术圣经,如《NIO圣经》、《Docker圣经》等,帮助读者深入理解核心技术。
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?

热门文章

最新文章