OMG Moves Closer to XML-Powered Reusable Code
Last week, OMG approved a proposed RFC on its Reusable Asset Specification (RAS), which seeks to standardize packaging software into a wide variety of easy-to-implement reusable assets, ranging from templates, codesets, services, APIs and business rules to fully-built applets and applications. See why IBM, Borland, Microsoft and other vendors and end users support RAS.
Last week, OMG approved a proposed RFC on its Reusable Asset Specification 1.0 (RAS), which seeks to standardize packaging software into a wide variety of easy-to-implement reusable assets, ranging from templates, codesets, services, APIs and business rules to fully-built applets and applications.
The RAS initiative is supported by a varied number of vendors, including IBM, Borland, Cap Gemini/Ernst & Young, Fujitsu, Microsoft and Unisys. Even a few enterprise end-user firms, including Aetna, Merrill Lynch and Volvo, have endorsed RAS.
RAS uses descriptions supplied via an XML schema as a foundation for permitting easy lookup, cataloguing and reuse. Aside from XML, RAS also leverages some emerging enterprise-grade OMG technologies, including Unified Modeling Language (UML) and Model-Driven Architecture (MDA).
RAS proposes to use these other OMG technologies in the following ways:
- Use UML to describe itself (to describe asset description structure and semantics; and
- Be optimized for a model-driven development paradigm like MDA. In this way, the RAS spec would not restrict reusable assets to be written in UML, but would allow use of assets from other forms (source code, binary code, test cases, requirements etc.).
Why IBM/Rational and LogicLibrary Say Devs Should Like RAS
For its part, Rational/IBM says RAS will spur better reuse of "large-scale components" by enterprise devs, in part because RAS is a language-independent approach that looks to identify components via XML descriptor files.
"One of the big issues for component reuse in the 10-12 years I've been in the development world has been the lack of a way to consistently describe components, and no way to baseline the component," Roger Oberg, director of market management at IBM's Rational Products, told IDN. "We have high hopes that [RAS] will enable developers to really do asset-based developmentâ€¦ because when we have XML files that describe a component, developers will have a lot more visibility into the nature of a component [or patterns and existing code], as well as where it came from," Oberg added.
"This approval means that we're one last step before we have a formal spec for RAS," said Alan Himler, vice president of product management at LogicLibrary, a provider of repository-related technologies and a supporter of RAS.
Himler says RAS has some key factors that will help it succeed in enabling reuse where earlier approaches, such as CORBA, have fallen short. "We as an industry have learned a lot [about reuse] since the early days of CORBA," Himler said. "One of the best things about RAS thus far is that I don't see a lot of vendor specificity. As it stands, RAS allows a developer to develop a composite view over their entire [software] assets. This means you can develop keyword artifacts, keep relationships intact from one asset to another and take care of quite a few of the aspects that limited sharing and reuse before."
LogicLibrary provides enterprise developers and IT managers software asset repository technologies (and related services) designed to help developers reuse-enable their current assets and create templates for building new ones. Its language-agnostic approach is designed to work with Java, .NET and C++/legacy environments.
For an example, LogicLibrary's vice president of technology Brent Carlson noted, "Many early CORBA implementations didn't focus on 'object cohesion,' so that a developer could use it where he wanted and make sure all the accompanying dependencies came along with that object. That meant if you didn't have a tiered approach that could coalesce finer objects into coarse components, you would likely end up with a very poorly performing app."
Today, Carlson said, the pieces are in place "to take a lot of the rocket science out of reuse." Among these pieces that can be woven together, Carlson listed: RAS, .NET/Java frameworks, web services standards, XML, modeling (UML, MDA, SOA, etc.), current and emerging developer skills, and widely-used code templates and patterns as keys.
"The maturity of the J2EE and .NET platform capabilities, along with their support for web services, brings to the table a better underlying infrastructure for sharing and reuse. And that existing technology infrastructure, along with the current skills that developers already have, is what we're hoping RAS will leverage," Carlson added.
Inside RAS -- The Quick Dev Tour
RAS's fundamental goal aims to establish a common set standard terms related to asset-based development and to define the minimum required structured meta-information needed to facilitate the reuse of software assets.
RAS tries to strike a balance between definitions "too-vague-to-be-useful" and definitions "too-specific-to-be-reused." To accomplish this, RAS describes assets using two major categories: (1) Core RAS and (2) Profiles.
At the most meta-informational level, Core RAS looks to define and require description for the fundamental elements of asset specification, considered a minimum dataset for enabling reuse. In the current RAS spec, Core RAS defines four major sections to an asset, including its Classification, Solution, Usage and Related -Assets.
The RAS Profiles describe extensions to these four (4) fundamental elements as needed. A profile is a formal extension of the meta-information structure. In general, it is a way to add or augment information to the base (default) specification. A RAS profile can be created to introduce tighter semantics and constraints.
But, in profiles, the OMG recognized the slippery slope that, by including too many or too few constraints in a profile, reusability could be constrained -- or worse. So, the RAS spec includes some rules for these profiles. For example, a new profile may require nodes that are currently optional, but the constraints in the parent profiles cannot be removed. For instance, existing nodes cannot be made less constrained in the new
profile than the way they're defined in parent profiles.
In addition, every manifest document must reference the XML schema document associated with the profile that can be used to validate the manifest document. The profile's schema document can be referenced with the xsi:schemaLocation as an attribute of the
The actual filename may vary for the profile file, but the XML instance documents must reference the schema file. The schema file is expected to accompany the manifest document, but this is not required. The profile schema file may be referenced with a URL and accessed through a network.
The RAS 1.0 draft spec is available for review and download, and open to comment for the next 60 days.