Skip to main content


developerWorks  >  Architecture  >

New to Architecture

developerWorks

Introduction to assets and patterns
Components
Patterns
Reference architectures and frameworks
Best practices and standards
Tools



A variety of IT assets can be developed and reused to add value for future projects and assist in additional architecture frameworks, including reference architectures, patterns, frameworks, and components. These assets, often called work products or artifacts, are the direct result of the development process. Other types of artifacts that result from the software development life-cycle include requirement documents, source code files, deployment descriptors, test cases or scripts, and others.

In most cases, these artifacts are not created from scratch. Instead they are typically harvested from previous engagements or through open standards working groups, consortiums, or external publications. Software development assets are typically anything that can produce future economic benefit -- such as expediting the development process, reaffirming design decisions, minimizing code development -- in constructing new solutions and applications.

Use the resources here to examine best practices, tools, and methodologies for developing and reusing IT assets.


Introduction to assets and patterns

Transforming software development to an asset-based model : Grady Booch interviews two of IBM's leading thinkers on architecture and strategy: Mike Devlin and Danny Sabbah.

Pattern solutions : Get an overview of asset-based development.

Patterns for e-business: A strategy for reuse : Read this book excerpt, which defines patterns and gives you a foundation for understanding patterns and their use in software architecture.

Asset life-cycle management for Service-Oriented Architectures (SOAs) : Discover how effective life-cycle management of services enables organizations to apply tools and methods for governing, administrating, applying, and reusing these assets to augment the advantages of SOA development.


Back to top



Components

Components are the elements that compose most of an IT solution or application. They are identifiable, differentiable, and autonomous elements that when combined, provide business value within an IT solution. Components can be high-level elements to represent function in an architecture or more detailed programming elements to be deployed in production.

WebSphere Business Components and Web services architectures : Get a preliminary analysis of the component and Web services initiatives, and explore the differences and similarities between them as complementary elements of a complete architecture.

The evolving component model : Facilitate the implementation of Web services and their assembly into solutions with the language-neutral, component-based programming model for Service-Oriented Architecture (SOA). The programming model enables nonprogrammers to use existing IT assets without mastering intricate technologies.

Building SOA solutions with the Service Component Architecture : Examine a new programming paradigm for building service-oriented architectures called the Service Component Architecture, a new programming model designed specifically for building and assembling business solutions in an SOA, and targeted for integrating and composing services.

Integrating components : As computing moves from mainframe systems to the world of Web-based distributed, discover how networked systems, components play an crucial role in integrating and aggregating parts of an enterprise system.

Promoting component architectures in a dysfunctional organization : Learn from the author's experience of promoting component architectures and code reuse.

Component testing with Rational Application Developer for WebSphere : Get an introduction to component testing, with an emphasis on the automation of the processes of creating and deploying component tests.

Component organization and Unified Change Management : Use Unified Change Management (UCM), a component-based architecture, for configuration management.

The component diagram and UML : Read this article for an introduction to the component diagram, a structure diagram within the Unified Modeling Language (UML) 2.0 specification.


Back to top



Patterns

A pattern is generally a form, template, or programming model that can be used in solution development. Patterns are essential application components. If the components to be developed have enough in common for the underlying pattern to be inferred or discerned, the components are considered to exhibit the pattern.

Patterns for e-business : Discover how a group of reusable assets can help speed the process of developing Web-based applications. Here is a simple breakdown of these patterns:

Redbook: Applying pattern approaches patterns for e-business series : Use IBM Patterns for e-business to provide the robustness for instantiating reusable architectural templates to solve eighty percent of recurring business problems.

Patterns for e-business: A strategy for reuse : Read this excellent primer about the use of patterns in software development, with an emphasis on how they are viewed by architects.

Pervasive portals patterns for e-business : Check out this series of IBM Redbooks™, which discusses the Access Integration pattern, specifically on portals with pervasive access.

Implementing self-service in a SOA environment : Examine the roles of SOA and the Enterprise Service Bus (ESB) in building solutions that help organizations achieve flexible integration of IT systems.


Back to top



Reference architectures and frameworks

An IT or software architecture is a coherent set of patterns, frameworks, and components that guide the design of each aspect of a larger IT solution. A framework is typically defined as a support structure in which solutions and applications can be organized and developed. A framework includes support programs, code libraries, a scripting language, or other artifacts to help develop and combine the different components of a solution or application. A reference architecture is a proven architecture of an IT solution that is considered by a company or an industry to address specific needs to common problems. A reference architecture used by a company is typically considered a default architecture for solution development, unless business requirements dictate otherwise.

Reference architecture: The best of best practices : See the difference that a strong reference architecture can play in software development projects, following the guidelines provided in the IBM Rational® Unified Process. In addition, this article presents a practical taxonomy for collecting, managing, and using the reference architecture effectively.

SOA programming model for implementing Web services : Review the IBM programming model for SOA that enables nonprogrammers to create and reuse IT assets without mastering IT skills.

Rapid creation of reusable architectures : Review the technology of reuse, which has matured from copying and pasting source code to fine-grained reuse at the class level to coarse-grained, large-scale reuse at the framework and architectural levels. This article focuses on reusable frameworks using patterns and IBM Rational XDE.

Understand the autonomic computing reference architecture : See how the autonomic computing reference architecture lays out the framework for building an autonomic computing system.

Introducing the WebSphere Integration Reference Architecture : Learn how this comprehensive service-based foundation covers the breadth of enterprise-level business integration needs -- without the traditional integration pitfalls.

Enterprise Service Bus capabilities of WebSphere Business Integration Server : Explore the IBM WebSphere® Business Integration Reference Architecture within the context of WebSphere Business Integration Server.

Business intelligence solutions architecture : Explore the role of business intelligence in data warehousing solutions in this article.

Architecting portal solutions : Focus on architecting and building WebSphere Portal Server-based dynamic workplaces in this IBM Redbook.

The Open Group Architecture Framework (TOGAF) and IT architecture in today's world : Explore the open standard framework and learn how it can make you a better IT architect.

Other IBM frameworks:

  • IBM Tivoli Management Framework : Get more information about the IBM Tivoli Management Framework, the foundation for a suite of Tivoli management applications.
  • Enterprise Identity Mapping (EIM) : Use Enterprise Identity Mapping (EIM), a cross-platform solution that involves a wide range of technologies, including Kerberos, Lightweight Directory Access Protocol (LDAP), and Kerberos Network Authentication Service. EIM is a framework provided by IBM that allows the mapping of authenticated users to OS/400 (and application) user IDs.
  • Unstructured Information Management Architecture Framework (UIMA) : Learn more about this architecture that specifies component interfaces, design patterns, data representations, and development roles.

Examples of open source frameworks:

  • Eclipse : Find out more about Eclipse, an open source community whose projects are focused on providing an extensible development platform and application frameworks for building software.
  • Eclipse Development using the Graphical Editing Framework and the Eclipse Modeling Framework : Examine two frameworks that are developed by the Eclipse Tools Project for use with the Eclipse Platform: the Graphical Editing Framework (GEF) and the Eclipse Modeling Framework (EMF) in this IBM Redbook.
  • Apache Struts : Discover how the Apache Struts project encourages application architectures based on the Model 2 approach, a variation of the classic Model-View-Controller (MVC) design paradigm.
  • Apache Cocoon : Read about Apache Cocoon, a Web development framework built around the concepts of separation of concerns and component-based Web development.
  • XML Projects : Find out more about XML-based projects, including Xerces, Xalan, Simple Object Access Protocol (SOAP), and XML-RPC.

Back to top



Best practices and standards

Best practices for assets and patterns are guidelines, based on real-world experience, that can help you solve business and technical problems.

Java theory and practice: The pseudo-typedef antipattern : No typedef facility exists for defining short names for types with the addition of generics to the Java language, so some developers have turned to extension as a "poor man's typedef," with less than positive results. Brian Goetz explains the limitations of this antipattern.

Architecting on demand solutions : Explore the role of analysts, designers, and architects in designing and implementing on demand solutions in this series, using capabilities such as modeling, application integration, and policy-based orchestration.

Building reusable assets for on demand software development : Discover the methodology behind an implementation of an on demand environment in this series, and look at use cases that involve patterns, modeling, workflow, rules and monitoring.

Optimize Web service applications with WebSphere Business Integration tools : Optimize Web services applications in a Service-Oriented Architecture using WebSphere Business Integrator.

Model-driven architecture : Exploit the benefits of model-driven architecture to more efficiently develop software applications through the use of modeling.

Exposing design flaws in your code: Architectural Discovery : Explore the Architectural Discovery component of the IBM Rational Software Architect tool in this tutorial, and use it to detect good and bad patterns in your code.

Reuse engineering for SOA : Find out when reuse, part of the value proposition for SOA, is appropriate. In this article you explore various situations when reuse makes sense in developing your solution.

SOA antipatterns: The obstacles to the adoption and successful realization of Service-Oriented Architecture : Avoid commonly occurring situations or solutions that generate decidedly negative consequences. Three IBM architects show you some antipatterns they compiled based on personal experience with various SOA engagements.

SCA and SDO specifications : Elicit simpler and more powerful ways of constructing applications based on SOA with the new Service Component Architecture and Service Data Objects specifications.

Toward a pattern language for Service-Oriented Architecture and integration : Explore the realm of patterns for SOA and SOI and examine concepts that you can use to make key architectural decisions in creating a robust and flexible SOA.

Understand Web services development patterns : Start with Java™ to produce Web Services Description Language (WSDL). Start with WSDL to produce Java. Start with WSDL to produce Java, which is then used to produce WSDL, which is then used to produce Java! Discover the advantages and disadvantages of these three development patterns.

Build portlets using patterns : Discover how to use Rational Software Architect and IBM State Oriented Portlet Patterns to rapidly architect and generate a complete portlet application for IBM WebSphere Portal.

Delivering IBM Tivoli System Automation configurations using failover patterns : Use the Tivoli System Automation Failover Configuration Pattern asset to simplify the development and deployment of high-availability solutions.

Point-to-point transactional use-case models : Simplify documentation for the architecture phase of your project with this reusable asset.


Back to top



Tools

The following tools can help in the design, development and application of your architecture. You can apply well-known patterns (such as those from the Gang of Four), or develop your own by using the Rational Software Architect built-in pattern engine and patterns wizard. This wizard enables you to take advantage of existing code and models.

  • IBM SOA Business Catalog is a single, comprehensive online directory of reusable SOA content from IBM and invited IBM SOA Specialty business partners. From adapters to models to QuickStarts to Web services, this SOA content quickly advances and enhances SOA environments by leveraging existing services, components, capabilities, and extensions.
  • IBM Rational Software Architect is an integrated design and development tool that leverages model-driven development with UML for creating well-architected applications and services. Learn more about this product or download a trial version.
  • Reusable Asset Specification defines a standard way to package reusable software assets.
  • IBM RUP for Asset-Based Development plug-in is a configurable software development process platform that delivers proven best practices and a configurable architecture. Learn more about this product or download it now.

Back to top


Document options

Document options requiring JavaScript are not displayed


Register:  IBM Rational Software Development Conference:  June 1-5, Orlando, FL

Resources
Pattern Solutions
Patterns for e-business
Trial download: Rational Software Modeler
Trial download: Rational Software Architect
Design Pattern Toolkit
IBM Rational Software Development Platform

Special offers
Make innovation happen with IBM Software Guide
RSDC 2008 RU ready to save the day?
Webcast: Info 2.0 for Web 2.0 and mashups

More offers