首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >下面的项目发行版是否有效?

下面的项目发行版是否有效?
EN

Software Engineering用户
提问于 2020-09-07 23:20:01
回答 1查看 67关注 0票数 1

目前,我们正在开发一个面向服务的应用程序,这是一个大学签名,教授创建了两个应用程序,一个用于后端,另一个用于前端。我们正在使用maven、hibernate和JPA。他提出了以下一揽子分发方案:

但是,我希望简化发行版并减少代码,因此,我提出了以下发行版:

这里的不同之处在于,他在接收参数的包装类中公开了重用的服务。我不公开它们,当请求某些操作时,我使用外观来调用它们,这样外观就只接收前端参数。

这两个发行版是否有效的SOA包发行版?

有必要有一个DAO包吗?

现在,我刚开始使用服务,我不知道这两者是否是有效的SOA,所以这是我在询问时的意图。我们正在使用SOAP,但我不知道SOAP或JSON在多大程度上决定了一个项目是否面向服务。

基本上,这个问题可以被重新解释为:哪些元素使SOA成为实际的SOA,基于此,这两个项目是面向服务的开发吗?

注1:我的服务包实现了我创建的Transactional<T>接口。它包含什么?createupdatedeletefindByIdfindAll,它们基本上为数据库提供了CRUD。

这个接口是在我定义的AbstractService中实现的一次,我的bean也实现了这样的接口。

注2:在您可以说使用Spring、CrudRepository或maven的原型之前,这位教授要求使用Java 7、hibernate、SOAP和其他任何东西。(全用手)

最后,先谢谢你。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2020-09-14 00:28:23

很难说这两种实现是否都是有效的SOA实现。

之所以如此,是因为SOA是一个过程级架构。它采用许多独立的过程,并使用通信范式(通常是在物理网络上)集成它们。

有一些语言,如埃菲尔及其代理语法,允许SOA在单个程序中进行琐碎的实现。每个Agent都是一个进程,通信模式是通过内存传递消息。

您向我展示的更接近领域驱动设计,您已经深入研究了系统的某个特定组件,并详细说明了它所具有的内部功能,并根据所需的知识对其进行了组织。

要想知道您是否有SOA,最简单的方法是通过系统跟踪实际的用例。进入给定组件的请求需要在相同的级别上,并且在相同的主题上。

例如,考虑一个网络商店:前端,Api,DB。

最前端是关于商店的,比方说模型火车。如果用户对模型火车等有兴趣.然后商店就能处理好了。

它应该处理驾驶执照文件吗?不,因为这不是主题。如果它不这样做,那么它就是一个单一的服务。

但是SOA是一个后端架构,它不是作为UI设计的指南。尽管在设计GUI时,停留在主题上通常是有帮助的。

API字段来自前端的请求。登录,注销,我的车里有什么,你有什么产品,等等.到目前为止,这并不像一个服务,有三个主题:帐户管理、购物车管理、产品。感觉像是三种服务。可能还会有其他请求,例如:按卡付款、订单历史记录、可能产生更多服务的发货状态。

接下来要考虑的是数据库。他们是否应该共享同一个数据库?答案是否定的。如果他们这样做了,他们就会有相同的话题。因此,每个服务都需要自己的独立数据库。

另一方面,没有理由有单独的数据库服务器。考虑进来的请求:创建表,选择,更新,删除,删除。看起来主题是关于数据库的。感觉就像一个服务就可以了(除非在服务的数据存储中迫切需要一组不同的特性)。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/415658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档