zh.wikipedia.org/wiki/面向服务的架构

【程序功能做为服务】

面向服务的体系结构(英语:service-oriented architecture)是构造分布式計算的应用程序的方法。它将应用程序功能作为服务发送给最终用户或者其他服务

它采用开放标准、与软件资源进行交互并采用表示的标准方式。

  • 服務封裝
  • 服務鬆耦合(Loosely coupled) - 服務之間的關係最小化,只是互相知道。
  • 服務契約 - 服務按照服務描述文檔所定義的服務契約行事。
  • 服務抽象 - 除了服務契約中所描述的內容,服務將對外部隱藏邏輯。
  • 服務的重用性 - 將邏輯分佈在不同的服務中,以提高服務的重用性。
  • 服務的可組合性 - 一組服務可以協調工作並組合起來形成一個組合服務。
  • 服務自治 – 服務對所封裝的邏輯具有控制權
  • 服務無狀態 – 服務將一個活動所需保存的資訊最小化。
  • 服務的可被發現性 – 服務需要對外部提供描述資訊,這樣可以通過現有的發現機制發現並訪問這些服務。

en.wikipedia.org/wiki/Service-oriented_architecture

【不强调模块  分布式】

Different services can be used in conjunction to provide the functionality of a large software application.[4] So far, the definition could be a definition of modular programming in the 1970s. Service-oriented architecture is less about how to modularize an application, and more about how to compose an application by integration of distributed, separately-maintained and deployed software components. It is enabled by technologies and standards that make it easier for components to communicate and cooperate over a network, especially an IP network.

Standardized service contract

Services adhere to a standard communications agreements, as defined collectively by one or more service-description documents within a given set of services.Service reference autonomy (an aspect of loose coupling)The relationship between services is minimized to the level that they are only aware of their existence.Service location transparency (an aspect of loose coupling)Services can be called from anywhere within the network that it is located no matter where it is present.Service longevityServices should be designed to be long lived. Where possible services should avoid forcing consumers to change if they do not require new features, if you call a service today you should be able to call the same service tomorrow.

Service abstraction

The services act as black boxes, that is their inner logic is hidden from the consumers.

Service autonomy

Services are independent and control the functionality they encapsulate, from a Design-time and a run-time perspective.

Service statelessness

Services are stateless, that is either return the requested value or give an exception hence minimizing resource use.

Service granularity

A principle to ensure services have an adequate size and scope. The functionality provided by the service to the user must be relevant.Service normalizationServices are decomposed or consolidated (normalized) to minimize redundancy. In some, this may not be done, These are the cases where performance optimization, access, and aggregation are required.[15]

Service composability

Services can be used to compose other services.

Service discovery

Services are supplemented with communicative meta data by which they can be effectively discovered and interpreted.

Service reusability

Logic is divided into various services, to promote reuse of code.

Service encapsulation

Many services which were not initially planned under SOA, may get encapsulated or become a part of SOA.

单块应用程序

通信协议、中间件、服务粒度  的确定

其他分解技术

库 模块   的缺点

最新文章

  1. [机器学习] 深度学习之caffe1——软件配置与测试
  2. docker快速启动脚本
  3. apache开启虚拟主机localhost无法访问
  4. Android系列--DOM、SAX、Pull解析XML
  5. FE—— Code First 初体验 01(转)
  6. Gradle Import Wizard--官方文档
  7. [转]unload dynamic library needs two dlclose() calls?
  8. Python-WXPY实现微信监控报警
  9. Android Studio Gradle 多渠道自动打包,动态修改HostUrl,签名apk,混淆配置详解
  10. Hbase出现ERROR: Can't get master address from ZooKeeper; znode data == null解决办法
  11. python—迭代器、生成器
  12. net::ERR_CONNECTION_RESET 问题排查
  13. Linux 删除用户,用户主目录
  14. PCB
  15. WebStrom设置默认浏览器
  16. Xshell 连接 CentOS 7 与 Ubuntu Server
  17. Ring0 - Lookaside结构
  18. Redis进阶实践之十四 Redis-cli命令行工具使用详解
  19. tsconfig.json
  20. django -- 插入行的不同方式

热门文章

  1. 基于css3翻牌效果
  2. 【MFC】Button控件和Picture Control的鼠标事件执行顺序
  3. linux内核学习之四:进程切换简述【转】
  4. linux 下 异步IO
  5. phpcms V9 广告模块中广告模板修改
  6. L1-5. A除以B【一种输出格式错了,务必看清楚输入输出】
  7. tr命令用法
  8. [Bzoj5359][Lydsy1805月赛]寻宝游戏(dp)
  9. 记Weblogic采用RAC方式链接数据库遇到的问题
  10. Android应用开发之所有动画使用详解