What are the similarities and differences between protocol buffer and current CORBA, and now SOA?

Source: Internet
Author: User

CORBA is a standard for the object Management Group (OMG), which makes it possible to work together in different languages, running on different computers. The standard includes distributed computing communication protocols (GIOP and IIOP), which can be mapped to Interface Description Language (IDL) in multiple languages, object request Broker (ORB), and related services such as life cycle, global transaction, persistence, etc.

SOA is a series of principles and methods for designing and developing software in the form of interoperable services. Soq is an abstract approach that is not related to specific technologies, but generally involves web services and Enterprise Service Bus (ESB) technology. The following comparison between SOA and the other is mainly referred to both technologies.

    • Web Services are software systems used to support the interoperability of machines in a network. Web services include HTTP and XML-based communication protocol (SOAP) and Service Interface Description Language (WSDL), and service lookup interfaces (UDDI)
    • An Enterprise service Bus (ESB) is a software architecture model that is used to design and implement interaction and communication between interactive software applications.

Protocol buffers (PROTOBUF) is an efficient and extensible way of structuring data encoding. Google uses protobuf on all internal remote procedure calls (RPCs) and file formats. PROTOBUF can convert an object in a programming language into a stream of bytes that can be sent over the network. PROTOBUF has its own language describing the data structure, and provides a compiler to compile the description into an object in a programming language that currently supports several C++,python,java languages.

Common
The common denominator among the three is:

    • Are all technologies in a distributed computing environment.
    • are cross-platform, cross-language technologies.
    • Solves the problem of serialization and deserialization of objects.
    • are related to communication protocols, Iiop,soap, PROTOBUF is three different communication protocols.
    • Can be used to implement a remote procedure call (RPC)
    • There are languages that describe the data structure, such as Idl,wsdl+xml Schema,protobuf's description language.


Different points
The differences between the three are:

    • Distributed computing environment is different, CORBA is in the era of LAN, and SOA and PROTOBUF are both the Internet and the World Wide Web era. The era of the Internet is more open.
    • The result of serializing the object, SOAP uses the text format, and PROTOBUF,IIOP uses the binary format. The three experienced the process from binary to text to binary. From the IIOP binary to the XML used by soap, the pursuit is interoperability, and from the SOAP XML to the Protobuf binary, the pursuit is performance.
    • As a communication protocol, PROTOBUF only cares about the serialization and deserialization of objects, while IIOP and soap also care about the underlying communication protocols, RPC semantics, and so on.
    • Both CORBA and Web services can implement remote procedure calls, and protobuf needs to implement RPC with other technology I ( http/Code.google.com/p/protobuf/wiki/ Thirdpartyaddons#rpc_implementations ). Different RPC implementations based on PROTOBUF are difficult to interoperate with.
    • CORBA and Web services are standard, and protobuf is a concrete technical implementation.
    • CORBA and Web services are both heavyweight technologies, and PROTOBUF is a lightweight technology.

The differences between CORBA and SOA are:

      • CORBA is a component technology, and Web service is a kind of service technology. In comparison, there are the following differences:
        • Services are coarse-grained, and components are finer grained, and objects are finer grained.
        • The service has a business meaning, and the component can not.
        • The service is loosely coupled, and the components are tightly coupled, and the objects are more tightly coupled.
        • Services are usually stateless, and components and objects are stateful.
        • Services are instantiated, with configurations and environments, and components are static and not deployed.
      • SOA focuses more on interoperability.

------------------------------------------------------

Google's protocol buffers? This is not related to CORBA, SOA, different levels of concept, can not be compared.
Protocol buffer: A serialization protocol .
CORBA: Distributed Communication protocol between objects.
SOA: An architectural style/approach .

http://www.zhihu.com/question/20279489

------------------------------------------------------

How does QT use protocol buffer under Window?

I don't know if you've solved it, and I don't know if you need a solution, but since there is this problem, I'll just say, two ways: 1,. Use QT to build a class library project, put protobuf source code in, compile with qmake, so that the final form of the available libraries. But halfway through the misery, all kinds of error, not recommended.
2. Compile the Protobuf library with Cygwin/mingw+msys, yes, it is easiest and easiest to compile with Cygwin, because the required libraries and header files can be installed on their own, and mingw+ Msys libtools update speed is not up to protobuf update speed, sometimes missing header files, compilation will fail.
I use the second scheme, after the successful compilation will have LIBPROTOBUF.A LIBPROTOBUF.DLL.A and other 6 files generated, note that the next step is critical, in QT quoted when libs + =-lxxxx/cygwin/usr/local/lib- LPROTOBUF also do not forget to add: Includepath + = Xxxx/cygwin/usr/local/include will still build failure.

http://www.zhihu.com/question/20987397

What are the similarities and differences between protocol buffer and current CORBA, and now SOA?

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.