由面向对象编程以及RESTful软件架构学习产生的想法(面向对象服务器设计)
来源:互联网 发布:如何查看淘宝卖家姓名 编辑:程序博客网 时间:2024/05/16 06:01
写在前面的话:
这些都是我个人不成熟的看法,想到什么就说什么,希望大家见仁见智。
这几天学习了java面向对象编程,还有RESTful软件架构风格,突然有种融会贯通,水乳交融的感觉。从C语言到Java,从SOAP Web服务架构到RESTful Web服务架构,都走了同一条路,都是从面向过程设计到面向对象设计。C语言和Java之间的爱恨纠葛我就不说了,有过程序开发经验的人都懂。我说一说我对SOAP与RESTful设计之路的理解。
SOAP=RPC+http+XML,:采用HTTP作为底层通讯协议;RPC作为一致性的调用途径,XML作为数据传送的格式,允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互。而RESTful=http+XML/json,REST 设计原则是遵循ROA(Resource-Oriented Architecture,面向资源的体系架构)进行设计。ROA 是什么?简单点说,ROA 是一种把实际问题转换成 REST 式 Web 服务的方法,它使得 URI、HTTP 和 XML 具有跟其他 Web 应用一样的工作方式。
我们使用SOAP搞系统是这样的:
- 有新建用户功能
- 新建用户需要一个URL
- 往这个URL发送的数据要定义好
- 开始写后端和前端
若要在服务器上创建资源,应该使用 POST 方法。
若要检索某个资源,应该使用 GET 方法。
若要更改资源状态或对其进行更新,应该使用 PUT 方法。
若要删除某个资源,应该使用 DELETE 方法。
经过这样的一番扩展,我们对一个资源的 CRUD 操作就可以通过同一个 URI 完成了:
读取) [GET] http://www.example.com/photo/logo
仍然保持为 [GET] http://www.example.com/photo/logo
(创建)http://www.example.com/photo/logo/create
改为 [POST] http://www.example.com/photo/logo
(更新)http://www.example.com/photo/logo/update
改为 [PUT] http://www.example.com/photo/logo
(删除)http://www.example.com/photo/logo/delete
改为 [DELETE] http://www.example.com/photo/logo
从而进一步规范了资源标识的使用。
总结
因此,显而易见,SOAP是面向“操作”设计的,而RESTful是面向资源设计的。我们用程序设计的思维来解读,SOAP是面向过程设计的,RESTful是面向对象设计的。由此,我们纵观互联网的发展,程序设计与软件架构风格设计或多或少都是从面向过程设计走向面向对象设计。事实证明,这样的发展道路,极大地提高了我们整个软件系统的工作效率。而今,我们在服务器架构设计中,也可以套用这样的思维方式,因此,服务器设计也可以从面向过程设计走向面向对象设计。如,我们设置专用的业务服务器,业务服务器下属设立不同的组件服务器(图片服务器,文档服务器、缓存服务器等等),业务服务器使用组件服务器反馈的数据处理业务。对于组件服务器,我们运用封装、继承、多态的思想来设计,对外,只提供服务接口出来。根据这样的思维,我们就能开发一套服务器模版,降低服务器的架构成本,提高服务器的可复用性。这样,从程序设计、软件架构风格设计到服务器架构设计,都运用面向对象的方法,我认为,这可能将会更进一步地提高整体软件系统的运行效率。
总结
因此,显而易见,SOAP是面向“操作”设计的,而RESTful是面向资源设计的。我们用程序设计的思维来解读,SOAP是面向过程设计的,RESTful是面向对象设计的。由此,我们纵观互联网的发展,程序设计与软件架构风格设计或多或少都是从面向过程设计走向面向对象设计。事实证明,这样的发展道路,极大地提高了我们整个软件系统的工作效率。而今,我们在服务器架构设计中,也可以套用这样的思维方式,因此,服务器设计也可以从面向过程设计走向面向对象设计。如,我们设置专用的业务服务器,业务服务器下属设立不同的组件服务器(图片服务器,文档服务器、缓存服务器等等),业务服务器使用组件服务器反馈的数据处理业务。对于组件服务器,我们运用封装、继承、多态的思想来设计,对外,只提供服务接口出来。根据这样的思维,我们就能开发一套服务器模版,降低服务器的架构成本,提高服务器的可复用性。这样,从程序设计、软件架构风格设计到服务器架构设计,都运用面向对象的方法,我认为,这可能将会更进一步地提高整体软件系统的运行效率。
0 0
- 由面向对象编程以及RESTful软件架构学习产生的想法(面向对象服务器设计)
- 面向对象的架构设计
- 面向对象来做一个迷宫游戏(努深刻学习面向对象技术以及面向对象的设计模式)
- 面向对象,服务器架构,设计模式探讨
- 软件架构设计的三个维度:面向对象、面向方面、面向服务。
- 软件架构设计的三个维度 之 面向对象
- 面向对象编程以及Python面向对象
- 什么是面向对象的软件架构,以下是一个实现UndoRedo机制的面向对象架构设计
- Javascript面向对象编程 产生对象
- Javascript面向对象编程 产生对象
- 学习:设计模式 可复用面向对象软件的基础 【引言】
- 关于面向对象的数据库设计的想法
- 学习----面向对象编程
- 18天Java学习---10.面向对象编程05-面向对象程序的设计步骤
- 关于面向对象和设计模式的一些想法
- 领域驱动设计与面向对象的一点想法
- 面向对象架构 设计原则
- 软件架构设计之四:面向对象方法
- 今天开通博客吧
- 用R语言进行数据分析
- spark2.0.0发布
- 面向对象的三个基本特征 和 五种设计原则
- 删除window服务
- 由面向对象编程以及RESTful软件架构学习产生的想法(面向对象服务器设计)
- 木马编程-手把手带你进入木马的世界之木马编程
- NYOJ_1036 非洲小孩 HDU_1687 Lucky Light
- leetcode Inorder Successor in BST
- Hibernate+Mysql写数据库的中文乱码问题
- Java程序编写实现日历的打印
- Pro JPA2读书笔记系列(五)-第五章(集合映射)
- 如果要将整数A转换为B,需要改变多少个bit位?
- POJTiling 2506(递推+大数)