`
lee79
  • 浏览: 103412 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Web API应用架构设计分析(1)

阅读更多

Web API 是一种应用接口框架,它能够构建HTTP服务以支撑更广泛的客户端(包括浏览器,手机和平板电脑等移动设备)的框架, ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台。本文主要以ASP.NET Web API 的框架实现来介绍整个Web API应用架构设计,但不局限于.NET的技术。

1、Web API的核心层设计

在 目前发达的应用场景下,我们往往需要接入Winform客户端、APP程序、网站程序、以及目前热火朝天的微信应用等,这些数据应该可以由同一个服务提 供,这个就是我们所需要构建的Web API平台,基于上述的需求,很多企业的需求都是以Web API优先的理念来设计整个企业应用体系的。Web API作为整个纽带的核心,在整个核心层需要考虑到统一性、稳定性、以及安全性等方面因素。

 

从上图我们可以看到,整个外围的应用场景围绕着Web API核心层构建,如果我们把它换一种方式表达,那么也就是下面的设计图示,我们把微信应用、APP应用、Web应用、Winform应用,作为Web API接口层上面的一个界面应用层来处理,这样就是基于一个API接口层,接入多个或多种方式的界面应用层,从而构建企业丰富的数据服务应用。

由于Web API层作为一个公共的接口层,我们就很好保证了各个界面应用层的数据一致性,如果考虑到响应式的集成处理,我们甚至可以把微信应用、APP应用、Web 应用做层一套Web程序,即使为了利用各自应用的特殊性,也可以把这些应用做的很相似,这样就给用户提供了一个统一的界面表示方式,极大提高客户使用的界 面体验效果,用户几乎不需要额外的界面学习,就可以熟悉整个应用体系的各个模块使用。

在整个WebAPI下面可以通过业务逻辑层整合数据存储和外部接口访问两部分工作,也就是数据访问层、外部接口层这样的分层概念,如果扩展开来,我 们还可以提供给客户一些文件、图片、视频等资料的文件存储,类似微信的多媒体API接口一样,这样整个Web API的接口层就能为所有接入的客户端提供丰富的数据接口,从而实现强大的、灵活的接入。

上面提到了如果考虑到响应式的集成处理,我们甚至可以把微信应用、APP应用、Web应用做层一套Web程序,其实APP应用层,可以分为两种类 型,一种是原生的APP类型,采用原生语言如Object C来开发IOS应用,采用java来开发安卓的原生应用一样;还有一种是封装一个入口的原生框架+后台响应式Web页面,如下图所示。

对比原生应用,采用入口框架+响应式页面的方式,开发效率非常快、升级维护成本也可以降低很多,比较Web开发总比使用原始APP开发快捷得多。

从上面的架构分析来看,我们的Web API作为核心层,可以在上面开发我们各种企业业务应用,

在目前比较热门的会员管理、客户管理等方面,结合微信的应用催化剂,就可以做的更加符合移动的潮流,从而实现我们“互联网+”的应用落地。

 

2、Web API层在Winform混合框架中的应用

同样,在Winform界面里面,我们除了可以利用直接访问数据库方式,以及采用访问分布式WCF服务的方式接入,还可以使得它能够访问Web API的数据服务,从而构建成一个适应性更加广泛、功能更加强大的混合式开发框架模式。

安全性方便,直接访问数据库方式,没有在网络上公开接口,它们只是在单机或者局域网安全的环境运行,因此只需要确保数据库的安全即可,一般可以通过加密连接字符串方式实现一定的限制即可。

WCF服务的安全性,可以通过X509证书方式实现校验,也还可以利用自定义的用户名、密码验证方式进行检查等等。

对于Web API,由于它提供的是一种无状态的接口访问,而且往往Web API一般为了多种客户端接入的需要,可能需要发布在公网上进行访问,因此我们需要更加注重Web API接口层的安全性,这方面我们后面详细介绍。

也就是新型的混合式开发框架,除了直连数据库访问的传统模式,WCF分布式访问的WCF服务访问模式,还可以接入API分布式访问的Web API接口模式,他们的关系构成了一个完整的Winform应用体系,如下图所示。

下面图示是我的基于传统访问数据库方式和分布式WCF数据服务访问方式的一个模块分析图,围绕着混合型框架的核心,我们可以构建很多松散耦合的模块,从而能够为我们Winform应用的开发集成提供更高的开发效率。

混合型框架可以看成是Winform框架高级版本,除了它本身是一个完整的业务系统外,它外围的所有辅助性模块均(如通用权限、通用字典、通用附件 管理、通用人员管理。。。。)都实现了这种混合型的框架,因此使用非常方便,整个框架如果简化来看,就是在原有的Winform界面层,用接口调用方式, 避免和业务逻辑类的紧耦合关系。由于它是通过接口方式的调用方式,它本身又可以通过配置指定指向WCF的实现,因此也囊括了WCF框架的一切特点。在完成 Web API层的开发后,基于Web API层的整合就是我下一个阶段的工作了。

 

我们进一步分析混合式框架的实现细节,原来考虑的传统Winform访问数据库和WCF服务访问方式,就是通过一个配置模块,确定是采用直接访问数 据库方式,还是访问WCF服务的方式,它们两者是统一到一个Facade接口门面层上,如果考虑到Web API层,基于混合式的架构,也就是在这个Facade接口门面层上增加多一个Web API的接口的封装成即可。具体整个框架的架构图如下所示。

 

主要研究技术:代码生成工具、Visio二次开发、客户关系管理软件、病人资料管理软件、送水管理软件等共享软件开发
专注于Winform开发框架Web开发框架、WCF开发框架、微信门户开发框架的研究及应用。
  转载请注明出处:
撰写人:伍华聪  http://www.iqidi.com

 

http://www.cnblogs.com/wuhuacong/p/4614875.html

分享到:
评论

相关推荐

    WebAPI应用架构设计分析

    WebAPI是一种应用接口框架,它能够构建HTTP服务以支撑更广泛的客户端(包括浏览器,手机和平板电脑等移动设备)的框架,ASP...本文主要以ASP.NETWebAPI的框架实现来介绍整个WebAPI应用架构设计,但不局限于.NET的技术。

    zabbix web应用架构分析pdf版

    本文通过源码分析,探究zabbix web应用的整体架构,所有分析基于zabbix 3.0.10进行。 总体而言,zabbix web应用使用PHP开发,大量应用OOP方法,主要采用mvc架构,同时包含一套遵循JSON-RPC 2.0协议的web API。 ...

    zabbix web应用架构分析

    本文通过源码分析,探究zabbix web应用的整体架构,所有分析基于zabbix 3.0.10进行。 总体而言,zabbix web应用使用PHP开发,大量应用OOP方法,主要采用mvc架构,同时包含一套遵循JSON-RPC 2.0协议的web API。 由于...

    架构风格与基于网络的软件架构设计(Restful API)-中英文

    这篇论文定义了一个框架,致力于通过架构风格来理解软件架构,并且展示如何使用风格来指导基于网络的应用的架构设计。本文使用了一个对基于网络的应用的架构风格的调查,根据不同的风格在分布式超媒体的架构中所导致...

    ASP.NET Web API 2框架揭秘

    随着互联网的普及,互联网应用(尤其移动互联网应用)已经成为主流,“SOAP之重”已经越来越令我们无法承受,于是采用REST架构风格并直接采用Web进行通信的轻量级Web Service走进了我们的视野并登堂入室。...

    WebAPI应用支持HTTPS的经验总结

    在我前面介绍的WebAPI文章里面,介绍了WebAPI的架构设计方面的内容,其中提出了现在流行的WebAPI优先的路线,这种也是我们开发多应用(APP、微信、微网站、商城、以及Winform等方面的整合)的时候值得考虑的线路之一...

    整合微信小程序的Web API接口层的架构设计

    例如在《 C#开发微信门户及应用(43)--微信各个项目模块的定义和相互关系 》介绍了相关模块的划分,在《 基于微信小程序的系统开发准备工作 》介绍了Web API的架构设计思路。本篇随笔对之前介绍的架构内容进行...

    基于.NET7平台WebApi项目

    基于最新的.NET7平台,完全抛弃繁杂的接口,采用.NET最经典的三层架构,结合简化的DDD设计模式,搭配Sqlsugar、Autofac、Serilog、CSRedis等优秀框架,代码简洁,结构清晰,可塑性极强,适合中小型企业、个人项目等...

    RESTful-API后台系统架构设计(Java).doc

    ----------------------- RESTful-API后台系统架构设计(Java)全文共6页,当前为第1页。 RESTful-API后台系统架构设计(Java)全文共6页,当前为第2页。 RESTful-API后台系统架构设计(Java)全文共6页,当前为第3页。 ...

    Phenix 6(for WebAPI/Remoting & CSLA)企业级应用快速开发平台

    支持Winform(DevExpress)三层架构、前后端分离(JS+WebAPI服务)技术的开发场景。压缩包内Phenix.Test目录为框架的测试代码可供学习参考(环境搭建和学习之前请先浏览一遍全套的使用指南),Phenix.Extensions ...

    集成架构:对比WebAPI与面向服务的架构和企业应用程序集成

    首先,让我们简要介绍一下业务功能公开的历史,然后更详细地分析以下两个最新的概念之间的区别:面向服务的架构(SOA)和WebAPI。过去几十年来,整个行业在集成架构上的进化显而易见,业务功能的公开程度不断加大,如...

    REST API 安全设计指南.pdf

    提出一个既适于客户端应用又适于服务端的应用的、统一架构,极大程度上统一及简化了网站架构设计。 目前在三种主流的Web服务实现方案中,REST模式服务相比复杂的SOAP和XML-RPC对比来讲,更加简 洁,越来越多的web...

    MVC WebAPI跨平台开发例子

    本例子是一个WebAPI架构的应用,应用WebAPI部署一下服务,可以跨平台访问,所有的消费端都可以访问 此WebAPI,包括:移动端,B/S,C/S。数据格式为:json,xml。是一个很好的跨平台框架应用例子。

    使用Stripe API创建、销售和购买门票的web应用程序,具有微服务架构.zip

    使用Stripe API创建、销售和购买门票的web应用程序,具有微服务架构.zip

    ASP.NET Web应用程序常见网络安全漏洞解决方案分析.pdf

    ASP.NET Web应用程序常见网络安全漏洞解决方案分析.pdf

    集成架构:对比WebAPI与面向服务的架构

    摘要:总体上讲,SOA和WebAPI似乎解决的是同一个问题:以实时的、可重用的方式公开业务功能。本教程将分析这些举措有何不同,以及如何将它们融入到一个不断演变的集成架构中。文中还将讨论API管理与在它之前出现的...

    元数据驱动设计——为动态移动应用创建WebAPI

    甚至WebAPI服务器在当时也是一门新生的技术。在当时,许多不同种类的机器之间的远程调用仍然时常会通过由服务器生成的过程桩进行“握手”的方式以实现通信(例如CORBA)。差不多在同一时间,软件架构师KevinPerera在...

Global site tag (gtag.js) - Google Analytics