Is SOA mostly a bunch of web services?
Learning about SOA. Is it mostly decoupling by way of web services, one service provides web services to another, thereby staying decoupled and encapsulated? Thanks.
edit: that and maybe a good front end to them like some MV开发者_JS百科C design?
SOA is commonly implemented using web services but can be implemented using any method of decoupling the service implementation from the interface. These are then often presented to the business in a directory when apps can request details for any service provision that offers the desired service criteria.
MVC is a pattern for applications that could access SOA but I would use the best pattern for your application rather than trying to shoehorn into a single pattern. Just remember that SOA calls are likely to be operated asynchronously.
Here's an answer I provided to another question a while ago which may help with SOA principles: Rebuild N-tier app into Service-Oriented Architecture (SOA)?
Also the following is an intro to SOA: http://www.ibm.com/developerworks/library/ws-soa-design1/
In short there's a lot more to it than just web-services, its how you make available coarse grained 'business services' for reuse by multiple systems, and how you then make calls across multiple business services to meet wider business processes.
Developing some web-services != SOA
Here is a good selection of links that challenge the idea that SOA is only about web services, it explores the idea that every class in the application is a service and we can use many different transports (web, tcp, queues) within our SOA. SOA is the methodology you use to build a service orientated application.
Here are some practical examples of how to build a SOA.
I would suggest you read articles by Thomas Erl and Roger Sessions, this will give you a firm handle on what SOA is all about.
SOA Design Pattern
Achieving integrity in a SOA
Why your SOA should be like a VW Beetle
SOA explained for your boss
Building a SOA
WCF Service Performance
Choosing a presentation pattern for a new or enterprise web development is a daunting task, in my opinion there are only three; View Model, Model-View-Presenter (MVP) or ASP.NET MVC (a Model2 derivative).
You can read the full article here ASP.NET MVC Patterns
Despite the (incorrect) selected answer I have to state that SOA has nothing to do with web services. The "service" term is so overloaded in English, so people are getting confused sometimes.
SOA is an architectural style, a set of guidances and principles that help us model our systems as "systems which consist of other systems". The service term in SOA can be defined as a "technical authority for a specific business capability". SOA helps to deal with coupling between capabilities, including temporal and spatial coupling.
As you can see, designing your system as an open set of loosely coupled and self-responsible systems (services) has nothing to do with using web services, WCF or other "cool things". You may use them or you may not use them. Or use them in one context, but not in another.
Most definitely you will NOT use web services as a communication protocol between your services in SOA because they immediately introduce temporal and spatial coupling.
精彩评论