Typemock: Past, Present and Future
Eli Lopian of Typemock answers a few questions on Typemock origins and where Typemock is headed.
Tracking change and innovation in the enterprise software development community
Posted by Werner Schuster on Jul 21, 2008 06:10 PM
Google recently open sourced Protocol Buffers - a Data Interchange Format. Behind the somewhat nondescript name hide:message Person {
required int32 id = 1;
required string name = 2;
optional string email = 3;
}
The numbers ("tags") assigned to the field names need to be specified explicitly to allow the formats to evolve. If they were automatically assigned, a change to the format - say inserting a new field - would cause trouble. Why? Because in the binary format, tags are used to describe what field (in the protocol description) a particular chunk of bytes is. Together with the rule that unknown tags are ignored, explicitly assigned tag numbers allow to add new fields as the format evolves, yet retain compatibility. In the end, if you want an endpoint that is loosely coupled and offers the maximum flexibility, stick with XML, either wrapped in a SOAP envelope or in a RESTful envelope as dictated by the underlying transport (which means HTTP, since REST over anything else has never really been defined clearly by the Restafarians). If you need a binary format, then Protocol Buffers are certainly one answer... but so is ICE, or even CORBA (though this is fast losing its appeal thanks to the slow decline of the players in this space). Don't lose sight of the technical advantages or disadvantages of each of those solutions just because something has the Google name on it.With all the comparisons to XML or JSON, it's easy to miss that Protocol Buffers are a reimplementation of existing technologies. Next to the already mentioned ones, a widely used competing technology is ASN.1, which seems to be somewhat obscure and little known despite being several decades old. This is peculiar if you look at a small sample of the formats that are described in ASN.1:
Hibernate without Database Bottlenecks
Scale Your Application without Punishing Your Database
Guide to Calculating ROI with Terracotta Open Source JVM Clustering
Why Should I Care About Terracotta?
Terracotta 2.6 - Download now for scalability without tradeoffs
With ChangeSummary and XML support, SDO should have been a better choice.
Already there seems to be a huge debate going on about JSON vs XML, two more (thrift and pb) have popped up.
The three most important characteristics which are must for any good data format are data structure, data types and data constraints.
According to me currently only XML has all the three. I am not aware of any other format which has all these characteristics and widely accepted.
http://www.omg.org/gettingstarted/omg_idl.htm http://hessian.caucho.com/ Or, maybe, this a key to innovation? Reinvent 100 wheels and 101st will be another big thing? Regards, Slava Imeshev Cacheonix: Clustered Java Cache
You can also under-invent the wheel by providing a message editor that does not parse link breaks and links :)
http://www.omg.org/gettingstarted/omg_idl.htm
http://hessian.caucho.com
Regards,
Slava Imeshev
Cacheonix: Clustered Java Cache
It would be interested (to me, anyway) to also see in this comparison Adobe's AMF, another binary message format that has also been open-sourced.
Agree here w/Slava. WTF is wrong with Caucho if one needs this data portability? Or SDO? I don't understand... Can someone from Google team provide a sensible reasoning to use theirs vs. others?
Thanks,
Nikita Ivanov.
GridGain - Grid Computing Made Simple
It is actually not a foregone conclusion that protocol buffer will outperform XML, see this article for further analysis http://soa.sys-con.com/node/250512
Eli Lopian of Typemock answers a few questions on Typemock origins and where Typemock is headed.
Scott Ambler talks about actual data resulting from surveys made during 2006-2008, showing how Agile is perceived and implemented within organizations.
From QCon 2008, Daniel Moth presents on using Visual Studio 2008 and .NET 3.5 to create compelling rich Windows applications.
Joshua Kerievsky, founder of Industrial Logic, talks about Industrial Extreme Programming which extends XP by including practices dealing with management, customers and developers.
Amazon Web Services (AWS) Evangelist Jeff Barr discusses SimpleDB, S3, EC2, SQS, cloud computing, how different Amazon services interact, origins of AWS, AWS globalization and the March AWS outage.
Cloud services have helped bring virtualization to the forefront. Its full power however, also includes other benefits such as high availability, disaster recovery, and rapid provisioning.
John Lam talks about his path to dynamic languages, some of the problems of making IronRuby run fast, and how the DLR helps with implementing languages.
VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide provides a wealth of practical insights into setting up virtualization in todays corporate environments.
7 comments
Reply