Intentional Software - Democratizing Software Creation
Business users doing programming? Simonyi and Kolk presents how Intentional Software offers a radical new software approach that separates business knowledge from software engineering knowledge.
Tracking change and innovation in the enterprise software development community
Posted by Mark Little on Feb 11, 2008 09:06 AM
As with many things concerning Web Services, there are vociferous arguments for and against WSDL (even before WSDL 2.0 poured oil on the fires). One of the main arguments against WSDL is the verbosity and complexity of what's involved in writing a WSDL for a service. However, the Relax-WS project is attempting to provide a solution there. As the project page so aptly puts it:WSDL is a key technology for SOA, and yet creating and editing these files is about as much fun as straightening all the noodles in a bowl of spaghetti with a pair of tweezers.They idea is to extend Relax-NG Compact Syntax by adding support for services, ports, operations and messages. The project aims to encourage developers to think about the WSDL from the start, as part of the service contract and not as an after thought:
The programmer begins with a WSDL file, and as part of the build generates the service interface that is then implemented by one or more classes. The challenge here lies in creating the WSDL!So for instance a relatively simple service could be defined as:
#And Relax-WS would then generate the associated WSDL automatically. But does this really help isolate the developer from WSDL? It it sufficient to silence some of the WSDL critics? As one of the comments on James Strachan's blog states:
# This is "hello world" in relax-ws.
#
service Hello {
port {
operation SayHello {
in {
element name {xsd:string}
}
out {
element message {xsd:string}
}
}
}
}
Definitely cool, but doesn't this suffer from the same shortcomings it claims to fix: "code-driven development........is fast for development, but can easily result in platform-specific features sneaking in, which renders the interface unusable for cross-platform clients."
Don't get me wrong, I despise WSDLs, but I would think auto-generating a WSDL from Java or a relaxng snytax would both result in "unusable cross-platform clients."
SpringSource Launches New Application Server without Java EE
Introducing Project Zero: Building RESTful services for your Web application
Info 2.0: IBM's vision for the world of Web 2.0 and enterprise mashups (Webcast)
That is an approach I've always used, but at some point read an article defining it using that term, and I always thought it was fitting. Code First, Contract Aware, as a mean to generate WSDLs... Meaning, the developer could make their web service interfaces in code, and have the WSDL autogenerated, but not do so in cowboy style: define specific interfaces/contracts (don't use your internal DTOs straight as return types! never never never!), build those contracts as if they were a UI Model object, return those, and be "aware" of what translates to what, so you get really what you want. Using, for example, WCF from .NET, building contracts that way, using attributes to fine tune your contract, you can have excellent WSDL generated, very easily. They'll also be fully WS-I compliant, so that shouldn't be much of an issue. You still need to have basic knowledge of WSDL, but you don't have to actually use it!
...and if you'd like to try it out in a real runtime there's now an Apache Tuscany module to support Relax WS interfaces. Read about it in this blog post
Business users doing programming? Simonyi and Kolk presents how Intentional Software offers a radical new software approach that separates business knowledge from software engineering knowledge.
Jason Rudolph discusses Java/Grails integration, Grails plugins, creating a Grails sample application, Grails app structure, data querying and persistence, validation, controllers and tag libraries.
The Scrum Product Owner role is powerful, valuable and challenging to implement. It brings healthier relationships between customers and developers, and competitive advantage - if you do it right.
Effective Java, Second Edition by Joshua Bloch is an updated version of the classic first edition, which won a 2001 Jolt Award. InfoQ asked Bloch questions about the areas that the new edition covers.
A new article by I. Drobiazko and R. Zubairov introduces v. 5 of the Apache Tapestry component-oriented web framework. The tutorial shows how to create a component and covers IoC in Tapestry and Ajax.
In this interview, Burton Group consultant Pete Lacey talks to Stefan Tilkov about his disillusionment with SOAP, his opinion on REST, and addresses some of the perceived shortcomings REST vs. WS-*.
Jay Fields presents his concept of Business Natural Languages - a type of Domain Specific Languages geared towards being readable by domain experts.
Adoption and interest for Distributed Version Control Systems is constantly rising. We will introduce the concept of DVCS and have a look at 3 actors in the area: git, Mercurial and Bazaar.
2 comments
Reply