现在已确写在SOA的开发中也不就是将所有的功能都开发为公开的服务,而只是将与其它软件会发生交互的部分才设计为服务。
通过这样的一种方式,就必须从新开发的程序中提炼出服务。那么这里应当怎么的提炼出来服务呢,提炼出来的服务又与程序中其它的功能是一种什么样的关系呢?
在看SOA的很多介绍中都是将原有系统作为实现SOA服务的一个底层的依赖,根据这一种设想,那么根据以前的分层关系:x.IServices x.IServices.Impls ...就应当在x.IServices层之上建立EnterpriseServices,并且实现这个EnterpriseServices,并且在实现中调用x.IServices层。可以充分的利用已有的软件实现,包装出新的功能。那么也就表示开发新的软件中使用SOA与改造已有软件提供SOA的功能是相同的。而这里的EnterpriseServices只是将x.IServices包装为一个或多个服务而已。而且可能在有的情况之下可能EnterriseServices所提供的功能与x.IServices中的功能相同,并且这样不会有什么问题吗。
还有一种方式就是根据已有程序的功能和数据直接全新建立一个EnterpriseServices与x.IServices这一部分不产生关系,这样做的好处理是,因为x.IServices毕竟不是以实现EnterpriseServices为核心,而是以实现软件自己的功能为核心的,其性能不能够保证。数据实体等肯定需要重新为服务的需求而定义。而如果全新开发一个EnterpriseServices那么就能够为EnterpriseServices专门进行开发。但这里所产生的问题是,EnterpriseServices对x.IService极其实现的数据库数据的依赖关系是客观存在的,并且也不能够充分利用已有的代码。
这两种方式怎样好一点呢,或者说说了这么长时间的SOA,软件出来最后应当是个什么样子呢。是整个系统都是全SOA化呢,还是只是部分SOA化。思考很久不知道答案。

转载于:https://www.cnblogs.com/jeffwoot/archive/2008/03/15/1106826.html

如何从新开发的程序中提炼服务相关推荐

  1. 使用TS开发小程序中遇到的问题

    在使用ts开发小程序的过程中,遇到了一些开发工具和关于ts的使用上的一些问题,并记录解决方法 1. ts开发过程中类型指定问题 Type 'number | undefined' is not ass ...

  2. python开发的程序中以电子表格显示数据_使用 Python 读取电子表格中的数据实例详解...

    Python 是最流行.功能最强大的编程语言之一.由于它是自由开源的,因此每个人都可以使用.大多数 Fedora 系统都已安装了该语言.Python 可用于多种任务,其中包括处理逗号分隔值(CSV)数 ...

  3. uni-app开发小程序中的历史记录

    1.首先,你要把你搜索道的内容存到本地 2.然后在页面取出来 3.渲染页面即可 4.重复搜索过的会把之前的删除,添加最新的 5.这里还包括一键清空所有 注意这里的搜索历史记录是真实项目中的的案例包括细 ...

  4. 快手小店电脑版_微信PC版更新!支持在小程序中使用微信支付 | 一周资讯

    小程序1. 微信PC版更新,支持在小程序中使用微信支付.12月19日,微信PC端推出内测版2.7.2.73,新版本支持以下新功能:新增看一看精选内容,新的订阅号浏览体验,支持在小程序中使用微信支付.( ...

  5. GitChat · 移动开发 | 小程序快速上手:三步完成小程序从无到有的开发

    GitChat 作者:极笔北客 原文: 小程序快速上手:三步完成小程序从无到有的开发 关注微信公众号:GitChat 技术杂谈 ,这里一本正经的讲技术 小程序作为微信之父张小龙钦点,并多次公开为之宣传 ...

  6. 在VS.NET中使用clickonce技术开发Winform程序

    做为程序员,我们经常要面对的是对开发模式的选择,比如C/S模式和b/s模式.现在,很多人都似乎比较喜欢选择B/S模式进行web的开发,这其中的原因是很多的.但其中一点很重要的原因,那就是因为B/S开发 ...

  7. cloud foundry_将Spring Boot应用程序绑定到Cloud Foundry中的服务的方法

    cloud foundry 如果要试用Cloud Foundry ,最简单的方法是下载出色的PCF开发人员或在Pivotal Web Services站点上创建试用帐户. 其余文章假定您已经安装了Cl ...

  8. 开发微信小程序中SSL协议的申请、证书绑定、TLS 版本处理等

    在上篇随笔<基于微信小程序的系统开发准备工作>介绍了开发微信小程序的一些前期的架构设计.技术路线 .工具准备等方面内容,本篇随笔继续这个步骤,逐步介绍我们实际开发过程中对SSL协议的申请及 ...

  9. 在多线程数据平面开发套件(DPDK)应用程序中优化内存使用

    目录 介绍 参考申请 环与堆叠 从环形内存池转移到堆栈内存池所需的代码更改 测试方法 结果 结论 关于作者 资源资源 尾注 介绍 高速数据包处理应用程序可能会占用大量资源.软件工程师和架构师可以提高其 ...

最新文章

  1. 智能车竞赛技术报告 | 智能车视觉 - 中南林业科技大学 - 弃车人队
  2. Java运行作业控制语言_Java安全——语言本身的设计
  3. xa 全局锁_分布式事务如何实现?深入解读 Seata 的 XA 模式
  4. vim 按照字段排序文件
  5. 【实践】简洁大方的summernote 富文本编辑器插件的用发——导入篇
  6. 微软:Visual Studio2010能驱动世界
  7. 【opencv系列05】OpenCV4.X鼠标回调函数
  8. (一) shario教程资料
  9. 虚拟机开启以后电脑非常卡_专主开VT电脑版手机安卓模拟器开启VT 模拟器开启VT 虚拟机打开VT...
  10. MFC控件(7):Split Button
  11. Namomo Fish(Easy) Round 1
  12. Asp.Net开通支付宝PC端网页支付
  13. a/a的4种链接方式
  14. python调用adb shell命令_Python3 执行 adb shell 命令详解
  15. C语言——链表简单介绍
  16. c#做一个身份信息查询系统
  17. pyecharts源码解读(15)图表类包charts之组合图表: 选项卡Tab
  18. RPG游戏之龙腾世纪魔术师养成攻略
  19. 二分法(Bisection)求解单根(python,数值积分)
  20. ubuntu系统镜像下载源

热门文章

  1. javascript实现tab切换的方法(2)
  2. iOS 判断纯汉字,还是是否含有汉字
  3. Java分页查询工具类
  4. Spring 使用context:annotation-config的设置
  5. 如何获取网站icon
  6. sdut 2152:Balloons(第一届山东省省赛原题,DFS搜索)
  7. PHP代码优化的细节
  8. vue中使用 i18n 遇到的问题
  9. www服务器把信息组织成,管理信息系统第4章习题.doc
  10. android 按钮中断,android – 如何“中断”在AccessibilityService中执行的操作?