是否有可能为基于Web的架构提供基于MVC的布局,其中SOA是架构风格.或者换句话说,服务可以成为MVC的M,V,C的一部分.如果是这样,每种服务都可以包含哪些服务.另外,你能给我一个真实世界的例子吗?
RPC系统(如Twitter的Finagle)和企业服务总线(如Mule)之间有什么区别?他们每个人都善于解决什么样的问题?
在SOA中,我一直对使用来自不同数据库或不同服务的数据的服务如何具有参照完整性以使最小数据跨数据库或服务重复而感到困惑.
例如,您在某种身份验证数据库中有一个用户表,并且您希望在另一个数据库中重用此用户信息.您还希望强制该用户的记录存在于身份验证数据库中.假设您要将身份验证数据库中的用户帐户与另一个数据库中的新闻文章相关联.怎么做的?你会用LDAP之类的东西做到这一点?
如果身份验证信息包含在同一个数据库中,只是一个不同的表,那么我可以看到如何使用外键来创建新闻文章和用户帐户之间的关联.
我一直试图寻找关于这个问题的答案,但我必须使用错误的短语,因为我没有提出任何有用的东西.
我有一个调用我的WCF业务服务层的Web客户端,后者又调用外部WCF服务来获取实际数据.起初,我以为我会使用的DTO,并在不同的层独立商业实体......但我发现,倡导的DTO的简单的例子,是,好了,琐碎.我看到太多的重复代码并没有多少好处.
考虑我的域名:
示例域我有一个单独的UI屏幕(Asp.net MVC View),显示患者的药物清单,不良反应(药物之间)以及患者可能患有的任何临床情况(如抑郁或高血压).我的域名模型从顶层开始:
MedicationRecord
List<MedicationProfile> MedicationProfiles
List<AdverseReactions> Reactions
List<ClinicalConditions> ClinicalConditions
MedicationProfile is itself a complex object
string Name
decimal Dosage
Practitioner prescriber
Practioner is itself a complex object
string FirstName
string LastName
PractionerType PractionerType
PractionerId Id
Address Address
etc.
Run Code Online (Sandbox Code Playgroud)
此外,在进行WCF请求时,我们有一个请求/响应对象,例如
MedicationRecordResponse
MedicationRecord MedicationRecord
List<ClientMessage> Messages
QueryStatus Status
and again, these other objects are complex objects
(and further, complicates matter is that they exist in a different, common shared namespace)
Run Code Online (Sandbox Code Playgroud)
在这一点上,我倾向于MedicationRecordResponse 是我的DTO.但在纯DataContracts和DTO以及设计分离方面,我想这样做吗?
MedicationRecordResponseDto
MedicationRecordDto
List<ClientMessageDto>
QueryStatusDto
and that …Run Code Online (Sandbox Code Playgroud) 所以,我最近在SOA上阅读了很多,并一直在努力实现一些有用的东西.我从一个简单的博客开始,创建RESTful API.到现在为止还挺好.它完美地运作.但是,在编写将使用RESTful API的Web界面时,我开始脱掉头发.我不知道我做的是否正确.
例如,Web界面具有管理面板.该管理面板通过file_get_contents和流选项向API发出HTTP请求.现在,API是localhost,以及Web界面,但整个过程有点慢.这是正确的吗?这是实施SOA的正确方法吗?此外,我正在处理一些重复的代码进行验证.我应该在哪里验证数据?在API或Web界面中?什么是最好的方法?
欢迎提示,教程,特别是书籍.这是使用Silex实现的,它建立在Symfony组件之上.
我目前正在考虑将SOA样式应用程序部署到云上的PAAS中.
我正在评估一些PAAS供应商,包括Cloud Foundry,Heroku和Jelastic.
目前,为了简单起见,我只有一个grails应用程序和一个带有嵌入式Jetty服务器的服务jar文件.这将扩展为多个服务和Web前端,中间的服务通过兔子mq和http的混合进行通信.
我现在正在努力了解如何将这些部署到PAAS上的拓扑结构.
我的问题是:
是否必须将所有服务和Web应用程序部署为PAAS中的顶级"应用程序"(例如,可以在Heroku中使用dynos?)
如果是这样,可以限制对服务的访问,以便只能从webapp(最终网关)向它们发出请求.
它们是否需要作为顶级应用程序存在,以便从负载平衡(和自动扩展)中受益,因为每个服务可能有多个实例.
如果每个服务都有自己的数据存储区,我再次假定这需要它是一个应用程序?
如果有一种方法可以在不使用每个服务的完整应用程序的情况下实现此目的,那么节点如何单独寻址?他们可以使用某种目录服务注册自己吗?
谢谢!
我们正在研究使用面向服务的体系结构(SOA)来拆分我们的体系结构(以及添加新组件).将有一些外部API将由第三方使用,我们将使用REST HTTP接口,但我想知道什么是最好在内部使用,因为所有组件都在我们的控制中,并将在相同的网络,但可能是不同的技术(主要是.net和ruby on rails).
使用消息传递系统(redis,rabbitmq,EMS,其他值得注意的例外,我没有听说过......)而不是HTTP(REST,SOAP等)会有很大的性能/功能提升.
我很难找到关于这个主题的好信息(正如你可能会说的)我对这个方面很新,所以任何建议或好资源都会受到赞赏!
Thnaks
假设我在博客应用上有三种类型的用户
要管理此系统,我要提供三项主要服务:
现在,我正在努力的是资源的所有权(以及应该在哪里检查所有权)。
在不与其他服务进行通信的情况下,授权服务将如何确定用户是否应该能够访问他们拥有的内容,而又不知道如何确定用户是否拥有给定资源。
我对这个问题提出了几种不同的解决方案,尽管我对它们都不满意。
寻找关于替代方法的想法,或者洞悉解决此问题的最佳解决方案。