Skip to main content link. Accesskey S
  • Anonymous
  • Log on
  • Help
  • IBM logo
  • IBM Composite Applications wiki
  • All Wikis
  • Home
  • Community Articles
  • Product Documentation
  • Learning Center


Search

Advanced Search

Categories

Tag Cloud

  • 6.2
  • 6.2.1
  • 8.0.1
  • 8.5
  • 8.5+
  • 8.5.1
  • advanced features
  • advantages
  • API
  • app dev
  • assembling
  • basics
  • benefits
  • Browser
  • CAE
  • catalog
  • changing page properties
  • changing value to another type of value
  • code snippet
  • component library
  • component properties
  • components
  • Composite Application Editor
  • Composite Applications
  • container components
  • containers
  • custom actions
  • debugging
  • demos
  • deploying
  • designing
  • developing
  • Eclipse
  • Eclipse components
  • editing properties
  • Editor
  • education
  • enablement
  • Expeditor
  • extending
  • extensions
  • FAQ
  • feature rules
  • framework
  • getting started
  • Help
  • HOD
  • host on demand
  • how to
  • Java
  • lead manager
  • linking
  • live text
  • match rules
  • new users
  • Notes
  • Notes components
  • nsf
  • NSF components
  • overview
  • page navigation
  • page properties
  • Palette
  • PBE
  • PIM
  • plugins
  • Portal
  • preference
  • product documentation
  • programming
  • properties
  • property broker
  • property broker editor
  • Property Broker Monitor tool
  • provisioning
  • resources
  • roadmap
  • samples
  • setting component properties
  • Sidebar
  • sideshelf
  • Symphony
  • Symphony view component
  • technote
  • testing
  • toolkit
  • TopologyHandler
  • troubleshooting
  • tutorial
  • update site
  • updating
  • upgrading
  • video
  • view
  • Web
  • web services
  • white lists
  • widgets
  • Wiring
  • WSDL
InformationInformation
You are currently viewing machine translated content. IBM translation might be available. Click IBM Translated Product Documentation to see what is available.X


Home > Getting Started > Components and Containers
Rate this article 1 starRate this article 2 starsRate this article 3 starsRate this article 4 starsRate this article 5 stars

Components and Containers 

expanded Abstract
collapsed Abstract
No abstract provided.
So what is a container? For that matter, what is a component? Hopefully when you finish reading this article, I will have cleared up some of the confusion between IBM composite application components and IBM composite application containers.

Components are a rich decoupled part with a well defined purpose. A component in our Composite Application (CA) context is a stateless self contained piece of function that has configuration information and well defined inputs and outputs. More often than not, they have a visual interface. I like to compare CA components to visual web services. They provide the end user with a slice of information. They provide an assembler with a building block. Several slices can be combined to give the user a more complete picture. These slices can be combined and reused in numerous ways providing flexibility for the individual combining them (the assembler role).

The visual web service analogy is a little misleading though because not all components have visual representations. We denote some components as hidden because they perform an operation on the value of an input parameter and output the result without any user interaction required. This form of component does not require a visual interface at run time, and is referred to as a hidden component or if it will be global to the application (instead of being hidden on a page) is typically referred to as a hidden service component.

Component examples are mail, calendar, search, and map components, where each could take inputs, like the date for a calendar, and/or provide outputs, like the “to: members” of the currently selected email. Components are usually created by developers in a development environment.

Containers are the vehicle to wrapper (bridge) around a pre-existing application types, like terminal emulation or a web application in an IBM Composite Application. While the container itself is a development artifact, the goal of the container is to give the assembler an easy declarative way to create a CA component from an existing application type (i.e. a web component from a web application, or a notes component from a notes database).

Take the browser container for example. A web application is in and of itself not a CA component, that is, it is shown in a browser and your other applications have no way to interact with it. A developer can create a CA component by using the browser widget in a rcp swt view, interact with the DOM to update and retrieve DOM elements and create the input and outputs programmatically using a WSDL, while the browser container allows an assembler to configure it for a specific web application without any awareness of rcp, swt, Dom or WSDLs.

The assembler can assign the home URL, and can instrument input and output properties to any and all pages of that application. The result is a browser container configuration and is the CA component that can now be integrated with other CA components. An assembler can create as many browser configurations as they like.

Examples of containers are the browser container, Host on Demand (HOD) container, Notes container, and the Symphony Spread Sheet Container.

The container infrastructure makes it easier to handle some of the nuances of building a generic bridge which will generate the equivalent of a CA component. This includes dynamically creating properties, getting property values at initialization, handling property changes without requiring action handlers and providing a mechanism to instrument properties across states of the existing application.

A lot of the container infrastructure, like the elimination of WSDLs and retrieving property values during initialization, could be leveraged to create a CA component, but there is a lot of overhead in the container infrastructure to support the bridging and state functionality. The Container Component allows you to easily convert/create an SWT View Part to a CA component which leverages the container infrastructure under the covers.

So in general, if you want to make a bridge to an existing application type, create a container. If you want to create a component that has well defined inputs and outputs, then create a CA component. If you want to create a CA component and don’t want to deal with WSDLs, action handlers, and managing initialization of properties then use the Container Component.

expanded Article information
collapsed Article information
Category:
Getting Started
Tags:
components, containers, Expeditor, basics, assembling, getting started, new users

This Version: Version 10 October 11, 2009 9:09:12 PM by Deanna Drschiwiski  IBMer

expanded Attachments (0)
collapsed Attachments (0)

 


expanded Versions (10)
collapsed Versions (10)
Version Comparison     
Version Date Changed by               Summary of changes
This version (10) Oct 11, 2009 9:09:12 PM Deanna Drschiwiski  
9 Sep 22, 2009 11:31:41 AM Michael Cooper  
8 Sep 22, 2009 11:28:32 AM Michael Cooper  
7 Sep 22, 2009 11:26:14 AM Michael Cooper  
6 Sep 22, 2009 10:04:58 AM Michael Cooper  
5 Sep 22, 2009 10:01:50 AM Michael Cooper  
4 Sep 21, 2009 10:06:48 AM Michael Cooper  
3 Sep 21, 2009 10:05:45 AM Michael Cooper  
2 Sep 17, 2009 11:43:17 AM Bob Balfe  
1 Sep 10, 2009 10:40:15 AM Michael Cooper  
expanded Comments (0)
collapsed Comments (0)
Copy and paste this wiki markup to link to this article from another article in this wiki.
Go ElsewhereStay ConnectedSubscribe to RSSHelpAbout
  • All Lotus and WebSphere Portal wikis
  • IBM developerWorks
  • IBM Software support
  • IBM Social Business User Experience Blog
  • IBMSocialBizUX on Twitter
  • IBMSocialBizUX on Facebook
  • Lotus product forums
  • IBM Social Business UX blog
  • IBM Collaboration Solutions
  • Recently added feedRecently added
  • Recently edited feedRecently edited
  • Recently added comments feedRecently Added Comments
  • Wiki Help
  • Forgot user name/password
  • Wiki design feedback
  • Content feedback
  • About the wiki
  • About IBM
  • Privacy
  • Contact IBM
  • IBM Terms of use
  • Wiki terms of use