|
||||||||||||||||||||||||||||||||||||
|
Web services VS CORBA|J2EE|etc. SOAP services backgroundLets start from discussing the name “Web Service”. When do we think what word “WEB” really means? Personally I cannot give exact definition of the term: WEB. It is just associated with something big, open, friendly, browser accessible, interesting, human readable and targeted to people (me).
Technically speaking term “Web Service” is a shortcut to XML/SOAP/WSDL/UDDI collection of technologies. Lets try to define that collection:
Hmm, that definition does not match to my feelings, which are associated with the word “Web”. I think that name “Web Service” is very misleading and it was invented to promote XML based technologies. I may look like Web Services opponent, but I am not WS opponent in reality. I just want to clearly define place of the technology and promote unbiased look at any technologies. And I play devil’s advocate sometimes. An interesting article (Kicking out the Cuckoo by Edd Dumbill) regarding this issue can be found at http://www.xml.com/pub/a/2002/04/24/taglines.html Another interesting reading to clean up our brain from XML propaganda may be found at (note: it is not my opinion): http://www.pault.com/X/987224675/addPostingForm So, let me use name SOAP-service instead of Web Service to remove magic of word “Web”. Realizing the fact that we are dealing with comp-to-comp calls we may use even more precise term: XML-RPC (XML based Remote Procedure Call). SOAP has started as XML-RPC and it is so in its basis and it is going to be primary usage of the technology. Usage of proper names is extremely important and promotes better and unbiased understanding of things around us. When we hear word RPC, it may cause completely different associations: It is boring. CORBA, DCOM, RMI, MQ Series hey! Why do we need yet another one? If it is boring, it is impossible to sell for masses, so … Lets look at biggest selling point of SOAP-services: Interoperability. It does mean that we have something working just fine and we just want to call something different than we have. In other words: we need an “Interface” technology. As we go to area of common agreements we compromise something: flexibility, feature richness, performance etc. There is no way to have one thing that will satisfy everybody. There will not be one OS, one language, one IDE, one editor etc. This leads us to recall that we need an “Implementation”. That is. Lets not forget about old boring stuff: writing of actual implementation of business logic, database connections, DB schemas, emails, and all “not so exited” things which are essential for doing business. Lets say this: DB schemas and data in DB are vital things for businesses everything else is just interfaces. Yes, of course, BUSINESS LOGIC! But it can be (re)implemented/duplicated with many languages, may have bugs, to be ugly etc., and it may be good enough till DB and data is OK. By no means I neglect business logic implementation and interface technologies, I just want to reset priorities. All those OO concepts, languages, interface technologies are important only when they allow manipulating our data more efficiently. Things to keep in mind:
That was a background. Lets look at technologies and their applicability and goals. RPC needs coverage by different technologies.First lets look at RPC needs coverage by different technologies.
As we may see some technologies are trying to cover different aspects of RPC problem. Typical enterprise computing services.Second comparison of technologies might be done against typical enterprise computing services.
As we may see some technologies are trying to satisfy all our needs and other address only certain areas. One interesting service is “Externalization” that means ability to accept data feed from different sources in different format. Not surprisingly that CORBA and J2EE uses that service to implement, well, SOAP data connector. That is. J2EE business logic implementation (Session Bean) can be called via SOAP, IIOP(CORBA), and RMI in the same time concurrently with full support for life cycle management. That looks like there is no contradiction between J2EE|CORBA|SOAP. That is pretty much so. SOAP-services define just interfaces and does not have any idea about implementation. However, that is not true for many vendor implementations. XML hype seems to be used to sell vendor specific implementation frameworks. Those vendors try to sell their products as implementation platforms (sometimes they name it as universal hub to plug in any other solutions, we hear that many times, right?) Lets take Systinet (http://www.systinet.com ) as an example: <QUOTE> Systinet
makes it easy to build, deploy, secure, and manage Web
services. </QUOTE> I would say that is not different than CORBA frameworks, except CORBA standardized much more details than SOAP – services. SOAP vs CORBAIt makes sense to compare SOAP/WSDL/UDDI with CORBA, rather than with J2EE. At current stage J2EE is an implementation/extention of CORBA (common object request broker ARCHITECTURE) for Java platform that extends CORBA with implementation standards. So, lets try to create SOAP vs. CORBA
comparison table. This table mostly comes from presentation of “The
Comparison of CORBA and SOAP” by Fei
Sophie Gao, ITSC UAH, February 28, 2002
J2EEThat is already big document, but I have decided to add something about J2EE here, because in case of separate document it will have significant overlap with this one.
Lets make it clear: JVM is OperationSystem. J2EE compliant Application server (container) is a framework to build BUSINESS applications. Value of J2EE for business programming comes not only from APIs, but also from the way they are put together and from set of recommendations for developers and assumptions about nature of business programming. That is, J2EE is supposed to be a collection of best practices in business programming. Suitability of J2EE for companies should be evaluated from several positions: Is J2EE business model compatible with our business model? Are we ready to study(!) and apply best practices? That is probably main issue that prevents companies from adopting J2EE. In order to be effective developers MUST understand the technology and its limitations. That is quite different from other widely used approaches:
#2 is almost incurable. #1 is temporary - most developers overcome that. If they will take a time and study other than own approaches, they see that “nothing new under the Moon” and many their problems already have proven and well-known solution. Another important concern is a cost of application servers. It is not an issue if even simplest cost analysis will be done. With inexpensive entry level application servers like JBoss( $0 ) and JRun cost of app server is not an issue any more. Because J2EE platform is based on CORBA it enables easy interoperability with any enterprise solutions and SOAP exposure allows communicating with MS products relatively easy (painlessly if MS products should call J2EE services). As far as I know <COMPANY's> business model I think that J2EE programming model is quite suitable for NAIC. Great deal of flexibility and openness of J2EE platform allows leveraging existing applications and smoothly migrating to “new architecture”. |
|||||||||||||||||||||||||||||||||||
| © 2001 - 2006 Konstantin Ignatyev | ||||||||||||||||||||||||||||||||||||