In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-02-22 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Servers >
Share
Shulou(Shulou.com)05/31 Report--
This article mainly introduces "what are the concepts of REST, SOA, SOAP, RPC, ICE, ESB and BPM". In daily operation, I believe many people have doubts about what the concepts of REST, SOA, SOAP, RPC, ICE, ESB and BPM are. The editor consulted all kinds of materials and sorted out simple and useful methods of operation, hoping to help you answer the questions of "what is the concept of REST, SOA, SOAP, RPC, ICE, ESB, BPM?" Next, please follow the editor to study!
SOA:
Wikipedia explains: SOA: service-oriented Software Architecture (Service Oriented Architecture), is a design pattern of computer software, mainly used in impassable application components to interoperate through a certain protocol, such as a typical network protocol. Therefore, SOA is independent of any manufacturer, product and technology.
SOA as an architecture depends on the direction of the service, its basic design principle is: the service provides a simple interface, abstracts the underlying complexity, and then users can access independent services without understanding the underlying platform implementation of the service.
Based on the SOA solution, strive to achieve business objectives and establish the quality system of the enterprise. The SOA architecture has five levels:
1. User interface layer-the application / service interface accessed by the end user or application of these GUI.
two。 Business process layer-these well-designed business use case services represent applications.
3. Service layer-Services are merged to provide real-time services for the entire enterprise.
4. Service component layer-components used to build services, such as functional libraries and technical libraries, technical interfaces, etc.
5. Operating system-this layer includes data model, enterprise data warehouse, technology platform, etc.
Because SOA architecture implementation does not depend on technology, it can be implemented by a variety of different technologies.
For example:
SOAP, RPC
REST
DCOM
CORBA
OPC-UA
Web services
DDS
Java RMI
WCF (Microsoft's implementation of web services now forms a part of WCF)
Apache Thrift
SORCER
So REST, SOAP, RPC, RMI, DCOM, and so on are all implementations of SOA.
Webservice:
Web services is a new platform for building interoperable distributed applications.
Webservice is a standard that can be implemented through soap or rest.
Traditional soap-webservice, using the soap protocol (based on xml packaging) and so on. If you use restful-webservice, you don't need the protocols associated with soap, etc., but rather transfer data over the simplest http protocol (including xml or json). It not only simplifies the design, but also reduces the amount of network transmission (because only xml or json representing data is transmitted, and there is no additional xml wrapper).
Several concepts related to webservice:
Wsdl: the network service description language is the description language of Web Service, which contains a series of definitions that describe a web service.
UDDI: a directory service that enterprises can use to register and search for Web services. UDDI, English for "Universal Description, Discovery and Integration", can be translated as "General description, Discovery and Integration Services".
UDDI [1] is a specification, which mainly provides registration and discovery mechanism based on Web services, and provides three important technical support for Web services: ① standards, transparency, mechanisms that specifically describe Web services; mechanisms for ② to invoke Web services; and Web service registries that ③ can access. The UDDI specification is formulated by the OASIS (Organization for the Advancement of Structured Information Standards [1]) standardization organization. [1]
The comparison of RMI, RPC and SOAP:
Ordinary Web projects are generally bound with specific rendering languages (jsp, velocity,freemark), as well as the original html. But only a specific format of the returned data is limited to correspond to it. Webservice projects can be called by other systems (constrained by the relevant format). Therefore, ordinary web projects built using ssh or springmvc do not release webservice. An ordinary web project can use some technology to publish the interfaces that need to be published, and it becomes webservice.
What is SOAP?
SOAP (Simple Object Access Protocol), as its name implies, is a strictly defined information exchange protocol used to encapsulate remote calls and returns into machine-readable formatted data in Web Service. In fact, SOAP data uses the XML data format and defines a complex set of tags to describe the remote procedures, parameters, return values, error messages, and so on. And as the need grows, protocols must not be added to support security, which makes SOAP unusually large and deviates from the original intention of simplicity. On the other hand, each server can launch its own API based on this protocol, and even if the services they provide are similar, the definition of API is not the same, which leads to the birth of WSDL. WSDL (Web Service Description Language) also follows the XML format to describe which server provides what service, how to find it, and what interface specification the service uses, in short, service discovery. Now, the process of using Web Service becomes to get the WSDL description of the service, construct a formatted SOAP request based on the WSDL and send it to the server, then receive a reply in the same SOAP format, and finally decode the data according to the previous WSDL. In most cases, requests and replies are transmitted using the HTTP protocol, so the POST method of HTTP is used to send the request.
What is REST?
REST (REpresentational State Transfort) should be expressed in the form that the client transforms the state by applying for resources. From this point of view, the system can be regarded as a virtual state machine. Despite the obscure theories in R. T. Fielding's doctoral thesis, REST should satisfy the following characteristics: 1) client and server structure; 2) stateless connection protocol; 3) ability to improve performance using Cache mechanism; 4) hierarchical system; in the final analysis, REST is only an architectural style, not a protocol or standard. But this new style (perhaps has a long history? The impact on the existing Web Service represented by SOAP is also revolutionary because it is resource-oriented and even services are abstracted into resources because it is closely integrated with HTTP because its server is stateless
The three mainstream Web service implementations known so far are:
REST: figurative state transition (software architecture style)
SOAP: simple object access Protocol
XML-RPC: remote procedure call protocol (has been slowly replaced by SOAP)
Other understandings:
REST: representation state transition (Representational State Transfer), using Web services to abstract all Web system services into resources using the standard HTTP method (GET/PUT/POST/DELETE). REST observes the whole network from the perspective of resources, and the resources distributed everywhere are determined by URI, while client applications obtain the representation of resources through URI. The get,post,put,delete abstracted by the Http protocol is like the most basic addition, deletion, modification and query in the database, while various resources on the Internet are like the records in the database (perhaps this analogy is not very good). The operations on all kinds of resources can always be abstracted into these four basic operations in the end. After defining the rules for locating resources, the operation on resources can be realized through the standard Http protocol. Developers will also benefit from this lightweight protocol. REST is a kind of software architecture style rather than protocol and non-specification. It is a way of development for network applications, which can reduce the complexity of development and improve the scalability of the system.
SOAP: simple object access Protocol (Simple Object Access Protocol) is a standardized communication specification that is mainly used in Web Services (web service). Use a simple example to illustrate the use of SOAP, a SOAP message can be sent to a Web site with Web Service function, for example, a database containing house price information, the parameters of the message indicate that this is a query message, the site will return a XML format information containing the query results (price, location, characteristics, or other information). Because the data is transmitted in a standardized and analyzable structure, it can be directly utilized by third-party sites.
XML-RPC: a distributed computing protocol for remote procedure call (remote procedure call,RPC) that encapsulates the calling function through XML and uses the HTTP protocol as the transport mechanism. Later, with the continuous introduction of new features, this standard gradually evolved into today's SOAP protocol. The XML-RPC Agreement is a registered patent project. XML-RPC makes an HTTP request to the server on which the protocol is installed. The client that makes the request is generally the software that needs to request a call from the remote system.
A simple comparison of three schemes
XML-RPC has been gradually replaced by SOAP and is rarely used now, but it is still copyrighted, so I won't dwell on it here.
Maturity: SOAP is better than REST in maturity
In terms of efficiency and ease of use: REST is better (the reason REST is more efficient is that it is just a protocol on top of the proposed Http protocol. On the other hand, SOAP needs to encapsulate information headers for data and xml, de-encapsulate, etc.)
In terms of security: SOAP is more secure than REST because REST is more concerned with efficiency and performance
Distributed capabilities: REST is more suitable for use in distributed environments because REST is based on the native Http protocol, while the http protocol is stateless. Large-scale distributed environment can support stateless well, and stateless enhances the expansibility of the whole system. This is why more and more cloud computing and distributed projects choose REST.
Note: SOAP is also based on HTTP protocol, but it provides session, cookie and other mechanisms to make SOAP stateful, so as to support services that need statefulness. Stateful examples: 1, add a user 2, get the latest increase in users. Whether the execution of the 1 is successful or not, and the state of the execution sequence will affect the result of 2. )
In general, because Web services in REST pattern are significantly more concise than complex SOAP and XML-RPC, more and more web services are designed and implemented in REST style. For example, Amazon.com provides a REST-style Web service for book search; Yahoo's Web service is also REST-style. REST is suitable for resource-based service interfaces, especially for scenarios that require high efficiency but low security requirements. The maturity of SOAP can bring convenience to the interface design that needs to be provided to multiple development languages and requires high security. So I don't think it makes any sense to just say that the design pattern will dominate. The key is to look at the application scenario, which is exactly the old saying: what is suitable is the best.
At the same time, it is very important not to distort REST now many websites are following the trend to develop REST-style interfaces, in fact, are learning its shape, do not know its heart, and finally become irrelevant, performance does not go up, security can not be guaranteed, only a seemingly decent skin.
In the aspect of security, SOAP realizes security control by using XML-Security and XML-Signature to form WS-Security. At present, it has been supported by various manufacturers. Net, php and java all have good support for it. REST does not have any specification for security. Therefore, in terms of security, SOAP is higher than REST.
ICE:
ICE is a good solution for distributed applications, although there are also some popular distributed application solutions, such as Microsoft .NET (and the original DCOM), CORBA and WEB SERVICE, but these object-oriented middleware have some shortcomings:
.net is a Microsoft product, only for WINDOWS systems, but the reality is that in the current network environment, different computers will run different systems, such as LINUX, it is impossible to use .NET.
Although CORBA has done a lot of work on unifying standards, there is still a lack of interoperability between different vendor implementations, and there is no single vendor that can provide all the implementation support for all heterogeneous environments, and the implementation of CORBA is complex, and the cost of learning and implementation will be high.
The most fatal disadvantage of WEB SERVICE is its performance problem, and WEB SERVICE is rarely considered in demanding industries.
The emergence of ICE stems from the shortcomings of .NET, CORBA and WEB SERVICE middleware. It can support different systems, such as WINDOWS, LINUX, etc., and it can also be used in a variety of development languages, such as C++, C, JAVA, RUBY, PYTHON, VB, etc. The server can be implemented in any of the languages mentioned above, and the client can choose different languages according to its own actual situation. For example, the server can be implemented in C language. The client is implemented in Java language, and the underlying communication logic is realized through the encapsulation of ICE. We only need to pay attention to the business logic.
What is ESB?
The difference between ESB and EAI:
ESB is to control the processing of all system interactions on the SOA unified service bus.
EAI simply integrates different systems (either in the form of an ESB bus or point-to-point).
What can ESB help solve?
Reference blog: http://blog.csdn.net/tantexian/article/details/48135907
Attach the ESB mule with the largest use of open source:
What is BPM:
BPM, that is, business process management, is a systematic method centered on the standardized construction of end-to-end excellent business processes and for the purpose of continuously improving organizational business performance. BPM is included in common business management education such as EMBA, MBA and so on.
Used for approval, for sending text messages, sending emails and other business processes.
Comparison of two mainstream open source BPM: (Activiti and spring integrate better)
Activiti Demo:
Domestic online trial of bpm:
'
At this point, the study of "what are the concepts of REST, SOA, SOAP, RPC, ICE, ESB and BPM" is over. I hope to be able to solve your doubts. The collocation of theory and practice can better help you learn, go and try it! If you want to continue to learn more related knowledge, please continue to follow the website, the editor will continue to work hard to bring you more practical articles!
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.