YOUR FEEDBACK
James Nelson wrote: Thanks for the posting, which we are hoping will solve our software issue with t...
SOA World Conference
Virtualization Conference
$300 Savings Expire August 29, 2008... – Register Today!


2008 East
DIAMOND SPONSOR:
Data Direct
Frontiers in Data Access: The Coming Wave in Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
Intel
Virtualization – Path to Predictive Enterprise
Green Hills
IT Security in a Hostile World
JBoss / freedom oss
Practical SOA Approach
GOLD SPONSORS:
Software AG
The Art & Science of SOA: How Governance Enables Adoption
PlateSpin
Effective Planning for Virtual Infrastructure Growth
Fujitsu
Automated Business Process Discovery & Virtualization Service
Ceedo
Workspace Virtualization
Click For 2007 West
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
When I was a kid, which seems like just yesterday (and no comments from the peanut gallery), I loved playing with LEGO, making imaginary ray guns, space ships, and other things that amuse the average boy. LEGO's popularity and longevity have to be due in no small part to the ability to assemble a ne...
SYS-CON.TV
TODAY'S TOP SOA & WEBSERVICES LINKS


Building SOA with Tuscany SCA
A simple service-oriented infrastructure

This very simple mechanism of applying bindings to the services and references defined by a component is at the root of SCA's ability to separate business logic from deployment concerns. It works regardless of whether the component implementation is brand new or wraps some existing business logic.

It is also the mechanism by which SCA components communicate with services outside of SCA. Bindings can be defined such that existing applications can access SCA services or can be referenced by SCA components. This flexibility allows the SCA approach to be introduced incrementally within an organization.

SCA simplifies business logic development with dependency injection by providing an Inversion of Control (IoC) container. As you can see from the Java code snippet below, the component simply declares references and properties using Java annotations. The account service talks to account data service, stock quote service, and calculator service by making direct calls on the interfaces. The code here deals with business logic only and no traditional technology API calls are required. Tuscany handles how the services are located, who provides the services, and how messages are delivered based on information in the SCA configuration.

@Service(AccountService.class)
public class AccountServiceImpl implements AccountService {

   @Reference
   protected StockQuoteService stockQuoteService;

   ...

   @Property
   protected String currency;

   public double getAccountReport(String customerID) {

     // Get the stock price in USD
     double price = stockQuoteService.getQuote(stock.getSymbol());

     // Convert to the configured currency
     if (currency.equals("EURO")) {

         price = calculatorService.multiply(price, 0.70);
     }
     ...
   }
}

SCA also provides a mechanism to separate organizational infrastructure concerns from business logic through policy statements that enable agreed constraints to be applied at deployment time. This could range from dictating which communications should be encrypted to describing which level of monitoring and logging is required. For example, the helloworld-ws-service-secure sample [6] shows how to express the intention that clients accessing a service must be authenticated before doing so.

<component name="HelloWorldServiceComponent">
   <implementation.java class="helloworld.HelloWorldImpl" />
   <service name="HelloWorldService" requires="authentication">
     <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
     <binding.ws uri="http://localhost:8085/HelloWorldService"/>
   </service>
</component>

Note that the <service> element carries a policy intent that interactions require "authentication." How authentication is actually implemented is then a matter of policy within the organization.

We have demonstrated how the flexibility of the SCA programming model helps address enterprise challenges. Another area to point out is the ability to use any implementation language and therefore leverage existing skills and investments. Tuscany SCA provides support for a selection of languages for building business logic, for example, XQuery, BPEL, script. The BigBank demo implements the various operations of the calculator using scripting languages. Tuscany SCA's implementation.script currently supports JavaScript, Groovy, Ruby, and Python. In the SCA configuration example below, implementation.script indicates that the business logic of the AccountServiceComponent is written in JavaScript.

<component name="AddServiceComponent">     <tuscany:implementation.script script="calculator/AddServiceImpl.js"/> </component>

Tuscany SCA also supports Spring and OSGi implementation types. New or existing Spring applications or OSGi bundles can be used to provide the implementation for SCA components. These components can be easily composed with other service components and deployed consistently in a distributed network of Tuscany SCA runtimes with the full range of communication methods made available to them.

Enabling Web 2.0
A typical Web 2.0 application will reference several services in the organization and integrate the provided data in the browser. Tuscany SCA enables such services using popular technologies such as JSONRPC, RSS, and Atom protocols.

Tuscany demonstrates how a Web 2.0 application, and the services it relies on, can be constructed using an Internet shopping example called "Store" [7]. There is a guide that walks through the steps required to build this sample [8].

From Figure 2 you can see a Catalog component providing a service to the Web 2.0 application over JSONRPC. The Catalog component provides information about the products the store has for sale and has been constructed without regard for how it might be accessed. Using Tuscany SCA the Catalog component's Java implementation is associated with the JSONRPC binding (binding.jsonrpc).

<component name="Catalog">
   <implementation.java class="services.CatalogImpl"/>
   <service name="Catalog">
     <t:binding.jsonrpc/>
   </service>
   ...
</component>


About Haleh Mahbod
Haleh Mahbod is a program director with IBM, managing the team contributing to the Apache Tuscany as well as SOA for PHP open source. She has extensive development experience with database technologies and integration servers.

About Raymond Feng
Raymond Feng is a senior software engineer with IBM. He is now working on the Service Component Architecture (SCA) runtime implementation in Apache Tuscany project as a committer. Raymond has been developing SOA for more than 4 years and he was a key developer and team lead for WebSphere Process Server products since 2002.

About Simon Laws
Simon Laws is a member of the IBM Open Source SOA project team working with the open source Apache and PHP communities to build Java, C++, and PHP implementations of the Service Component Architecture (SCA) and Service Data Object (SDO) specifications. Prior to this role he was working in the distributed computing space building service-oriented solutions for customers with a particular interest in grid computing and virtualization.

YOUR FEEDBACK
Conneva Weblog wrote: Trackback Added: What's new in Eclipse 3.1; I'm just getting around to reading Ed Burnette's great article summarizing the recent developments in Eclipse 3.1 (hat tip Ben Booth). In four short years since Eclipse exploded onto the scene, it has come to dominate the Java IDE landscape....
Serge Baccou's Blog wrote: Trackback Added: What's new in Eclipse 3.1?; In a previous note, I have announced the release of Eclipse 3.1. Meanwhile, I have read carefully the following page on Eclipse web site: Eclipse 3.1 - New and Noteworthy and I have installed Eclipse 3.1 on my PC. This is a summary of what is new in ...
Eclipse News Desk wrote: SYS-CON Exclusive: What's New in Eclipse 3.1? Since Eclipse's first release in 2001, it has become a popular environment for Java development. In the period between March 10 and May 11, 2005, users downloaded over 17,000 copies of one of the production SDK releases and over 3,500 copies of one of the stable (milestone) SDK builds on average every day. A vibrant eco-system of developers, plug-in providers, authors, and bloggers has grown up around it. Eclipse has also gained the backing of the key Java vendors including BEA, Borland, IBM, SAP, and Sybase. Developers like Eclipse because it provides a great platform for building Java applications, and companies like it because it unifies their software tools under one open source umbrella.
hoba wrote: Great summary, thanks a lot!
David R. Heffelfinger wrote: I was unaware of the new feature of importing/exporting Ant buildfiles. Unfortunately the article does not explain how to do it. Eclipse help wasn't much help either. After some experimenting, I figured it out. Details can be found in my blog. David
SOA WORLD LATEST STORIES
Technology's highest paid CEO currently is also America's highest paid CEO, namely Larry Ellison of Oracle - who with a fiscal 2008 pay package of $84.6M is the top earner at any of the Standard & Poor's 500 companies. Noting that annual pay totals are "based on salary, bonuses, incent...
From Composable Services and Facelifting SOA to Real-Time SOA Systems and SOA For Parallel Computing, this is a round-up of the many themes and topic of interest to architects, developers and managers featuring at the 14th International SOA World Conference & Expo being held November 1...
Melding a stable enterprise architecture with the right level of technical and organization transparency involves two different perspectives. An architect can lay a SOA foundation that enables development teams to build new functionality leveraging Web Services. However, without a libr...
In a recent study, CIOs ranked "improving business processes" as their #1 priority for 2008. But the big question has always been - How does one get started with a BPM initiative? The traditional approach has been to engage external consultants and to dedicate significant time and reso...
In this webcast you will see some examples of leveraging JBoss product suite in Enterprise Service-Oriented Architecture implementations. You will examine real-life case studies to clearly understand the full lifecycle of an Enterprise SOA, as well as what it takes to have the “Pract...
Asigra announced that CDW has selected Asigra Televaulting as its online backup platform. Chosen for its unmatched service-oriented architecture, powerful data de-duplication and broad interoperability, Asigra Televaulting will be the technology platform behind CDW’s Remote Backup Se...
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