我是一家公司的顾问,这家公司有大量项目,这些项目在 GridView 中的每个项目(如更新、选择、删除、添加)中执行基本的 CRUD 操作
我在想,与其为每个项目重复创建相同的操作,为什么不创建某种基于 SOA 的架构设计模式呢?这样,任何人都可以继承使用 SOA 服务执行的操作并执行它。
另外,我可能在这里错了!我应该如何处理这种模式?这家公司的大多数开发人员都是数据库开发人员。
我是一家公司的顾问,这家公司有大量项目,这些项目在 GridView 中的每个项目(如更新、选择、删除、添加)中执行基本的 CRUD 操作
我在想,与其为每个项目重复创建相同的操作,为什么不创建某种基于 SOA 的架构设计模式呢?这样,任何人都可以继承使用 SOA 服务执行的操作并执行它。
另外,我可能在这里错了!我应该如何处理这种模式?这家公司的大多数开发人员都是数据库开发人员。
我认为您正在寻找一个数据服务层,即一个暴露服务的层,没有业务逻辑,只是 CRUD 操作。
看看开源“WSO2 Dataservices” http://wso2.com/products/data-services-server/
CRUD over services通常是一种反模式。更好的是具有商业意义的服务运营。
SOA 与其说是实现服务操作的重用,不如说是允许垂直分离不同的业务关注点。
与数据库对话的应用程序当然需要说 CRUD(因为 DB 本质上是 CRUDy)。没有摆脱这一点,也不应该被视为不好。但是,CRUD 永远不会有商业意义。
在考虑为您的企业构建应用程序的共享服务环境时,您应该考虑哪些具有业务意义的操作是通过面向服务共享的候选者。
然后这些可以成为您的垂直服务堆栈。
每个堆栈都将在其中包含数据库、数据访问、业务逻辑和表示层,可以将具有业务意义的服务操作暴露给其他服务或应用程序使用,并且可以完全分开开发和管理。
我听过的对 soa 的最佳描述在这个视频中: https ://vimeo.com/5022174