Tools that help developers to successfully deliver software

Software Configuration Management

Subscribe to Software Configuration Management: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get Software Configuration Management: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

SCM Authors: Stackify Blog, Elizabeth White, Mike Raia, John Basso, Derek Weeks

Related Topics: Java EE Journal, SOA & WOA Magazine, Software Configuration Management


The IBM Rational Approach to SOA and Web Services

SOA is an approach to IT that considers business processes as reusable components

The need to respond to changing business demands with flexible IT solutions has led many businesses to service oriented architectures (SOAs). An SOA is an IT framework that combines individual business functions and processes, called services, to implement sophisticated business applications and processes. SOA is an approach to IT that considers business processes as reusable components or "services" that are independent of the applications and computing platforms on which they run.

SOA solutions are designed as assemblies of services in which the description of the assembly is a managed, first-class aspect of the system, and hence amenable to analysis, change, and evolution. A system is then viewed as a choreographed set of service interactions, so enterprise solutions appear as federations of services connected via well-specified contracts that define their service interfaces. The ultimate goal of adopting an SOA is to achieve flexibility for the business and IT. To bridge the gap between business and IT processes, companies are taking a business-driven approach to SOA development. The following practical guide will address how businesses can develop an SOA to meet their specific IT and business challenges.

Business-Driven Development for SOA Business-driven development for SOA addresses two of the key challenges facing business leaders - improving responsiveness and aligning IT with business goals. When business requirements are used to drive all downstream development activities, the gap between IT and business closes. In the context of service-oriented development, what results are exceptionally flexible solutions that can be rapidly adapted to meet changing business needs and priorities (see Figure 1).

The IBM Rational Software Development Platform for SOA
The IBM Rational Software Development Platform is a complete, open, modular, and proven solution for developing software. It provides development teams with a powerful foundation for business-driven development of SOA solutions, and supports many other styles of development as well.

The IBM Rational Software Development Platform supports key capabilities for building SOA applications including: requirements and analysis; design; construction; software quality; process and portfolio management; and software configuration management. The following overview provides a brief look at each of these capabilities, how they fit into an SOA approach, and the IBM Rational Software Development Platform tools that support them. This overview will set the stage for a more in-depth exploration of how all of these tools work together in the development lifecycle of an example SOA project (see Figure 2).

The IBM SOA Programming Model
The IBM programming model for Service Oriented Architecture separates development and deployment activities into separate phases that can occur at different times and can be done using different skills, by different individuals. This yields a true separation of concerns, enabling the repurposing of software components.

Key elements of the programming model being driven by the IBM Rational Software Development Platform include:

  • Service Data Objects (SDOs): Now in the standardization path at the Java Community Process. SDOs provide a simplified data access programming model for various resources and complement the core Web Services standards XML, WSDL, and SOAP.
  • Business Process Execution Language for Web Services (BPEL4WS): A service orchestration and component scripting standard that supports workflow and business process integration.
  • JavaServer Faces (JSF): A Java framework that speeds Web application development for developers who are not expert at J2EE.
  • Customization of applications using external policies and rules: A series of emerging standards are in development for policy definition and enforcement, including Web Services Policy and OMG Business Semantics of Business Rules (BSBR).
Business Modeling and Requirements
Effective business-driven development starts by analyzing business requirements, needs, and existing processes. This analysis is then used to drive requirements, and all subsequent stages of development.

IBM WebSphere Business Modeler enables analysts to model, simulate, and analyze complex business processes quickly and effectively. Analysts use WebSphere Business Modeler to model "as-is" and "to-be" business processes, allocate resources, and perform "what-if" simulations to optimize and estimate business benefits. Later these models can be transformed into Unified Modeling Language (UML) and Business Process Execution Language (BPEL) to jump-start design and integration activities.

Service-Oriented Solution Design
An effective approach to designing a service-oriented application requires the modeling and definition of well-defined, well-documented interfaces for all major service components prior to the construction of the services themselves.

IBM Rational Software Architect is an integrated design and construction tool for creating service-oriented applications. By leveraging model-driven development with the UML and unifying all aspects of software application architecture, Rational Software Architect enables software architects to design flexible services architectures and automatically apply design patterns for SOA from analysis and design to implementation.

To assist with solution design in a services-oriented world, IBM Rational Software Architect can be specialized with domain-specific notations and languages relevant to defining, assembling, and managing services. General mechanisms are available to create customized notations using built-in product extension mechanisms. Examples of domain-specific languages created using these mechanisms include:

  • The UML Profile for Software Services: Accelerates the transformation of business processes into Web Services by providing a common language for describing services, helping software architects to model, map, and partition services.
  • The UML Profile for Business Modeling: Presents a language for capturing business models in UML and is supported by the Business Modeling Discipline in IBM Rational Unified Process.
Service-Oriented Solution Construction
Java, J2EE, and Web developers are often tasked with creating the core elements supporting SOA, typically Web Services. Manually creating Web Services - or even developing systems that consume existing Web Services - requires a substantial amount of tedious and error-prone work.

IBM Rational Application Developer is a comprehensive integrated development environment for service-oriented development that automates many of the tasks commonly performed in the construction and consumption of Web Services so developers can focus on writing the business logic code, and rely on Rational Application Developer to automate everything from WSDL file and code generation, to test proxy generation and WS-I conformance verification..

Rational Application Developer greatly simplifies the process of creating a Web Service top-down based on requirements specifications and UML models. Developers save time and reduce errors by using Rational Application Developer to automatically generate WSDL files that contain an XML schema to describe Web Services as well as skeleton JavaBeans or Enterprise Java Bean (EJB) files. Rational Application Developer also includes an XML Schema Definition (XSD) editor for specifying the format of messages. Finally, Rational Application Developer's J2EE Component Architecture tools can be used to repurpose existing CICS and IMS transactions as Web Services.

Rational Application Developer's Enterprise Generation Language support enables business-oriented and procedural developers, who may not know Java, to exploit Java to develop, test, and debug data-driven Web applications, Web Services and business logic using procedural programming constructs. EGL's comprehensive Web Services support handles most of the hard work in developing or consuming Web Services. Very little coding is required to consume existing Web Services or to enable existing assets and this leads to a shorter learning curve and high productivity for business-oriented developers.

More Stories By Jim Palistrant

Jim Palistrant is a Market Manager at IBM Rational that has been working on development and test tools for most of his IBM career. He started working on IBM's Java and Web development tools in 1995, helping to bring the WebSphere Studio tools to market. In 2004 he joined the Rational team and helped bring the Rational Developer products to market. In 2005 he became the Market Manager for Rational SOA Solutions. He is a frequent speaker at technical conferences and to customers around the world.

Comments (2)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.