Integration is one of the most difficult aspects of any enterprise software implementation. Many times
it is beneficial to think of integrations with external systems as their own projects, somewhat separate
from the main Siebel implementation. Siebel works in a very systematic and mostly predictable way. When
you introduce external systems, there is a great deal of variability. It is difficult to know ahead of
time what exactly will be involved in integrating external systems with Siebel, thus time scheduling is
usually very difficult.
Improved Solutions specializes in the integration of external systems with Siebel. We have 9 years of
experience integrating enterprise applications with Siebel. With nearly every release, Siebel provides
new pieces to their integration architecture. There are now a number of ways to integrate just about any
system with Siebel. Improved Solutions stays on top of all additions to the product in this area so that
we can advise you on what may be the best method for any given situation. Whether it involves something as
simple as launching a new browser window from a button click or something as complex as keeping a multi-million
record website database in sync with your Siebel data, we are confident that we can provide you with a top-notch
We break down Siebel integrations into two broad areas:
Packaged integrations are those that other companies have already implemented and are now sold as a separate
product or bundled with an existing product. For example, a company may have a legacy access middleware
product used for accessing mainframe data. Since it is often beneficial to make this data available through
the modern Siebel user interface, they may decide to integrate their product with Siebel. The integration
may take many forms. It may involve simply creating examples of how to use their existing APIs in the Siebel
architecture, or it may involve custom programming by the company to directly interact with Siebel.
In order to get the Siebel stamp of approval, the company must first become a Siebel Software Alliance Partner.
Once the integration is complete, the company will validate their integration through the Siebel Validation
Program. This program ensures that the integration is technically stable, providing peace of mind to
customers that they can count on the integration to perform as stated.
The company may then bundle this integration along with their base product. Customers who need legacy access
in their Siebel implementation will purchase the middleware product and follow the instructions and examples
in order to develop their particular integration between Siebel and the middleware product. Since there
is already a framework in place and the customer is buying a specialized product to access their legacy data,
the time needed for the integration is typically much less than if they were to create an integration from
Custom integrations are those that involve the creation of an integration that is (usually) completely new.
In many cases, there may not be 3rd party products available to assist with an integration. Or, in some cases,
depending on the scope of the integration, it may not be economically feasible to purchase an expensive
3rd party product. It may even happen that an integration is so complex that it requires the use of multiple
3rd party products, mixed together in an entirely unique manner. In these situations, a custom integration
must be designed and then implemented.
For example, a Siebel customer may have a website where people can enroll as members in various programs offered
by the customer. The customer may have a Siebel Call Center implementation to handle questions via e-mail and
telephone calls from these members. In order to effectively service these members, it is beneficial to see
the member information in Siebel that the members entered through the website. Due to the fact that a member
may register and contact the customer company in the same day, a real-time synchronization of the data in the
two systems (Siebel and the website) may be necessary. Even if a nightly batch process is sufficient, Siebel's
Enterprise Integration Manager (EIM) may not be appropriate if certain business rules must be
adhered to while data enters the Siebel database. The website may be a custom solution itself, or it may be a
packaged solution that has not previously been integrated with Siebel.
In this case, a custom integration is the only viable solution. This integration may be accomplished in many
ways due to the variety of options available in Siebel for integrating external systems. However, the website
may run in a very constrained architecture that dictates only a certain type of integration will work. For
instance, if the website is supported by a Java-based application server, then it would probably work best
to use a Java-based interface into Siebel. Of course, data may need to flow in both directions, and the
website may allow for a variety of ways to bring data into its database. It may be possible to update the
website database directly through SQL, or it may require (just as Siebel does) that all updates are done
through the application server's APIs.
As evidenced by this example, there is often more than one way to accomplish a custom integration. Many
variables must be considered, such as technical availability, business needs, scalability, maintainability,
time to completion and others. The more unique a custom integration is, the more difficult it is to forecast. The
best you can hope for is that the designers and implementers have enough experience in other disparate situations
that they can apply general knowledge to your situation in order to provide you with a well balanced and
well thought out solution. Beware of marketing hype and sales pitches. Such tactics may sell products and
acquire accounts, but they will provide you with little help when it comes to actually making an integration work.
It is beyond the scope of this page to examine, in detail, each mechanism available for integrating Siebel with
external systems. Siebel supports the following technologies that are often used for integration:
COM/ActiveX (inbound and outbound)
Java (primarily inbound)
CORBA (inbound and outbound)
XML (inbound and outbound)
EIM is Siebel's batch oriented, data loading and data export tool. Due to its lack of business rules processing,
and the fact that it is batch oriented, not real-time, we prefer using other mechanisms for integrating Siebel with
external systems. In some instances, however, where extreme performance is an issue, EIM may be the best choice
for putting data into or bringing data out of Siebel.
Virtual Business Components (VBCs)
To copy data or not to copy data, that is the question. We come across companies all the time that believe they
must copy data from an external system into Siebel in order to see that data in the Siebel UI. The fact is,
there have been supported methods to do this (that don't require copying the data) since Siebel 99. Siebel 99
allowed for the use of ActiveX controls, placed on Siebel applets at design time, that could then display any data
that Siebel VB programming could acquire from an external source. Although ActiveX controls are still supported,
Siebel 2000 introduced a new method that has become the preferred way to do this.
Virtual Business Components (VBCs) are specifically designed to allow you to display your external data in the native
Siebel UI elements, right alongside your true Siebel data. As long as you have some way to access your external data
via Siebel VB or Siebel eScript, and as long as you have some way of associating the external data with the Siebel
data, you do not have to import external data into your Siebel database.
Improved Solutions highly recommends that companies consider whether VBCs can be used before thinking about
other integration methods. It is even possible to import a small amount of data and use VBCs to view and/or
modify the rest of the data. The only time in which external data must be imported is if the external data and
the Siebel data must appear on the same applet. There are even ways around this limitation, but they are not
recommended by Siebel, so other methods should be attempted first. It may also be advantageous to import external data into
Siebel if a large amount of that data will regularly be processed by Siebel. Data retrieved from the Siebel database will
typically provide better performance in these situations.
Why do we recommend using VBCs instead of copying data into Siebel? Here are just a few reasons:
- The data will always be up-to-date, because it is being retrieved from the source on-the-fly, in real-time.
- The work needed to implement VBCs is far less than the work typically needed to program a different form of
integration. VBCs are also more easy to maintain later in the life of the implementation.
- Sometimes there is so much external data, that adding that much data to the Siebel database would introduce performance
problems for Siebel. Especially in the case where the Siebel database runs on limited hardware and the external database
is driven by high-performance hardware, you may actually achieve better overall performance by using VBCs rather than
having all the external data copied into the Siebel database.
- It is much easier to update external data through a VBC than through some other integration methods. Why? Because with
batch oriented integrations, there is no easy way to know exactly which data elements have been changed. Either you have to
compare all the Siebel data with the external data before the update to find which elements have been changed, or you
have to update even those elements that haven't been changed in Siebel. You also have to deal with the fact that the
external data may have been changed in Siebel and in the external system. If this can happen, and if you need to
make sure as many of the changes are propagated across systems as possible, you have to create an advanced time stamping
system at the field level. This can get complex quickly. With VBCs, the chances that the data will be changed in the
external system between the time a Siebel client user views and modifies the data are minimal. And if
that does happen, you can notify the user, load the new external data, and have them make their changes again. You may
even be able to lock the external record when the user views the external data so that the external system can't make
changes until the Siebel user is finished.
Please understand that the code behind the VBCs may still be very complex and may be very similar to the programming
required using other integration methods where data is copied into the Siebel database. VBCs are not going to magically
let you access your external data without programming. What they will do is typically lessen the total amount of
programming needed and reduce the work required, both by your development team and by the systems involved.
Please contact Improved Solutions if you have detailed integration questions.