使用RpcLite构建SOA/Web服务
使用RpcLite构建SOA/Web服务
SOA框架系列
提到Web服务最先想到的就是WebService此外常用的还有WCF、ServiceStack、WebApi等。
RpcLite是一个开源的轻量级SOA服务框架,除了基本的提供Web服务还包括SOA治理系统(本文暂不展开在后继的文章会详细说明)。RpcLite与WCF比较像,下面介绍使用方法。
1. 创建一个Web项目,Framework选择>=4.0
2. 从NuGet中添加RpcLite
安装后项目中会添加一个TestService1.cs文件,此文件是一个最简单的服务提供一个接口GetDateTimeString返回当前时间的字符串
Web.config也添加了相关的配置
3. 修改配置
到此为止,最简单有服务就已经完成了。F5运行在浏览器中把地址改为http://localhost:53189/api/test/GetDateTimeString可看到接口返回的结果,用JQuery, Ajax都可以访问了。
4. 基本原理
架构图
RpcLite的入口是一个异步HttpHandler,在Handler中会把RequestUrl、ContentType、RequestStream、ResponseStream、HttpContext等放到一个新的ServiceContext中交给RpcService处理,RpcService会根据RequestUrl找到对应的Service及Action根据ContentType选择序列化方式(默认支持json、xml,可以添加自定义序列化方式),然后反序列化得到参数,再使用参数调用具体的服务方法,得到结果后返回给客户端。
5. 配置文件说明
再来看Web.config,
标记1. 添加HttpHandler添加后对应地址的请求会被RpcAsyncHandler处理。
标记2. 添加RpcLite配置节点处理器,添加后RpcLite就能读取RpcLite节点中的数据。
标记3. 此处添加了一个服务,name只起识别作用最好不要重复,path确定此服务会处理来自哪些url地址的请求需要使用虚拟目录相对地址即以~/开头,type设置实现此服务的类格式是<类全名>, 程序集名。
标记4. 这里是添加一个客户端配置,如果创建客户端实例时未指定服务url则会使用这里设置的path。如ClientFactory.GetInstance<ITestService>()此处未指定服务url就会从配置中查找。
其它. appId、environment、namespace与治理系统相关此处不展开明说。
代码从下面给出的git中获取。
6. 相关链接
Demo git 地址:https://github.com/chrishaly/RpcLiteDemo
RpcLite git 地址:https://github.com/aolyn/RpcLite
NuGet: https://www.nuget.org/packages/RpcLite
QQ群:364617712
欢迎加入
夜深了、写文章比写代码麻烦。这个框架前年2014年就写得差不多了,一直没时间介绍。有兴趣的朋友可以在git上fork & pull request。
联系方式
后继会有系列文章详细介绍
thanks & regards.
Chris
使用RpcLite构建SOA/Web服务的更多相关文章
- 使用RpcLite构建SOA/Web服务(Full .Net Framework)
使用RpcLite构建SOA/Web服务(Full .Net Framework) SOA框架系列 1. 使用RpcLite构建SOA/Web服务 2. 使用RpcLite构建SOA/Web服务(Fu ...
- 使用 Spring 3 MVC HttpMessageConverter 功能构建 RESTful web 服务
原文地址:http://www.ibm.com/developerworks/cn/web/wa-restful/ 简介: Spring,构建 Java™ 平台和 Enterprise Edition ...
- 用于构建 RESTful Web 服务的多层架构
作者:Bruce Sun, Java 架构师, IBM 出处:http://www.ibm.com/developerworks/cn/web/wa-aj-multitier/ 用于构建 RESTfu ...
- 基于IIS构建Pyathon Web服务
本文简单叙述了在Windows下,如何利用IIS构建Python Web服务. 其主要步骤如下: 1.在IIS下构建一个站点,如图: 2.配置Python文件的处理程序,如图: 3.最后,在对应站点根 ...
- Guzzle – 构建 RESTful Web 服务的 PHP HTTP 框架
Guzzle 减轻了发送 HTTP 请求和创建 Web 服务客户端的痛苦.它包含建立一个强大的网络服务客户端的工具,包括:服务描述定义的输入和输出的 API,资源迭代器遍历分页资源,尽可能有效地发送大 ...
- WCF:为 SharePoint 2010 Business Connectivity Services 构建 WCF Web 服务(第 1 部分,共 4 部分)
转:http://msdn.microsoft.com/zh-cn/library/gg318615.aspx 摘要:通过此系列文章(共四部分)了解如何在 Microsoft SharePoint F ...
- SpringBoot实战(十)之使用Spring Boot Actuator构建RESTful Web服务
一.导入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http ...
- 基于jersey和Apache Tomcat构建Restful Web服务(二)
基于jersey和Apache Tomcat构建Restful Web服务(二) 上篇博客介绍了REST以及Jersey并使用其搭建了一个简单的“Hello World”,那么本次呢,再来点有趣的东西 ...
- 基于jersey和Apache Tomcat构建Restful Web服务(一)
基于jersey和Apache Tomcat构建Restful Web服务(一) 现如今,RESTful架构已然成为了最流行的一种互联网软件架构,它结构清晰.符合标准.易于理解.扩展方便,所以得到越来 ...
随机推荐
- background-size在PC端和移动端使用媒体查询的不同
1.PC端background-size:100%:是展现原图的大小. 2.使用媒体查询的移动端的background-size:100%:是根据内容的高度自动拉伸高度的.
- 微软重生:4年市值U型大逆转,超越谷歌重返巅峰!
划重点: 智东西(公众号:zhidxcom)文 | 寓扬 在最近的两个星期里,微软和谷歌正在进行一场市值大比拼,双方在7700亿美元上下厮杀正紧,抢夺着全球市值第三大公司的宝座(前两位为市值超过900 ...
- js进阶 13-3 jquery动画显示隐藏,滑动,淡入淡出的本质是什么
js进阶 13-3 jquery动画显示隐藏,滑动,淡入淡出的本质是什么 一.总结 一句话总结:分别改变display,高度,opacity透明度这三种属性. 1.fade系列函数有哪四个? fade ...
- Spring-Boot整合freemarker引入静态资源css、js等(转)
一.概述 springboot 默认静态资源访问的路径为:/static 或 /public 或 /resources 或 /META-INF/resources 这样的地址都必须定义在src/mai ...
- 字符的输入和输出即:getchar和putchar
#include <stdio.h> int main(int argc, const char * argv[]) { putchar(getchar());//这种方式就是输入一个字符 ...
- context.getSystemService的简单说明
在android开发过程中这种方法一定不会陌生,比方我们在获取WindowManager和LayoutInflater对象的时候就须要我们调用这种方法.这种方法在context这个抽象类的一个抽象方法 ...
- MAVEN Error: Using platform encoding (GBK actually) to copy filtered resources.....
环境:Maven3.2.5+MyEclipse 2015CI 现象:在Maven编译过程中出现错误信息:Using platform encoding (GBK actually) to copy f ...
- Linq读取XML数据
1.XML数据格式:<?xml version="1.0"?><customers> <customer> <id>ALFK ...
- 浅浅的分析下es6箭头函数
原文链接:http://damobing.com/?p=589 前言 箭头函数作为es6重点的语法内容之一,很多开发者对其爱不释手,当也要注意其可能存在的问题,其正确的使用场景,否则会引起不必要的bu ...
- 【Codeforces Round #439 (Div. 2) C】The Intriguing Obsession
[链接] 链接 [题意] 给你3种颜色的点. 每种颜色分别a,b,c个. 现在让你在这些点之间加边. 使得,同种颜色的点之间,要么不连通,要么连通,且最短路至少为3 边是无向边. 让你输出方案数 [题 ...