Skip to main content

Integrating components

Examine the benefits and pitfalls of component integration to wireless

Judith Myerson (jmyerson@bellatlantic.net), Systems Architect and Engineer, Professional Consulting
Judith M. Myerson is a systems architect and engineer and a freelance writer. Her areas of interest include middleware technologies, enterprise-wide systems, database technologies, application development, network management, distributed systems, component-based technologies, and project management. You can contact her at jmyerson@bellatlantic.net.

Summary:  Judith M. Myerson delivers an overview of the promises (frameworks as reusable mechanisms, middleware that provides request brokers for horizontal infrastructure services and component connector mechanisms, component-based software engineering, and Web engineering) and problems (firewalls making user collaboration difficult, inadequate risk analysis, and the non-availability of components) to providing component-integration benefits to the wireless world. The author also defines the top-down and bottom-up approaches of component integration and explains why you should consider components at both the object and abstraction levels.

Date:  01 Feb 2003
Level:  Intermediate
Activity:  1261 views

As computing moves from mainframe systems to the world of Web-based distributed, networked systems, components play an crucial role in integrating and aggregating parts of an enterprise system -- particularly when sending and receiving transactions between wired systems and wireless ones, those with limited memory and small display size.

The most important promise offered by components is that they're reusable. This allows designers to save time and reduce errors when they're creating new systems or modifying existing ones. Designers can reuse, mix, and match components as the business requirements in heterogeneous systems change.

Other promises that the integration of components offers to the world of wireless include component middleware, building block frameworks, component-based software engineering, and Web engineering. Naturally, there is a down side.

Component technology has also brought with it such problems as its inability to pass through firewalls effectively, the unavailability of desired components, a high rate of project failures, and the inadequate or missing risk-analysis capabilities of component-based enterprise systems.

Before I elaborate on the promises and problems that integrating components carry, let's define a component for the purposes of this article.

Defining "component"

Let's first take a look at two approaches of component integration: The top-down and bottom-up methods:

  • The top-down approach: The software engineering world defines a component as "one of the parts that make up a system...and may be divided into other components" (from the Elucidata Services glossary listed in Resources).

  • The bottom-up approach: This approach, on the other hand, defines the basic component as the foundation that the designers can use as a building block for a system of more complex components and its relationships among them.

With either approach, you can consider components at both object and abstraction levels. A component at the object level is a collection or group of objects that are related to each other in some way. Components correlate to building, testing, implementing, or deploying applications and providing application, interface, environmental, or system services. Each component interfaces, integrates, and interoperates with other components in a predefined architecture that can either hide or show implementation details. When the life cycle of a component of objects reaches its end, it can repeat itself in a certain number of loops, proceed to the next component for implementation, or be aggregated with other components as a published service in a directory or as wireless portals of Web services.

A component at an abstraction level is a "potentially standardizable or reusable exposed interface" (from the Component Software Glossary in Resources). At a lower level of abstraction, you can look at object services designed as reusable components, while at a higher level you can consider different software modules, each one identified as a component to implement an object or exposed service.

Let's examine more closely the promises that component technology offers to the wireless world.


The promises

Component technology offers the following benefits to the wireless arena:

  • Component integration at various levels

  • Component middleware

  • Building-block frameworks

  • Component-based software engineering

  • Web engineering

  • Web services

In turn, let's look closer at these features.

Component integration at various levels

At macro- and micro-levels, component integration can be accomplished through contracts between clients and servers at both these levels. Integration at various levels is important to designers who need to understand how each level is related to, associated with, or linked to another from an enterprise standpoint.

Examples of micro-component integration include such tools as SOAP (Simple Object Access Protocol) and HTTP (Hypertext Transport Protocol), used to transport Web services. An example of macro-component integration is the VeriSign Payment Services Payflow Pro commerce component integration that adds online payment to the IBM WebSphere Commerce Suite through the IBM WebSphere Payment Manager. This feature allows merchants to add new payment types and switch banking relationships without installing new software.

Enterprise Application Integration (EAI), Enterprise System Integration, e-commerce, and e-business are other examples of macro-component integration.

Component middleware

Another important part for building enterprise applications is component middleware. The middleware provides request brokers and passes internal messages among components about the next actions a component takes or responses it receives.

Examples of component middleware include entities of which you are probably already aware, such as:

  • Common Object Request Broker Architecture (CORBA)

  • Java 2, Enterprise Edition (J2EE)

  • Microsoft .NET

  • Sun ONE

  • IBM WebSphere MQ family (formerly MQseries)

  • IBM Component Broker Connector (CBConnector)

The CBConnector is part of the IBM Transaction Series product that supports distributed object application environment for integration with back-end databases and transactional systems. The CBConnector Bank User Guide is among the International Technical Support Organization's (ITSO) IBM CBConnector Cookbook Collection. (See Resources for more information on this.)

Building-block frameworks

Enterprise JavaBeans (EJB) and Microsoft .NET are both good examples of component-based frameworks. Each consists of components with specific relationships, including interfaces, and are built on a common architectural framework, such as Enterprise Component Framework (find more information in Resources). You can represent each of these frameworks as reusable mechanisms in both the design and deployment stages in a life cycle.

In addition to components, design patterns are associated with frameworks for use in the design and the documentations of frameworks. They can be used in any application that the framework uses to run in its own application domain (such as, the design results may nearly look the same regardless of the framework type).

Component-based software engineering

The field of component-based software engineering, or CBSE, is designed to address the concerns of component technology in software development. CBSE concerns itself with three main topics -- component specification, component implementation, and component deployment.

Component specification focuses on two function types -- interface functions and extrafunctional properties. Interface functions of a component are used to communicate with its environment through interfaces, say, within a framework, while extrafunctional properties define the overall behavior of a component, such as time properties (latency), reliability, and availability.

CBSE focuses on frameworks (and patterns), highlighting the important role they play in implementing and deploying components. CBSE is Web engineering's counterpart.

Web engineering

Web engineering is specifically targeted at the design, analysis, implementation, and deployment of large, complex Web-based systems.

Software engineering began in the age of "tightly coupled" IT systems and evolved over the years to cover systems defined as "loosely coupled" components of objects that call or wait to be called by others in a framework. Web engineering emerges as a special form of software engineering for building and implementing loosely coupled Web services or other types of Web-based systems.

These loosely coupled components are associated with various messaging services among component-based systems -- IT, Web-based, and Web services. An example of this type of messaging service is the IBM WebSphere MQ family.

Web services

Service directories are the most important feature of Web services. They allow information and services to be consumed by any device, regardless of place or time. Business users across the Internet can register, provide, discover, and consume services regardless of the technologies used to transmit information and services. They can externalize Web services with business processes standards, giving them a common view of how business transactions should be processed over the Internet.

Of course, these benefits don't just fit into the proper place with no effort. Let's look at some of the stumbling blocks to providing these component-integration benefits to the wireless world.


The pitfalls

Problems to providing these component-integration benefits to the wireless world include:

  • Firewalls

  • The high rate of project failures

  • Non-availability of desired components

  • Inadequate or missing risk analysis

Each of these problems adds risk to integrating components in both the micro- and macro-levels of enterprise systems.

Firewalls

The use of HTTP for transport of SOAP-based Web services and component-based systems can traverse firewalls in a heterogeneous environment. Other transport possibilities are Remote Method Invocation/Internet Inter-Orb Protocol (RMI/IIOP) for CORBA, Instant Messaging, and the IBM WebSphere MQ family.

The problem is that while firewalls provide secure wireless Web services and multicast, they can make user interaction and collaboration more difficult since users are spread across networks. This is also particularly true for users that need to access different component-based application domains.

Another problem with firewalls is that they can block certain tagged HTML elements needed for communication with such mechanisms as CORBA or DCOM.

The high rate of project failures

In spite of promises by component-based enterprise integration to reduce costs and save time by integrating similar functionalities into back-end Enterprise Resource Planning (ERP) systems, many projects failed. This also applies to integration efforts for Supply Chain Management (SCM) and Customer Relationship Management (CRM) systems as front-office functions to wirelessly manage customer data and automate supply chain.

An ERP system is "any software system designed to support and automate the business processes of medium and large businesses" (from SearchEBusiness, listed in Resources). Mary Sumner defines SCM as the "oversight of materials, information, and finances as they move in a process from supplier to manufacturer to wholesaler to retailer to consumer...involves coordinating and integrating these flows both within and among companies" (from her article listed in Resources). A CRM system is an enterprise-wide system "that allows companies to manage every aspect of their relationship with a customer" (from SearchEBusiness, listed in Resources).

Among the many reasons for project failures, Sumner lists risk factors in enterprise-wide projects in seven areas:

  • Organizational fit (failure to redesign business processes)

  • Skill mix

  • Management structure and strategy

  • Software systems design

  • User involvement and training

  • Technology planning

  • Project management (failure to recognize the risk of time and cost scope expansion)

Other reasons include poor training strategy, lack of or inadequate risk management program, and a non-existent project management office. The project management office allows the implementation of various processes in a three- to five-year plan, such as starting with life-cycle and cost management, and ending with risk and enterprise management.

Unavailable components

Reusing components and objects to build a service or system is always faster and costs much less; however, these components are often not available.

While public directories (such as UDDI) are used as a repository of Web services, this idea has not been extended to other parts of the world of component technology. While Web services are considered beyond computing, this technology has not yet reached full maturity point. This means components that could be mixed and matched for a Web service may not available for public discovery and consumption.

Inadequate or missing risk analysis

When risks to wireless component-based systems are not mitigated to more tolerable levels, risk analysis is inadequate. This means assets and their valuations, tangible and intangible, are improperly or inadequately identified.

This also holds true for vulnerabilities -- the weaknesses or defects in systems that could be exploited by hackers to attack the systems. In fact, not analyzing and managing risks related to vulnerabilities is even more important than properly identifying assets. It is more prohibitively expensive not to implement a cost-effective disaster recovery plan than to spend the time, money, and effort to put one in place.


Tying it together

No matter the evolving, emerging, or break-through promises that component technology brings, dormant problems will surface if not quickly and properly handled in a fast-changing networked wireless world. Problems such as:

  • Firewalls that block certain tagged HTML elements needed for communication with such mechanisms as CORBA or DCOM

  • Firewalls that can make user interaction and collaboration difficult when users are spread across networks

  • Nine specific risk factors at cause for failures in enterprise-wide projects, including getting the wrong organizational and skills mix

  • Necessary components that are unavailable

  • Inadequate or missing risk analysis

The challenge is to provide components in such a way that you can reuse and re-integrate them across frameworks, application domains, and enterprise systems over the Internet. In this way, components can offer such benefits as:

  • Allowing users to add new features and switch interaction relationships without installing new software

  • Easier enterprise-application crafting through component middleware that provides request brokers for horizontal infrastructure services and connector mechanisms

  • Frameworks that can be represented as reusable mechanisms in both the design and deployment stages in a life cycle

  • Component-based software engineering (CBSE) to address the concerns of component specification, implementation, and deployment

  • Web engineering, specifically targeted at the design, analysis, implementation, and deployment of large, complex Web-based systems

  • Service directories (a feature of Web services) that allow information and services to be consumed by any device, regardless of place or time

Whatever component technology you use for integration into systems, delivering projects on time and within budget while mitigating risks at more tolerable levels is important.


Resources

About the author

Judith M. Myerson is a systems architect and engineer and a freelance writer. Her areas of interest include middleware technologies, enterprise-wide systems, database technologies, application development, network management, distributed systems, component-based technologies, and project management. You can contact her at jmyerson@bellatlantic.net.

Comments (Undergoing maintenance)



Trademarks  |  My developerWorks terms and conditions

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Web development, Architecture
ArticleID=11754
ArticleTitle=Integrating components
publish-date=02012003
author1-email=jmyerson@bellatlantic.net
author1-email-cc=rhalden@us.ibm.com

My developerWorks community

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Rate a product. Write a review.

Special offers