Beauty Is in the Eye of the Beholder
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Hartmut Wilms on Oct 05, 2007
Noemax releases a SOAP/TCP transport implementation for WCF, which makes use of the Fast Infoset in order to improve performance and interoperability of WCF services.
WCF provides out-of-the-box support for either interoperable text-encoded XML Messaging or proprietary binary-encoded XML Messaging. Developers looking for both have to develop custom WCF bindings and transports.
Now, Noemax has released a WCF extension that provides a SOAP/TCP binding. SOAP/TCP was developed by Sun Microsystems. It is a simple, efficient and light weight transport over a TCP/IP connection that is suitable for the transmission of Web service messages (SOAP-based or XML Infoset-based). SOAP/TCP supports the use of Fast Infoset, which specifies a binary representation of an W3C XML Information Set, for encoding and decoding XML messages.
“Availability of SOAP/TCP for WCF comes at a time when .NET developers are seeking solutions that improve the performance of Web services”, said Arman Djusupov, chief developer at Noemax. “SOAP/TCP is unique in its ability to use Fast Infoset as a stateful message encoding. While all WCF transports can use Fast Infoset, which is the most compact encoding when compared to the text XML, MTOM and .NET Binary encodings, SOAP/TCP is the only transport that can reuse the same vocabulary throughout a communication session for an even higher reduction in message size. The resulting increase in communication speed makes SOAP/TCP the fastest transport for WCF”.
Alexander Philippou of Noemax explains:
SOAP/TCP is (currently) the only transport that uses the Fast Infoset message encoding in a stateful mode. This means that each message sent during the same communication session is accompanied only by new entries (if any) to the Fast Infoset vocabulary -- not the whole vocabulary as is the case with the non-stateful Fast Infoset message encoding that can be used with the other transports. The vocabulary is a table that associates string values with identifiers. One of the techniques used by Fast Infoset to reduce the size of the text encoding is to enter string values (such as markup) in the vocabulary and substitute all occurrences of these string values in the document with their corresponding identifier.
Noemax's SOAP/TCP implementation is also compatible with the SOAP/TCP implementation of Sun's Metro. Metro is Sun's web service stack that packages the web service related Java APIs, such as JAXB, JAXP, StAX, and SAAJ. As Alexander Philippou points out
SOAP/TCP is WCF<->Metro interoperable and has been tested using both text and Fast Infoset. It has not been tested with MTOM since there is no point in using it when Fast Infoset available; SOAP/TCP for WCF is included in the Noemax WCF-Xtensions which also includes Fast Infoset, and of course Metro has both too.
Noemax provides a Fast Infoset implementations for .NET called FastInfoset.NET. FastInfoset.NET integrates into the .NET XML APIs and provides a means of encoding and decoding XML messages according to the Fast Infoset specification. Noemax's WCF-Xtensions offers
All extensions can be configured within a custom binding or plugged into the existing standard WCF bindings. Noemax has published size comparison and performance benchmarks between text, Fast Infoset, MTOM and .NET Binary encodings on their website.
Noemax SOAP/TCP implementation looks promising. It offers an interoperable binary encoded messaging over TCP, which is compatible to Sun's Metro implementation. In addition it provides a serious alternative to the propriety NetTcp binding, which is the most performant way of communicating between WCF consumers and providers offered by Microsoft, today.
Getting Started with Stratos - an Open Source Cloud Platform
Using Drools? See what you're missing! Get the Power of Drools with the Assurance of Red Hat
agility@scale eKit: 10 Principles, Scaling Model, Metrics, Collaboration
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.
Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.
Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?
Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.
Chris Richardson shows how he ported a relational database to three NoSQL data stores: Redis, Cassandra and MongoDB.
Jean Tabaka challenges the audience to reflect on what Agile practices they are employing, how they are using them, ending with the questions “Why have their organization chosen to go Agile?
No comments
Watch Thread Reply