Altova Mailing List Archives>Archive Index >comp.text.xml Archive Home >Recent entries >Thread Prev - IDL Vs WSDL ---- a comparison >Thread Next - Re: IDL Vs WSDL ---- a comparison Re: IDL Vs WSDL ---- a comparisonTo: NULL Date: 6/1/2004 10:09:00 AM usenet@s... (Generic Usenet Account) wrote in message news:<90e5135.0405271429.6c170153@p...>... > Does anyone have an opinion on how IDL and WSDL compare to each other? > Are they equally powerful in their "expressive power"? Sometimes it > appears to me that IDL is a little easier for humans to follow. Also, > it appears to be more compact. How is that possible???!!! I thought XML was selected because it was human readable??? Not. <definitions name="StockQuoteService" targetNamespace="http://argonne.com/stockquoteservice.wsdl" xmlns:tns="http://argonne.com/stockquoteservice.wsdl" xmlns:xsd1="http://argonne.com/stockquoteservice.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> <wsdl:types> <xsd:schema targetNamespace="http://argonne.com/stockquoteservice.xsd" xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"> <xsd:element name="LastSaleRequest"> <xsd:complexType> <xsd:all> <xsd:element name="stockSymbol" type="string"/> </xsd:all> </xsd:complexType> </xsd:element> <xsd:element name="LastSalePrice"> xsd:<complexType> <xsd:all> <xsd:element name="price" type="float"/> </xsd:all> </xsd:complexType> </xsd:element> </xsd:schema> </wsdl:types> <wsdl:message name="getLastSaleInput"> <wsdl:part name="body" element="xsd1:LastSaleRequest"/> </wsdl:message> <wsdl:message name="getLastSaleOutput"> <wsdl:part name="body" element="xsd1:LastSalePrice"/> </wsdl:message> <wsdl:portType name="StockQuoteServicePortType"> <wsdl:operation name="getLastSale"> <wsdl:input message="tns:getLastSaleInput"/> <wsdl:output message="tns:getLastSaleOutput"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="StockQuoteServiceSoapBinding" type="tns:StockQuoteServicePortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="getLastSale"> <soap:operation soapAction="http://argonne.com/getLastSale"/> <wsdl:input> <soap:body use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="StockQuoteService"> <wsdl:documentation>Argonne Technologies Stock Quote Service</documentation> <wsdl:port name="StockQuoteServicePort" binding="tns:StockQuoteServiceBinding"> <soap:address location="http://argonne.com/StockQuoteService"/> </wsdl:port> </wsdl:service> /* StockService IDL - not at all readable */ module stockServices { typedef float LastSalePrice; struct LastSaleRequest { string stockSymbol; }; interface StockService { LastSalePrice getLastSale(in LastSaleRequest request); }; }; > > Are IDL and WSDL equally powerful in expressing complex data types, > and describing inheritance and association relationships? Other than the fact that the Simple Object Access Protocol (SOAP) has no concept of Objects, and is in no way simple? WSDL has no concept of inheritance or objects. Granted, the overuse of fine-grained distributed objects did give CORBA a performance black eye in its early days (although no worse than the initial overuse of J2EE Entity Beans), it is sometimes necessary to expose a handful of stateful objects implementing the same interface in the same server. Without the concept of object identity, this is not possible with WSDL/SOAP, or at least not trivial. Again, accepted practice is to expose singleton "service" objects, i.e. facade pattern, and keep entity objects behind the facade. Since CORBA/IDL can implement either model, many believe that CORBA/IDL is more powerful in this respect. On the otherhand, some have argued that this capability makes CORBA/IDL less "simple" that Web Services/SOAP/WSDL. > What would > be the most compelling reasons to choose one over the other? IDL == CORBA == Working == Boring 'ol technology. WSDL == Web Services == Not quite there yet == Another buzzword to put on a resume. :-) Mark | ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
