Comments
litl_phil wrote: While it's nice that Google and Acer share the vision of cloud-based computing, it's also worth noting that we at litl already have a webbook on the market (available at litl.com) that runs our own cloud-based OS. Unlike Chrome, litlOS is focused on creating a new and better web experience for the home, so we don't have the usual browser interface, we have our own innovative UI. In conjunction with easel mode (litl's inverted-V position) and our growing cohort of litl channels (special apps t...
Cloud Computing
Conference & Expo
November 2-4, 2009 NYC
Register Today and SAVE !..


2008 West
DIAMOND SPONSOR:
Data Direct
SOA, WOA and Cloud Computing: The New Frontier for Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
GOLD SPONSORS:
Appsense
User Environment Management – The Third Layer of the Desktop
Cordys
Cloud Computing for Business Agility
EMC
CMIS: A Multi-Vendor Proposal for a Service-Based Content Management Interoperability Standard
Freedom OSS
Practical SOA” Max Yankelevich
Intel
Architecting an Enterprise Service Router (ESR) – A Cost-Effective Way to Scale SOA Across the Enterprise
Sensedia
Return on Assests: Bringing Visibility to your SOA Strategy
Symantec
Managing Hybrid Endpoint Environments
VMWare
Game-Changing Technology for Enterprise Clouds and Applications
Click For 2008 West
Event Webcasts

2008 West
PLATINUM SPONSORS:
Appcelerator
Get ‘Rich’ Quick: Rapid Prototyping for RIA with ZERO Server Code
Keynote Systems
Designing for and Managing Performance in the New Frontier of Rich Internet Applications
GOLD SPONSORS:
ICEsoft
How Can AJAX Improve Homeland Security?
Isomorphic
Beyond Widgets: What a RIA Platform Should Offer
Oracle
REAs: Rich Enterprise Applications
Click For 2008 Event Webcasts
Everyone wants to lower their capital expenditures and increase operational efficiency - it's a sign of the times. The economy of the past 12 - 18 months has forced all organizations to do more with less and become more efficient. While everyone can identify with the request to do more with less, th...
SYS-CON.TV
'Delving' into Cretaceous Software's SOA Fast-Prototyping Toolkit
A service-oriented programming language

Dynamic languages like Ruby and Python have been enjoying a burst of popularity in the Web development community and there are a plethora of frameworks for those platforms that allow them to solve a wide variety of problems. There's one company that's building its own dynamic language from the ground up with a single-minded approach to the problem of fast prototyping for Service Oriented Architectures.

That company is Cretaceous Software, Inc., and the programming language is called Tectonic. Cretaceous characterizes Tectonic as a service-oriented programming language because it "directly reflects the concepts and values that embody SOA." What does this really mean? The answer is probably best illustrated by the example in Figure 1.

The top window in the figure shows the seven lines of Tectonic code required to implement a simple Web Service called "GreetingService" with the operation "Greet." The bottom window of the figure shows the two lines of Tectonic code required to exercise the service. Granted the example is contrived but it serves to illustrate the simplicity of delivering a simple service. No annotations are required, no embedded angle brackets, no code generation, and no special widgets of any kind. The notion of a service and all that it entails is embedded in the language thereby providing a low-impedance mechanism for prototyping services.

Delving In...
You may ask, "How do you run this code?" or "How is it deployed?" The answer is in the Delve Development Habitat, which is essentially an integrated development environment and runtime specifically designed for the Tectonic language. Delve provides an editor, language interpreter, embedded Web server, and complete SOAP stack and is designed around the same SOA fast-prototyping concepts as Tectonic.
To run the example in Figure 1, I typed the code into two separate pages (more on this later) and executed the project. Delve automatically exposed the Web Service on an embedded default server then ran the test client and displayed the results.

The WSDL for the service is available via the Web Service URL with a ?WSDL parameter appended. To test interoperability, I pointed my NetBeans IDE at the Delve hosted service and generated a JAX-WS client that ran and returned data from the service without a hitch.

To begin working with Tectonic you create a project then create a new "page" and put Tectonic code in that page. Tectonic has no concept of a file, and the Delve Habitat doesn't explicitly support mapping of pages or projects to files. You may think of each page as a file but there's nothing in the environment that guarantees this or gives you direct access to a file.

There's no restriction as to what may be put on each page but I'm told it's considered good form to distribute code across pages in a logical manner. For example, a service definition, with its supporting types and schema, should reside on a single page. Each page is assigned a name by the user at creation, and that name should reflect the purpose of the page. Pages are ordered in a project in the order they should be executed.

When I installed the Delve Habitat, it automatically configured a server on the standard loopback address, 127.0.0.1. This server is referred to as the "default server." Additional servers can be configured to run in the Delve Habitat on any IP addresses and ports required. Each server is named and can be configured to start automatically when Delve is launched. Servers are visually displayed in a Server Panel in the Habitat and each service deployed is displayed under the server. By default the URL suffix for each service is the project name followed by the service name, but Delve lets you customize it to whatever you want.

Schema
The Tectonic language allows for the definition of XML Schemas. This is natively supported and acts as nice shorthand for constructing schemas without additional tools. In fact, all type definitions in the Tectonic language are associated either explicitly or implicitly with a schema.

A nice feature of the Delve habitat is that it directly supports XML namespaces. The habitat lets users define a common set of namespace mappings that are shared across all code executing in the habitat. This reduces the boilerplate namespace declarations when working across a number of projects.

XPath
So now that you've imported or constructed a schema in Tectonic, how do you navigate the document hierarchy? You might expect a typical dot (.) notation for member access as in other languages, but Tectonic uses XPath notation natively for its member access mechanism. The forward slash "/" character is used as an "accessor" operator. As you would expect with XPath, when the forward slash is placed to the right of an element instance, it produces all child elements with names matching the operand appearing to the right of the accessor.

Resources
Since Delve doesn't have a notion of file, it refers to external entities such as XML documents and schema files as "resources." The resource construct lets a Tectonic developer ignore the physical aspects of the resource. The developer only has to treat the resource abstractly as a document and not be concerned with whether or not the resource is in the local file system or somewhere out there on the Internet. Essentially, this lets Tectonic view a document as a discrete entity rather than the result of fetching data from the system and massaging it into a particular form.

Resources are configured through the Delve Habitat using a resource wizard that lets the developer select the document to associate with a resource. Delve supports mapping a WSDL document to a "Foreign Service Interface" resource. This allows for simple access to external Web Services as shown in the lower window in Figure 1. The ease with which external Web Service calls can be mocked up in the Delve environment lends itself well to testing. I could envision training testers in using Tectonic and Delve and have them build a suite of test cases for all services developed in a project or across an enterprise. Tectonic can also be used to mock up a service to facilitate client development before the "real" service is delivered.

Licensing & Support
Cretaceous Software has kept the licensing simple and inexpensive. Delve Development Habitat 1.0 is $75 per developer seat. Cretaceous offers unlimited online support and up to four phone support incidents for license holders for up to 12 months after purchase.

Conclusion
In a world where sexy BPEL orchestration tools are prevalent, a simpler language-oriented model can be a welcome alternative. I must admit that when I was asked to review Cretaceous' product, I was skeptical. But as I tested the tool and dropped into other environments to test interoperability, Tectonic and Delve always seemed simpler and quicker to use.

The Tectonic language and Delve Development Habitat remove the impedance mismatch between code and service access typical in many languages. The language and tools are simple and straightforward to use, but can support complex implementations
Any readers out there who are looking for tools that do fast prototyping in an SOA environment should definitely consider Tectonic and the Delve Programming Habitat.

About Paul Maurer
Paul Maurer is a principal in the financial services practice of a leading consulting services company.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

SOA World Latest Stories
If you are like me, you are regularly receiving unsolicited email from various quarters, telling you about the latest and greatest SEO solutions on the planet. Just buy the book, or guide, or download the promotional whitepaper and this expert will offer you the latest "Secrets" to sea...
There's a lot of talk about how we need to focus on our buyers' issues and provide them educational insights to help them learn what they need to know to make buying decisions. Heck, I say it in my book...in several places, I think. I've said it on this blog, and I'll continue to say i...
This past weekend I set out explore some of the extension capabilities of Google Wave. One of the weaknesses that have been identified by many is the lack of integration with email. For me, in particular, because Wave is new, many Waves are being orphaned as those playing and testing o...
More good news for cloud computing! Google last week released its once mysterious Chrome Operating System to open source. Chrome OS, available in 2010 – is a web-based operating system that promises to boot up super-fast on a netbook – way faster than the time it takes to start your ba...
In CloudBerry Lab we are striving to make our customer service better. In this competitive market with the abundance of free offerings this is the only way to stay afloat. One of the ways to keep customers happy is to be very responsive when it comes to support request resolution. Shou...
We talk a lot about social media on Marketing Trenches. And for good reason – Social media seems to be at least one item on the agenda for about 90% of the meetings we have these days. Everyone wants to run 100 miles an hour to do something on Facebook, LinkedIn and Twitter. I wrote...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON Featured Whitepapers
ADS BY GOOGLE