Comments
yourfanat wrote: I am using another tool for Oracle developers - dbForge Studio for Oracle. This IDE has lots of usefull features, among them: oracle designer, code competion and formatter, query builder, debugger, profiler, erxport/import, reports and many others. The latest version supports Oracle 12C. More information here.
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
In many cases, the end of the year gives you time to step back and take stock of the last 12 months. This is when many of us take a hard look at what worked and what did not, complete performance reviews, and formulate plans for the coming year. For me, it is all of those things plus a time when I u...
SYS-CON.TV
Building SOA with Tuscany SCA
A simple service-oriented infrastructure

Many articles have already been written about service-oriented architecture (SOA) and Service Component Architecture (SCA), for example, see references [1] and [2]. In this article we'll focus on a freely available, open source implementation of the Service Component Architecture that provides a simple way to implement SOA solutions. This SCA implementation is being developed in the Apache Tuscany Incubator project. The project started in 2006 and is being used by many who are looking for a simple SOA infrastructure. The recent Tuscany SCA version 1.0, which was released in September 2007, supports the Service Component Architecture specifications 1.0. In addition to implementing the SCA specifications, Tuscany is also a nursery for new ideas. Some of these ideas will find their way into the specifications and some will be regarded as extensions available in Apache Tuscany Incubator. For example, support for Ruby, JavaScript, XQuery, data binding and Web 2.0 are currently extensions beyond the specification.

This article will walk you through what is available in Apache Tuscany Incubator and therefore highlight the benefits of SCA.

Using Tuscany SCA
A Common Approach to Application Construction and Deployment

Enterprise software development is increasingly influenced by technology choices, regulations, competition and expectations for responsiveness to change. Enterprises need the flexibility to adopt new business practices (like outsourcing of mortgage handling by a bank), enforce new regulations, and extend or down-size without much cost (mergers and acquisitions). In addition, as the complexity of the enterprise grows, a common management paradigm becomes a necessity for managing business applications. Service Component Architecture provides a simple programming model to address these challenges. SCA's simple language maps easily to the business. Let's consider we are building a banking application that handles account inquiries. Table 1 maps business-level questions to SCA.

SCA provides a consistent model of distributed applications and of the components from which they are constructed. This model explicitly separates business logic (Component/Services/References) from the details of how a running application is assembled (Composite/Wire) and deployed. This promotes a common terminology and supports a common understanding of the capability of applications and the way those applications work together. This common model also provides the hooks for tooling, governance, monitoring, and management in the service-oriented world.

When it comes to building a solution for real, one of the most important questions is likely to be "how can existing IT infrastructure and skills be used?" Tuscany SCA does not invent new technologies for component implementations (Implementation) and message exchange (Binding). It neither requires you to learn a new programming language nor communications protocols. You are free to leverage your existing investment in applications, technology, and skills as long as suitable support exists in Tuscany SCA. This is not much of a hurdle; Tuscany SCA has a straightforward extensibility model so new or proprietary technologies can easily be included.

The following sections describe Tuscany SCA in the context of three familiar scenarios. It should be noted that Tuscany SCA is not restricted to these scenarios. The sample code and configuration used here can be found in the Tuscany SCA Java distribution [3] and is available under the Apache License [4].

Enterprise Applications
In a typical enterprise, business functions are implemented using various technologies, business data is represented in different formats, and business applications communicate using heterogeneous protocols. It is almost impossible to converge all applications onto one technology stack such as Web services and so it remains difficult and costly to integrate different applications in an enterprise. Enterprises face many challenges including the following.

•  Business applications are tightly coupled with the IT infrastructure and early design decisions have to be made before real deployment.
•  Application developers are forced to learn and understand many technologies beyond business domain knowledge
•  Business logic is polluted and coupled to various technology-specific API calls imposed by the IT infrastructure. It's not easy to write and not easy to change.

SCA separates business services from the concerns related to specific hardware, software and network protocols by providing a unified programming model that allows the SCA runtime to handle these issues transparently. Let's look at a simple business scenario to see how Tuscany SCA can help enterprise application integration. The scenario here is the BigBank demo from the Tuscany SCA distribution [5]. As illustrated in Figure 1, the application comprises a number of assembled components and ultimately returns a total account balance in response to account inquires.

The use of the SCA programming model allows the BigBank developer to decouple the process of designing and creating the scenario from infrastructure concerns. In the BigBank composite, basic units of business logic are modelled as SCA components called AccountComponent, StockQuoteComponent, etc. Their business logic is implemented using Java and various scripting languages. Components are assembled by wiring references to services. Once all business logic is implemented, appropriate bindings are applied to references and services to indicate how the components should communicate.

The XML-based SCA configuration language describes all of the information about loosely coupled enterprise services and the bindings to be used. Since binding information can be changed in the SCA configuration without changing the business logic, the implementation code is not polluted with protocol handling information and, furthermore, bindings can be changed during deployment without impacting the application.

The following SCA configuration shows the AccountService exposed using JSONRPC (binding.jsonrpc) and Web services (binding.ws). The service can easily be made accessible over RMI by simply adding binding.rmi.

<component name="AccountServiceComponent">
    <implementation.java class="bigbank.account.AccountServiceImpl" />

    <service name="AccountService">
       <tuscany:binding.jsonrpc uri="/AccountJSONService" />
       <binding.ws
       wsdlElement="http://bigbank#wsdl.port(AccountService/AccountServiceSoap)" />
    </service>

    ...
</component>

The following SCA configuration shows bindings applied to component references. Again these bindings can be changed or augmented without changing the business logic.

<component name="AccountServiceComponent">
    ...
    <reference name="calculatorService">
       <tuscany:binding.rmi host="localhost" port="8099" serviceName="CalculatorRMIService" />
    </reference>

    <reference name="stockQuoteService">
       <binding.ws uri="http://localhost:8081/services/StockQuoteWebService" />
    </reference>
    ...
</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.

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

Register | Sign-in

Reader Feedback: Page 1 of 1

SCA sounds a lot like CORBA..
or is it just me seeing this?

SCA = CORBA
CORBA = failure
SCA = ??


Your Feedback
anonymous wrote: SCA sounds a lot like CORBA.. or is it just me seeing this?
anonymous wrote: SCA = CORBA CORBA = failure SCA = ??
SOA World Latest Stories
Lori MacVittie is a subject matter expert on emerging technology responsible for outbound evangelism across F5's entire product suite. MacVittie has extensive development and technical architecture experience in both high-tech and enterprise organizations, in addition to network and sy...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand usin...
When building large, cloud-based applications that operate at a high scale, it’s important to maintain a high availability and resilience to failures. In order to do that, you must be tolerant of failures, even in light of failures in other areas of your application. “Fly two mistakes ...
Containers and Kubernetes allow for code portability across on-premise VMs, bare metal, or multiple cloud provider environments. Yet, despite this portability promise, developers may include configuration and application definitions that constrain or even eliminate application portabil...
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is founda...
Using new techniques of information modeling, indexing, and processing, new cloud-based systems can support cloud-based workloads previously not possible for high-throughput insurance, banking, and case-based applications. In his session at 18th Cloud Expo, John Newton, CTO, Founder an...
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
Most Read This Week
ADS BY GOOGLE