SOA ~

SOA: A flexible set of design principles that used during the phrases of software systems.

(1) devide the functions into units or services which are loose-coupling with operating systems and technologies that underlie that applications.

(2)Services comprise unassociated, loosely coupled units of funcationlity that have no calls to each other embedded in them.

(3) the services are well defined or understood interfaces in terms of protocols to access.

(4) users could combine or reuse these services in the production of the applications. And the services and their corresponding cosumers communicate with each other by passing data in a well defined, shared data format.

 

programmers have made extensive use of XML in SOA to structure data that they wrap in a nearly exhaustive description container. The underlying metadata should be in a suffient detail to describe not only the characteristic of the services, but also the data that drives them.

 

Analogously, the wsdl(web services description language) typically describe the services themsevles, while the soap protocol decribes the communications protocols.

 

SOA aims to allow users to string together fairly large chunks of functionality to form ad hoc applications that are built almost entirely from the existing software services. There is a performance consideration in choosing the granularity of the services. The larger the chunks, the fewer the interface points required to implement  any set of funcationality. However, very large chunks of functinality may not prove suffiently the easy reuse.  And  no interactions must exist between the chuncks specified, so human specify the interactions of services in a relatively ad hoc way with the intent that driven by newly emerged requriements.

 

 Ad-hoc: Processes are defined as and when needed

 

SOA as an architechture relies on service-orientation as its fundamental design priciples. If a service prestents a simple interface that abstarts away its underlying complexity, users can access the independent services without knowledge of the services` platform implementation. SOA relies on services exposing their functionality via interfaces that other applications and services can read to understand how to utilize those services.

 

Eight specific service-orientation priciples which are defined by Thomas Erl:

(1) Standard Service Contract:Services adhere to a communications agreement, as defined collectively by one or more service-description documents.

(2) Service Loose Coupling: Services maintain a relationship that minimizes dependencies and only requires that they maintain an awareness of each other.

(3) Service Abstraction:Beyond descriptions in the service contract, services hide logic from the outside world

(4) Service Reusability:Logic is divided into services with the intention of promoting reuse.

(5) Service Autonomy:Services have control over the logic they encapsulate.

(6) Service Statelessly: Services minimize resource consumption by deferring the management of state information when necessary.

(7) Service Discoverability:Services are supplemented with communicative meta data by which they can be effectively discovered and interpreted.

(8) Service Composablity:Services are effective composition participants,regardless of the size and complexity of the composition.

 

Web services can implement a service-oriented architecture. Web services make functional building-blocks accessible over standard Internet protocols independent of platforms and programming languages. These services can represent either new applications or just wrappers around existing legacy systems to make them network-enabled.

 

Web services are a set of tools that can be used in a number of ways. The three most common styles of use are RPC, SOA and REST.

 

RPC Web services present a distributed function (or method) call interface that is familiar with many developers. Typically, the basic unit of RPC Web services is the WSDL operation.

The first Web services tools were focused on RPC, and as a result this style is widely deployed and supported. However, it is sometimes criticized for not being loosely coupled, because it was often implemented by mapping services directly to language-specific functions or method calls. Many vendors felt this approach to be a dead end, and pushed for RPC to be disallowed in the WS-I Basic Profile.

Other approaches with nearly the same functionality as RPC are Object Management Group's (OMG) Common Object Request Broker Architecture (CORBA), Microsoft's Distributed Component Object Model (DCOM) or Sun Microsystems's Java/Remote Method Invocation (RMI).

 

Service-oriented architecture

Web services can also be used to implement an architecture according to Service-oriented architecture (SOA) concepts, where the basic unit of communication is a message, rather than an operation. This is often referred to as "message-oriented" services.

SOA Web services are supported by most major software vendors and industry analysts. Unlike RPC Web services, loose coupling is more likely, because the focus is on the "contract" that WSDL provides, rather than the underlying implementation details.

Middleware Analysts use Enterprise Service Buses which combine message-oriented processing and Web Services to create an Event-driven SOA. One example of an open-source ESB is Mule, another one is Open ESB.

 

REST attempts to describe architectures which use HTTP or similar protocols by constraining the interface to a set of well-known, standard operations (like GET, POST, PUT, DELETE for HTTP). Here, the focus is on interacting with stateful resources, rather than messages or operations.

An architecture based on REST (one that is 'RESTful') can use WSDL to describe SOAP messaging over HTTP, can be implemented as an abstraction purely on top of SOAP (e.g., WS-Transfer), or can be created without using SOAP at all.

WSDL version 2.0 offers support for binding to all the HTTP request methods (not only GET and POST as in version 1.1) so it enables a better implementation of RESTful Web services.[6] However, support for this specification is still poor in software development kits, which often offer tools only for WSDL 1.1.

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值