English 中文(简体)
能否与教育、科学和技术部共同设计一个社会科学评估?
原标题:Can a SOA be designed with REST?

我很晚才读过许多关于SOA的内容,但大部分内容与SOAP有关,并且有许多属于C#/Java系统的“官僚”障碍。 令人高兴的是,我认为这种官僚机构,特别是SOAP,是痛苦的。 因此,如果是荒谬的,能否与教育、科学和技术部共同设计一个社会行动?

Right now in by Ruby applications i make all my controllers RESTful. My web interface (forms, etc) make GET/POST/PUT/DELETE requests to the core, which is a REST webservice. All other systems that use the core make RESTful requests to it. Is this a SOA?

最佳回答

At a high Level the answer is Yes, however not completely.

SOA requires thinking about the system in terms of

  • Services (well-defined business functionality)
  • Components (discrete pieces of code and/or data structures)
  • Processes (Service orchestrations. Generally using BPEL)

Being able to compose new higher level services or business processes is a basic feature of a good SOA. XML, SOAP based Web Services and related standards are good fit for realizing SOA.

另外,社会行动组织也接受了几项原则——

  • Standardized service contract – Services adhere to a communications agreement, as defined collectively by one or more service-description documents.
  • Service Loose Coupling – Services maintain a relationship that minimizes dependencies and only requires that they maintain an awareness of each other.
  • Service Abstraction – Beyond descriptions in the service contract, services hide logic from the outside world.
  • Service reusability – Logic is divided into services with the intention of promoting reuse.
  • Service autonomy – Services have control over the logic they encapsulate.
  • Service granularity – A design consideration to provide optimal scope and right granular level of the business functionality in a service operation.
  • Service statelessness - Services minimize resource consumption by deferring the management of state information when necessary
  • Service discoverability – Services are supplemented with communicative meta data by which they can be effectively discovered and interpreted.
  • Service composability – Services are effective composition participants, regardless of the size and complexity of the composition.

一个基于SOA的结构预计将有服务定义。 由于科技创新网络服务缺乏明确的服务定义(类似于施舍),因此很难建立基于教育、科学和技术的系统来达到上述多数原则。

为实现同一目标,你需要具备适当的网络服务+交响乐机(可以使用像MuleESB或Camel等一些轻重的ESB)。

还请参看这一资源:From SOA to REST


在以下评论中添加这一部分内容:

需要进行交响乐,以堆肥工艺。 这为社会行动提供了主要好处。

Say you have a order processing application with operations like -

  • addItem
  • addTax
  • calculateTotal
  • placeOrder

最初,你建立了一种程序(使用BPEL),按顺序使用这些行动。 你们有客户利用这一竞争服务。 几个月后,新的客户出现免税,而不用写新服务,你只能创造新的过程,绕过加泰克斯行动。 因此,只有重新利用现有服务,你才能更快地实现业务功能。 在实践中,这种服务是多余的。

因此,BPEL或类似(ESB或路由)技术对于SOA至关重要。 如果没有商业利用,SOA实际上不是一个SOA。

贴在我的个人博客上——http://blog.padmarag.com

Also check this new resource I came across - REST based SOA

问题回答

Service in SOA terms is a component which solves a certain business problem. SOAP/WCF are more related to the interface/delivery part of SOA. REST approach can be used as well. Service contract, policies, versioning and other standard SOA features can be also implemented with RESTful service.

主要的无害环境技术问题是,它有针对性地设计了CRUD,因此,这不是复杂逻辑执行的最佳选择。 但是,如果你的商业逻辑是完全的CRUD(或对CRUD的趋同),那么它就应当完全正确。

Btw, looks like Microsoft added operations to WCF data services specially to emulate SOAP with REST.

国家安全局最重要的事情是一些软性因素,例如让其他人使用你的服务,而到此为止,签证也带有一种可轻易使用代理的轮.关系。 服务需要堆肥,但你确实需要交响乐团、BPEL或一辆小客车,以便在你从SOA开始的时候这样做。 (事实上,你利用了这些想法,认为如果没有这些结果,你可以取得更好的结果,但你确实需要一些事件。)

Note products like WCF allow you to create a service which exposes a wsdl , but besides SOAP you can also use REST/Json or even better binary TCP end points .. This is ideal since you use SOAP for simplicity and switch to binary ( which blows REST out of the water) when you need to.

就SOAP在8年时间里与WCF公司建立高性能的SOA系统而言,它从未注意到过SOAP,也就是说,它主要在C#公司工作,而且我们有良好的SOAP,而大多数其他语言都没有。





相关问题
SQL Server - How many users do I *really* need?

I m setting up an application, and I m looking into purchasing a license for SQL Server. My question is pretty simple (though may have a complicated answer...) How many users accounts do I really ...

Object Graph / Persistence Question

I m currently working with an online application that requires multiple screens/steps in order to complete. The application domain is modeled using an object graph. Persistence to and from a database ...

Why does stack get truncated in Exception.StackTrace?

Why does the high part of the stack (in Exception.StackTrace) gets truncated? Let s see a simple example: public void ExternalMethod() { InternalMethod(); } public void InternalMethod() { try ...

ASP.NET MVC and Service Oriented Architecture

I would like to know how do i incorporate a feature like wcf within and MVC application. My current idea of the architecture is as follows: EntityFramework -> ASP.NET MVC (Views) ...

热门标签