Comparison of Web Services with CORBA
Posted by Chanuka Sudeera Jayasekara | Posted in Literature | Posted on 14-07-2010-05-2008
0
Comparison of Web Services with CORBA
In the modern technological world, data communication is a vital aspect. When considering data communications, the interoperability of data that is being communicated is of utmost importance. Data which cannot be interpreted at the receivers end is useless data.
With the expansion of the internet in the recent years, it was important, to agree on a universal medium of client server communication, which both parties could understand inherently, without requiring additional meta-data.
One of the technologies which provided a solution for the interoperability problem was, CORBA, which was introduced in early 1990′s.
Nearly 10 years after CORBA was introduced; “Web Services” immerged, which also addressed the interoperability problem.
While interoperability was a major consideration in both the technologies CORBA and “Web Services”, they also addressed other major issues. But both CORBA and “Web Services” have their roots with addressing the interoperability problem.
When considering about the similarities between CORBA and “Web Services”, both the technologies contain similar components, for which the following table can be produced.
|
Component |
Web Services |
CORBA |
| Protocol | SOAP, HTTP, XML Schema | IIOP, GIOP |
| Location identifiers | URLs | IORs, URLs |
| Interface spec | WSDL | IDL |
| Naming, directory | UDDI | Naming Service, Interface Repository, Trader service |
Both CORBA and “Web Services” have their advantages and disadvantages.
Advantages of CORBA
-
Supports Object Orientation
-
Consumes very less network traffic due to the messages between clients and servers are transmitted in a compact representation
-
CORBA’s IDL contains standardized programming language mappings which describe implementation logic, other than the interface.
-
CORBA supports evening using CORBA event service
-
CORBA IDL language bindings support type safety; Stub classes provide compile-time type checking. Therefore an attempt to send a parameter of the wrong type when compiled will result in a compile-time error.
Disadvantages of CORBA
-
TCP/IP connections are used in CORBA to transmit data. Therefore if a client is behind a highly restrictive firewall or proxy server environment that only allows HTTP connections to the outside through port 80, communication using CORBA may be impossible, unless the proxy server or firewall allows the HTTP CONNECT method or SOCKS connections so that CORBA connections would initiate.
-
When CORBA is used there is a requirement of an ORB being present on all clients.
-
No official Perl mapping. There are at least two Perl ORBs available as open source, but both mapping are not official, or the implementations are complete.
Web Services Advantages
-
The biggest advantages of Web Services are that it can be used with HTTP protocol over port 80 (or HTTPS if SSL is involved). Therefore it can be used; Web Services can easily communicate through restrictive firewalls without changes to the firewall policies implemented.
-
Web Services are platform-independent and language-independent, since they use standard XML languages. The XML generated by Web Services are in human readable format.
-
The Web Services are also described in a XML based textual format (WSDL) which has a standard format, therefore any new clients can easily adhere according to the WSDL and make use of the Web Service.
-
Web Services use structured communication, which benefit from intermediary node processing. The SOAP messages generated by web services can also contain specific processing information intended for intermediate nodes between the service caller and the end point service provider.
Disadvantages of Web Services
-
Web services uses textual for mat for data and Meta data exchange, normally the textual data results in very large file size compared to binary data. Therefore web services generate much more network traffic than binary data exchange.
-
Serialization and de-serialization needs to be performed for every web service request, and also requires parsing XML documents, Therefore web services consumes much more processor time.
-
HTTP and HTTPS protocols which Web Services used for communication are stateless protocols. Therefore additional work needs to be done to keep track of state.
Recommendations for using CORBA or Web Services
-
Considering the advantages and the disadvantages both the technologies, have iti is possible to conclude the contexts which either of the technologies. CORBA is of optimal usage when a adequate level control is present within the deployment context. That is when; a service created using CORBA is consumed by a limited client base which are written using CORBA supported languages and also there is control over the firewall and proxy’s which lay in between the service provider and the service invoker. This generates less network traffic, supports State, and CORBA eventing.
-
Web Services are of optimal use when the deployment environment is less controllable (nearly no control), therefore Web Services are optimal when a Service is exposed to the public (via Internet). Any forms of Clients which can parse XML are able to plug in to the service, by adhering according to the WSDL.
-
CORBA and Web Service can be used together also. CORBA service can be encapsulated using Web Services or Vice-versa; clients are able to consume the service either through the wrapper service or the actual service, without any discrepancy. Such a methodology is described in http://wso2.org/library/2807 document.
References- Accessed during 1st to 21st June 2010
www.omg.org/news/whitepapers/CORBA_vs_SOAP1.pdf
http://www2002.org/CDROM/alternate/395/
http://www.ciaranmchale.com/corba-explained-simply/benefits-of-corba.html
http://packetstormsecurity.nl/programming-tutorials/CORBA/why-corba.html
http://www.iona.com/support/docs/e2a/asp/5.0.1/mainframe/ConceptsGuide/cgCORBAConcepts7.html
http://www.spiritus-temporis.com/web-service/advantages-of-web-services.html
http://social.msdn.microsoft.com/forums/en-US/asmxandxml/thread/435f43a9-ee17-4700-8c9d-d9c3ba57b5ef/
