标签: soa

基于微服务的web应用程序的体系结构

我对网络应用程序分散到微服务这一点感到困惑 - 它是在url级别还是在模型级别?举个例子,假设我有一个3页的单片应用程序.假设每个页面都有一个单独的用例,我想用他们自己的微服务来支持它们.现在,哪些是实现基于微服务的架构的正确方法:

  • 我创建了三个不同的应用程序(微服务),每个应用程序包含其中一个页面的(路径,控制器,模型,模板).然后根据请求的页面,我将请求路由到该特定应用程序.这意味着从数据库到HTML的整个页面由一个单独的应用程序提供.基本上,同一网站中的不同页面完全由后端的不同应用程序提供服务.
  • 3个微服务不处理UI内容,只处理其用例(模型,控制器,无模板)的数据,并通过REST API进行公开.我有一个面向公众的应用程序.此应用程序仅查询三个不同的应用程序(微服务),然后构建要返回给浏览器的html页面.在这种情况下,Web应用程序中的所有页面都由一个应用程序提供,该应用程序在内部使用三种不同的微服务.

在此输入图像描述

soa web-applications microservices

27
推荐指数
2
解决办法
1万
查看次数

SOA可以用REST设计吗?

我最近一直在阅读有关SOA的很多内容,但大多数内容都与SOAP相关,并且有许多属于C#/ Java系统的"官僚"内容.老实说,我认为这样的官僚主义,特别是SOAP,是一种痛苦的屁股.所以,我很好奇,SOA可以用REST设计吗?

现在,在Ruby应用程序中,我将所有控制器都设置为RESTful.我的Web界面(表单等)向核心发出GET/POST/PUT/DELETE请求,这是一个REST Web服务.使用该核心的所有其他系统都会向其发出RESTful请求.这是一个SOA吗?

architecture soa

26
推荐指数
2
解决办法
2万
查看次数

SOA和共享数据库

我不了解SOA(面向服务的体系结构)和数据库.虽然我被SOA概念所吸引(将可重用的业务逻辑封装到服务中),但我无法弄清楚如果其他服务/系统需要封装在服务中的数据表,它应该如何工作 - 或者SOA适用于所有在这种情况下?

更具体地说,假设我有两个服务:

  • CustomerService:包含我的Customers数据库表和关联的业务逻辑.
  • OrderService:包含我的Orders表和逻辑.

现在如果我需要带有SQL语句JOINCustomersOrders表怎么办?如果表包含数百万个条目,如果我必须使用SOAP/XML通过网络发送数据,则会产生不可接受的性能.以及如何执行JOIN

做了一点研究,我找到了一些建议的解决方案:

  • 使用复制在需要时生成所需数据的本地副本.但是那时没有封装,那么使用SOA有什么意义呢?这在StackOverflow上讨论过,但没有明确的共识.
  • 设置主数据服务,封装所有数据库数据.我猜它会变成怪物大小(每个存储过程基本上有一个API调用)并且需要一直更新.对我而言,这似乎与企业数据总线概念有关.

如果您对此有任何意见,请告诉我.


编辑:一年过去了,我对SOA的兴趣减少了,概念的普及也是如此.如今,人们似乎想要专注于RESTful服务.

database soa shared

25
推荐指数
1
解决办法
8651
查看次数

Ruby on Rails SOA设计资源和示例

我正在寻找一些资源来获取现有的单片Rails 3.0应用程序(35K LOC)并将其分解为SOA设计.任何书籍,博客,截屏或示例应用程序都会很棒.

我想回答的主要问题是:

  • SOA甚至是正确的设计吗?
  • 我从哪里开始?
  • 我可以避免哪些常见的陷阱?
  • 我现在应该考虑什么?我以后可以做些什么?(即表演)

我见过的一些资源,但不完全确定它们是否适合开始:

ruby soa ruby-on-rails

24
推荐指数
1
解决办法
5748
查看次数

如果SOA已经死了,什么在取代它?

如果这个问题很密集,请原谅我.

背景:我们有几个内部应用程序集成在数据库中.我们正在研究如何突破这一点,似乎转向一种架构,其中每个应用程序通过服务公开其功能,而不是调用其他应用程序的数据库,这是最有意义的.这对我来说似乎是一种面向服务的架构.当我浏览有关开始使用面向服务的体系结构的信息时,我看到很多关于本文的讨论:SOA已经死了; 长期服务.我也从Martin Fowler和Jim Webber那里看到了这一点:我的公共汽车在这方面看起来很大吗?.

题:

  • SOA已经死了,还是围绕着它的嗡嗡声?
  • 开始使用面向服务的体系结构的最佳方法是什么,以便尽可能保持简洁和简单?

architecture soa

23
推荐指数
4
解决办法
9980
查看次数

SOA或WCF的反模式

虽然我可以找到很多主张SOA或WCF的文章,但我的问题是不应该将其作为服务公开,我们从SOA失败中学到了什么减少.WCF是一种实现SOA的方法,如果我们使用WCF,这意味着我们正在实现SOA.肯定有很多人使用C#编写不可维护的代码.

wcf soa

21
推荐指数
2
解决办法
4764
查看次数

SaaS,SOA和Web服务

这个问题可能很愚蠢,但我真的很困惑.

我想实现一个软件即服务(SaaS),我认为我可以使用Visual Studio和WCF来实现它.但我读过WCF和Web服务是SOA实现而不是SaaS.

我可以使用WCF实施SaaS吗?SaaS,SOA和Web服务之间的关系是什么?

soa web-services saas

21
推荐指数
1
解决办法
1万
查看次数

SOA和ESB之间的区别

我对这些Web服务术语SOA,ESB感到困惑.

有人请解释一下.

soa esb

21
推荐指数
2
解决办法
3万
查看次数

使用消息传递的微服务和SOA

我一直非常有兴趣尝试将微服务/ SOA作为一种架构,并且很难概念化服务之间的集成是如何实现的.

我喜欢使用消息传递将客户端与服务分离的想法,但不了解系统如何专门使用它.典型的异步操作和发布/订阅内容显然是有意义的 - 例如创建新订单,广播报告数据等.我不明白的是人们是否通常尝试将消息传递用于常见的请求/回复场景 - 例如,用户点击他们的"个人资料"页面,并且需要在页面上呈现的部分数据来自用户服务.

我知道常见的消息传递实现提供类似REST的回复/请求功能,但是它通常用于简单的数据请求吗?微服务似乎更有可能暴露REST端点并向消息代理注册它将参与的不同类型的通信,但我所看到的SOA和微服务架构的所有这些演示似乎都暗示它们只使用其中一种. .

感谢您的任何精心设计/经验!

architecture messaging soa microservices

21
推荐指数
1
解决办法
5242
查看次数

产品版本微服务

我进入基于docker的微服务架构,我有3个微服务,它们共同创建了一个产品,例如"CRM系统".

现在我希望我的客户能够随时升级他的产品.我有3个不同版本的微服务,客户应该看到哪一个?我想产品版本应该独立于微服务,因为复制一个微服务版本会让我比没有版本更麻烦.

那么有什么模式,想法来处理这种情况吗?

我唯一想到的是拥有另一个存储库,只要其中一个微服务生成生产就绪包,就会对其进行版本控制.但是,我现在有一个版本,我的产品所有者(PO)都不知道.

architecture soa domain-driven-design docker microservices

21
推荐指数
2
解决办法
8262
查看次数