Daison Jose

Monday, September 25, 2006

Customised Catalog Management System

The Catalog Management System allows companies to develop, manage and deliver dynamic product catalogs across all customer channels. These processes include support for defining and classifying products, creating sales bundles and configuration rules, delegated user administration, visibility rules, content staging, approvals, and publication. Using these processes, companies can maximize revenue through up-sell and cross-sell offers while ensuring product compatibility and purchase eligibility.
Click here to read the full article

Friday, September 22, 2006

Retail Service Offerings

This paper lists some of the Key Retail Service offerings that can help Retail Clients to increase productivity and customer satisfaction - helping to drive a better return on overall investment (ROI). The focus has given to IBM On Demand Workplace product suite and other integration services.

Click here to read the full article

PL-SQL Coding Standards

You can learn everything about a programming language -- its syntax, high-performance tips, and advanced features -- and still write programs that are virtually unreadable, hard to maintain, and devilishly difficult to debug -- even by you, the author. You can be very smart and very clever, and yet develop applications that obscure your talent and accomplishments.

In order to provide PL/SQL code that is easy to understand and maintain, it is necessary to follow coding guidelines and standards. It is easy to address the topic of effective code layout for PL/SQL because it is such a well structured language. Each control construct, such as IF and LOOP, has its own terminator keyword, such as END IF and END LOOP. Each logical block of code has an explicit beginning statement and an associated ending statement. This consistent and natural block style lends itself easily and naturally to standards for indentation and white space, which further expose the structure of the code.
Click here to read the full article

PL-SQL - Best Practices

The challenge for any developer/development organization is keeping track of the best practices and applying them.

As much as possible, take your best practices and implement them in reusable pieces of code, such as a generic error handling package. Rather than try to memorize all best practices or attempt to pressure your developers to follow them all, come up with a prioritized list of best practices. Identify which are the most important to follow for your project and how to follow them. Then create short, simple checklists that developers can post on or near their computers for easy and frequent reminders.

Keep the following rules in mind before you start with any database related project.

· Do a proper logical design: In practice this often means more tables with fewer rows per table. In turn, this means the capability for faster searching. The fewer rows that are stored and must be searched through, regardless of the search technique, the quicker you'll be able to find what you're looking for.

· Do a proper physical design: Separate the datafiles (tablespaces) into different disks to avoid I/O contention use striping.

· Redesign if necessary Sometimes the best way to correct the database without extensive tuning efforts is a re-analysis and redesign. Consider redesign when the initial design was hurried, or when multiple databases need to be integrated.

· Write Efficient Application Code: If some SQL code uses an inefficient search or sort routine, despite the best efforts of the Oracle optimizer, the application will run slowly.

· Rewrite code if necessary: If application code efficiency comes into question and resource and management permit , re-analyze and re-write the code

A checklist with specific SQL best-practices might help before writing SQL’s within PL/SQL blocks.
Click here to read the full article

Explain Plan Usage - In Details

SQL tuning is one of the most efficient ways to increase the query speed. Some say that as much as 80% of a performance problem is due to “bad” SQL execution. We are all heard about this from our colleagues “The query will never comes back”, “Toad Hangs” etc.

Query speed is a perpetual challenge for anyone using a SQL database. Many newer Oracle Users are unaware of the issues involved with designing a good query and those who have been at the game for some time want to make sure they are not needlessly burdening the database server. If you use Oracle, Explain Plan is a great way to tune your queries.

This document highlights some of the techniques used to tune those SQL statements especially around the usage of Explain Plan.
Click here to read the full article

101 Oracle SQL Tuning Tips

101
Oracle SQL Tuning Tips


Compiled by Daison Jose
(daisonjose@gmail.com)


The first thing you need to know is the data. The volume of data and the distribution of data will affect how you tune individual queries. You also need to have a “shopping cart" full of tuning methods to try. Multiple approaches must be made to cover all types of queries. A single method of tuning or a single tuning product is not enough. You also need to know where the system is slow. Many DBAs and developers spend endless hours finding problem queries instead of asking the users of the system. Users will almost always be happy to volunteer this information. You also need to network with other developers that work on a similar system. Sharing information at user groups is a great way to network.
Click here to read the full article

Flat File Filtering Framework (4-F)

Introduction

The purpose of any data movement or data transfer project is to consolidate / aggregate data from various external sources and making it available in a form that can be consumed by various other applications. Given the number of external sources and the volume of data itself, the data that comes in does not render itself to be readily used. There are a lot of data transformations, formatting, filtering that needs to be done, before the data is in a position to be brought into the main data base where the aggregated data gets stored.

Given the fact that data needs to be cleaned before it lands into the database, there are multiple places wherein the cleaning can be done. One is at the file level and the other being within the DB. Based on past experiences, involving the loading of large volumes of data into any Data Warehouses, it has been observed that pre-cleaning of the data files gives faster results rather than loading the entire data into the DB and then trying to attempt a post data load cleanup operation.

This document details the design of a framework that can be used to perform data transformations, formatting and filtering of the data within files. The framework is simple to use, highly reusable and provides the capability to add, modify and delete rules without any code changes.

Scope

This document presents the design of a framework, which can be used for building various data formatting and transformation processes within a file. The document clearly underlines the various features of the framework and the methodology for creating and integrating new formatting and filtering processes into the framework so that it can readily utilize all the other features of the underlying framework.

Features

The main features of the framework include:

· File Data transformations

This includes content/data transformation of the file. The typical transformation will involve string manipulation based on pattern matching. The matched pattern is replaced by the desired pattern specified by the application programmer.

· File Data Filtering

This includes content/data filtering on the file. The typical filtering will involve rejection of records based on predefined criteria. The rejected record is written to a separate file.

· RegEx based Rules specification

The rules for the framework are specified using regular expression based notations. Regular expressions provide a powerful way to perform pattern matching and string manipulation. RexEx will also be used for filtering of the records.

· Configurable Rules List

Easy to plug in new data transformation and filtering rules. This can be done with minimal changes in the code, if required.

· Logging

This will include the summary logging of the transformation and filtering. The log will give information on the number of records affected for a given rule.

· Back Up

The framework will generate the transformed file as a new file. The original file will not be changed. This enables a backup of the original flat file.

Detailed Design

All validations required for the transformation process will be done on the server side. The approach involves making the validation rules to make flexible enough so that they can be added or removed without any code change.

Framework Architecture


The 4-F architecture is simple and lightweight yet powerful enough to provide the maximum flexibility. The illustration of the architecture is represented in the diagram shown below.



The architecture provides for the reuse of some of the typical functional components that would be required in the design and implementation of any flat file formatting process, thus greatly reducing the time and cost involved in implementing the same design over and over again for each flat file formatting process.

The framework-based design supports a very smooth way to plug and play transformation and filtering rules into the framework.

The core components of the 4-F includes:
· File processor
· Rules Engine
· Logger
· Flat (Data) file
· Rules list




Flat file

Contains the data in text format

File processor

Reads the flat file from an input directory and writes it to the output directory after it finishes processing.
Rules Engine

Uses the Rules to validate the data contained in the flat file. It’s a RegEx based rules engine.
File Logger

Logs the operations and the impact on the flat file into a log file.
Rule

The pluggable entity to the framework defining the criteria to filter the record.

Flat file

The flat file will be the input to the framework. The file will be having a predefined filed and record delimiter. There is no limitation for the delimiter. It can be any delimiter. If there is any change in either the file delimiter or the record delimiter it will require a change in the configuration file to accommodate the change.

File Processor

The file processor is the heart of the framework. It will process the input flat file and perform the transformations and filtering based upon the logic provided by the rules engine. It will then write the output file to a location that can be specified by the application user. The records rejected by the framework will be written to a separate file.

Rules Engine

The rules engine is responsible to generate the logic required for file transformation. The logic is build based on the rules specified in the rules file. The rules engine is based Regular Expressions, which are considered powerful for the pattern matching.

Logger

The logger performs the operation for storing the summary of the transformation and filtering that occurs on the input flat file. The log will write the summary to the log file in text format and will indicate the number of records affected for a given rule. It will also log the time consumed for the entire operation along with the start time and stop time for the transformation process.

Rule

The rules are the Regular Expression for pattern matching and transformation. The rules file will also contain the column number for the field where the rule is to be applied. The rules file will be a tab delimited text file.

Flow Analysis

The process will have the following steps performed:

· Read the configuartion file
· Read the input file
· Read the rules file
· Apply transformation/ filtering
· Write to the output file
· Write to the log file


The configuration file will be having the following parameters:

· Flat file name(Input)
· Rules file name
· Filed delimiter
· Record delimiter
· Output file name
· Location of Log files
· Location of the directory where it needs to operate


The process picks up the flat file from the specified location and the corresponding rules file from a given location and start processing. The process generates an intermediate perl script dynamically which will perform the required operation on the file. The process then automatically deletes the dynamically generated perl script from the file system. The intermediate perl script will have a timestamp (microseconds precision) suffixed to it so as to prevent overwritting in case of multiple invocations of the application.


The process operates on the flat file using the regular expressions specified in the rules file and apply them on record by record. It searches for the pattern specified by the RegEx in the rules file and substitute the same with the required pattern specified in the same regular expression. The process then writes the file to the Output file into directory path specified. The log file containing the summary of the filter operation will be written to the location specified in the configuration file.

The records which doesn’t match the pattern specified will remain unaffected.

The process then moves the cleaned files from the directory where the file is under operation to the desired directory to be used by the downstream process. The process then moves the remaining files from directory containing the input files (which were not subjected to transformation) to the location to be used by the downstream process.

Note: All the file names will be prepended by their absolute path in the configuration file.

Filtering/Transformation Process invoked manually via a script

The framework enables the usage of shell script to be used for the invocation of an associated filtering/ transformation process.

The shell script will invoke a Perl wrapper application. The wrapper in turn will leverage the capability of 4-F to perform the filtering/transformation.


A typical example of the same is shown below:





The above diagram is an illustration of a 4-F associated process called Preprocessor. It is registered with a scheduler using the shell script (Preprocessor.sh). Preprocessor is having a set of configuration files with it. The Preprocessenv.sh file is sourced into Preprocessor.sh and sets the paths related to the environment globally after Preprocessor.sh is invoked. This file will not require a change for the any number of transformation/ formatting processes running in the environment. Preprocess.prl is the Perl wrapper that will pick up the values from the configuration file as pass them to the 4-F.prl (the main application).


Preprocessor.prl leverages the power and capability of 4-F framework in order to operate on the flat files. preprocessor configuration file will be having the parameters required by 4-F for the transformation of the data file.

The parameters required are:
· Input file name – The name of the flat file that needs to be operated. The config file will not contain the timestamp of the file with it. The Preprocessor will pick the name of the file and will pick up all the files matching the file name for processing.
· Rule file name – The name of the file containing a set of rules in form of Regular expressions that will operate on the flat file specified against the given flat file.
· Field delimiter – The character that separates the two fields in the same record
· Record delimiter – The character that separates two records in the same file
· Output File name – The file to which the transformed data is to be written
· Log file directory – The location to which the summary log needs to be written


A sample of the values in the configuration file is as shown below.




Enabling Multiple Instances of a process

The framework takes care of the multi-instance requirement of the processes. This is enabled by using the dynamically generated intermediate perl script name suffixed with microseconds to prevent overwriting of the file.

Logging

The log file will contain the summary of the operation indicating the number of records affected by each rule. The error and exception conditions are logged in the system capturing the details like date and time, reason for exception. The log file can be analyzed by the system administrator for fixing up the problems.


The sample log file can be represented as shown below:


SUMMARY: ***********************************************

Transformation Program started: Mon Sep 30 18:41:41 2002
Total number of records affected due to Rule XXX: 186
Total number of records affected due to Rule YYY: 200
Total number of records affected due to Rule ZZZ: 105
Transformation Program Ended: Mon Sep 30 18:41:45 2002
Total Time taken: 4 Seconds.

END SUMMARY: ***********************************************

Error File Generation

The records that will be rejected as a part of the filtering done by the framework will be written to a separate file. The error file can later be monitored by system administrator for the monitoring purpose.

The error file will be having the same format as the original data file with the same field and record delimiters.

Benefits of the Design

· Very lightweight, simple to use yet powerful
· Highly Reusable framework, helps to avoid the re-design and development of data transformation code for all file level data manipulations
· Easy inclusion of new data transformation and filtering rules
· Capability to specify different record and field delimiters
· Parallel invocation while maintaining the data integrity
Adding a new process to the Framework

The 4-F framework enables plugging in a new process with a minimal effort. This includes creation of following items:

· Shell scripts
· Registering a new Process

Shell Scripts

These are the scripts to be written for plugging new process into the framework. The shell script can be invoked as per the requirement. The shell script will invoke a wrapper application written in perl which will in turn interact with the 4-F framework to perform the transformation.

The details can be viewed in example implementation shown in section 4.2

Registering a new Process with the Framework

To register the new process in the framework, it is required to provide a wrapper perl script along with the configuration file with the parameters specified in the section 4.2 and 4.2.1 Flow Analysis.
The example implementation can be analyzed in section 4.2 for how to register a new process.

Manual Operations

The process can be invoked manually by invoking the shell script that is registered as a job with the scheduler.

Acronyms and Glossary
4-F - Flat File Formatting Framework
Rule -A set of Regular Expressions used by 4-F.
Shell Scripts -Scripts meant for execution in Unix environment K-shell.
RegEx - Regular Expressions used for pattern matching

Thanks to Sanjay Agara and Sanjay Vashist for the Technical Inputs and Implementation help.

Search Engine Optimization(SEO)


Search Engine Optimization

Search engine optimization (SEO) means ensuring that your web pages are accessible to search engines and focused in ways that help improve the chances they will be found. Before getting to know more about SEO, Its better to know how search engine works and ranks web pages.

How Search Engine Works?

The term "search engine" is often used generically to describe both crawler-based search engines and human-powered directories. These two types of search engines gather their listings in radically different ways.

Crawler-Based Search Engines

Crawler-based search engines, such as Google, create their listings automatically. They "crawl" or "spider" the web, then people search through what they have found.

If you change your web pages, crawler-based search engines eventually find these changes, and that can affect how you are listed. Page titles, body copy and other elements all play a role.
Human-Powered Directories.

A human-powered directory, such as the Open Directory, depends on humans for its listings. You submit a short description to the directory for your entire site, or editors write one for sites they review. A search looks for matches only in the descriptions submitted.

Changing your web pages has no effect on your listing. Things that are useful for improving a listing with a search engine have nothing to do with improving a listing in a directory. The only exception is that a good site, with good content, might be more likely to get reviewed for free than a poor site.

"Hybrid Search Engines" Or Mixed Results

In the web's early days, it used to be that a search engine either presented crawler-based results or human-powered listings. Today, it extremely common for both types of results to be presented. Usually, a hybrid search engine will favor one type of listings over another. For example, MSN Search is more likely to present human-powered listings from LookSmart. However, it does also present crawler-based results (as provided by Inktomi), especially for more obscure queries.

The next section will describe in detail about ranking of web pages.

How Search Engine Rank Web Pages?

Search for anything using your favorite crawler-based search engine. Nearly instantly, the search engine will sort through the millions of pages it knows about and present you with ones that match your topic. The matches will even be ranked, so that the most relevant ones come first.

Of course, the search engines don't always get it right. Non-relevant pages make it through, and sometimes it may take a little more digging to find what you are looking for. But, by and large, search engines do an amazing job.

So, how do crawler-based search engines go about determining relevancy, when confronted with hundreds of millions of web pages to sort through? They follow a set of rules, known as an algorithm. Exactly how a particular search engine's algorithm works is a closely-kept trade secret. However, all major search engines follow the general rules below.

Location and Frequency Method

Pages with the search terms appearing in the HTML title tag are often assumed to be more relevant than others to the topic.

Search engines will also check to see if the search keywords appear near the top of a web page, such as in the headline or in the first few paragraphs of text. They assume that any page relevant to the topic will mention those words right from the beginning.
Frequency is the other major factor in how search engines determine relevancy. A search engine will analyze how often keywords appear in relation to other words in a web page. Those with a higher frequency are often deemed more relevant than other web pages.
Page Indexing

To begin with, some search engines index more web pages than others. Some search engines also index web pages more often than others. The result is that no search engine has the exact same collection of web pages to search through. That naturally produces differences, when comparing their results.

Search engines may also penalize pages or exclude them from the index, if they detect search engine "spamming." An example is when a word is repeated hundreds of times on a page, to increase the frequency and propel the page higher in the listings. Search engines watch for common spamming methods in a variety of ways, including following up on complaints from their users.

Off the Page Factors

Off the page factors are those that a webmasters cannot easily influence. Chief among these is link analysis. By analyzing how pages link to each other, a search engine can both determine what a page is about and whether that page is deemed to be "important" and thus deserving of a ranking boost. In addition, sophisticated techniques are used to screen out attempts by webmasters to build "artificial" links designed to boost their rankings.

Another off the page factor is clickthrough measurement. In short, this means that a search engine may watch what results someone selects for a particular search, and then eventually drop high-ranking pages that aren't attracting clicks, while promoting lower-ranking pages that do pull in visitors. As with link analysis, systems are used to compensate for artificial links generated by eager webmasters.

Now we know how search engine works and rank the page, you might be interested to know how we can make the website to get hit by a search engine. There are techniques/tips available and it is called Search Engine Optimization (SEO).

Basics of Search Engine Optimisation

If you’re looking for a quick and easy way to get great results. There isn’t one. Instead, expect to do some hard work, especially when it comes to the content of your site.
You will also need patience. Results do not come overnight. If you’re working on improving the search engine positioning of a client’s site, you should probably explain this to them early on.
The different Search Engine Optimization techniques can be summarized as below:
Write Good Content

Good content brings return visitors. Return visitors who like your content will eventually link to your site, and having lots of inbound links is great for search engine rankings, especially if those links are from highly ranked sites.

Closely related to good content is fresh content. By adding new content regularly, you give visitors a reason to come back. Search engine robots will also visit your site more often once they notice that you update regularly, which means that any new content you add will be indexed quicker.

If words with multiple spellings or commonly misspelled words are an important part of your content, i.e. keywords, consider adding a glossary or similar to include the most common spelling variations on the page.

By making your page titles simple, yet descriptive and relevant, you make it easier for search engines to know what each page is about, and people scanning through search results can quickly determine whether your document contains what they are looking for.
Use Real Headings

Use the h1 - h6 elements for headings

Avoid dynamically generated URLs that use a query string to let the server know which data to fetch from a database. Search engine robots may have difficulties with this kind of URL – they may stop at the question mark and not even look at the query string.

Use search engine friendly, human readable URLs instead. This will help both your ranking and your users and give incredible improvements in search engine results from just changing the URL scheme of a site.

Modifying and rewriting a site’s URLs can be a little tricky, and some CM systems make it more difficult than others to implement. It is worth the effort though.

Most web browsers have advanced functionality to decipher the tag soup mess that is used instead of HTML on most current sites. You can’t rely on search engine robots to do that to the same extent. Validate your HTML and avoid presentational markup – use as lean and clean markup as possible. By increasing your content-to-markup ratio, you make your site faster and more attractive to search engines.

This means that you should use real headings, paragraphs, and lists, and avoid using anything that may interfere with search engine spiders.

Flash and JavaScript are fine, as long as they aren’t required to navigate your site and to access vital information. Don’t hide your content inside Flash files or behind funky JavaScript navigation. Browse your site in Lynx, and with graphics, CSS, JavaScript, and Flash off. If that gives you problems, it is likely to cause problems for search engine spiders.

Often slightly overrated, submitting a site to directories and search engines can be useful, especially if the site is new and hasn’t already been picked up by Google and others. Go ahead and submit it to Google. It won’t hurt, but most likely Google will find you anyway.

Don’t use cloaking, link farms, keyword stuffing, alt text spamming or other dubious methods. They may work for a short while if you’re lucky, but you risk being penalised or even banned from search engines, which you do not want.
Search engines want their results to be accurate, and they don’t like it when people try to trick them.

While it is possible to provide workarounds that allow search engine robots to crawl frame based sites, frames will still cause problems for the people who find your site through search engines.
When somebody follows the link from a search result listing to a frame based site, they will land on an orphaned document, outside of its parent frameset. This is very likely to cause confusion, since in many cases vital parts of the site, like navigational links, will be absent.
Some sites use JavaScript or server side scripting to redirect anyone trying to load a document outside of its parent frameset to the site’s home page. This is a very user hostile thing to do, and it definitely does not help the people visiting your site. Just lose the frames. They are bad for usability anyway.

If you need to use some kind of browser detection, make sure that it doesn’t break when a search engine spider (or any unknown user agent) comes along. If the spiders can’t get in, you won’t be found. This normally happen on the sites of fairly large companies.

Most search engines don’t place any great deal of value on the contents of meta tags anymore. They have been used way too much by spammers. One suggestion is using the meta description element, but that’s all. Keywords won’t hurt, but they will rarely help either, so they are generally not worth the effort.

Some search engines use the contents of the meta description element to describe your site in their search result listings, so if possible, make its contents unique and descriptive for every document.

The ultra-short guide to SEO: add quality content regularly and make sure your site is well-built.

Gift Registry


What is Gift Registry?

A gift registry is a list of items you would like to receive as gifts for any special occasions.

The History of Gift RegistryGift Registry was first implemented by Department Stores reaching out to engaged couples. They initially utilized labor intensive paper based systems and catered exclusively to weddings. At first, the only products typically registered for were fine china, crystal stemware and sometimes silverware. More often than not, these products were not stocked in quantity by the Department Stores and registries enabled them to special order in pre-sold known quantities. Initially Gift Registry concept started with Bridal Registry and Baby Registry for wedding and baby showers, so the guests can give gifts what they need.Gift Registry TodayGift Registry is estimated to be more than a 37 Billion-dollar industry, up over 25% in the last 5 years. It is estimated to double by 2005 according to a survey. The same survey reported that a whopping 99% of engaged women register and of those 93% expect that the majority of their guests will make purchases from their registry.

For many retailers, implementation of a Gift Registry is considered to be a vital strategic necessity in today's ever more demanding competitive environment. In recent years Gift Registry has grown to encompass a very wide variety of retail segments including:
- Department Stores
- Mass-Merchants
- Home-improvement Centers
- Specialty Retailers including - but not limited to: Kitchen, Bed, Bath, Furniture, Baby,
Toys, Sporting Goods, Music stores and many other retailers.

With 2.4 million couples getting married each year the opportunity is enormous. But Gift Registry has evolved beyond weddings, significantly expanding the market opportunity.
Today's contemporary Gift Registry supports multiple events including:
- Weddings
- Commitment Ceremonies
- Anniversaries
- Housewarmings
- Birthdays
- New Babies
- "Wish Lists" for Individuals and Charitable organizations
Gift registry services

Gift registry service was initially started at the department stores. A kiosk machine set up in the store will guide the customer to set up the gift registry. Now the concept has extended to online. Some of you might have already noticed while browsing through the catalog, a link called ‘Add to Gift Registry’ through which you can add your gifts to the registry. Most of the retail stores had set up their Gift registry online. Some e-commerce software applications come with a built-in gift registry function. Blue Martini is a case in point; the company's e-commerce application, which is geared for retailers with annual revenue of at least $200 million, starts at about $500,000.

How does it work?

You are planning for a baby shower or wedding or any other events. You already prepared a list of guests which you need to invite for the party. Invited some of your guests and they might have asked you, ‘Where you had set up your Gift Registry’? Or we would like to see your gift Registry.

This means that guests want to know, what gifts you are expecting from them. So this is the right time to set up a registry for your event. Gift Registry assists brides, grooms, new moms and their friends and family in registering or purchasing gifts, either on the Web or in a store at a self-service kiosk

Most of you might have noticed a kiosk machine at the entrance of each store with a label ‘Gift Registry’. In this user interface application you can register your profile details, event date and other information. Once you register it will take you to a screen where in which you can look up for a particular item and add to your gift list. This item look up may not available in every store. Some store will give you a bar code scanner once you are registered. Using the bar code scanner, you can look up for your favorite gifts in the store and scan the item which you want to add to the gift list.

Online Gift Registry

Online gift registry is having the same concept of wish list. User can create a gift registry by giving there user details, event details, shipping address etc. Once you register it will take you to the product catalog and you can add your items to your gift registry.

How do you communicate your gift list to the guests?

Online registries and wish lists enable consumers to tell friends and family what items they want for their birthdays or holidays as well as for occasions such as weddings and births. In addition to creating lists indicating which products they'd like, registrants can e-mail their lists to all and sundry. At the same time, gift-givers can use online registries to create address and distribution lists so that they can send gifts to groups of people with just a few mouse clicks.

If people pester you about what you want for your birthday, shop online and then tell your relatives to check out your wish list.

How the guests will purchase a gift item?

Guests can go to the kiosk and enter Gift Registry owner’s first name or last name and it will display the gift registry they have created. They will take a print out of the registry to know more about the details of the item they have mentioned in the registry. This will also indicate a status against each item whether it is already purchased by another guest or not. Once the guests purchased the item, they have to show the print out to the cashier at the checkout, so that they can update the gift registry status as purchased.

Your friends give your name on the site, and then have access to the list of products you've selected. A gift registry is another method of getting your customers to get their friends to come to your site.

Can one register at kiosk and purchase it online?

Yes. Most of the retailers integrated there online gift registry with kiosk gift registry at the store. You can register online and go to the store to purchase or add items to the gift registry or the other way. In Wal-Mart once you register online they will give you a PIN number which you can use it at the store to pull up the gift registry.

Integrating the offline and online databases behind the registry is critical. If customer deletes an item from your Website, you need to make sure that the product is deleted not only from the site registry but also from your in-store registry or any other databases you may have. Otherwise you will find conflicting records and dissatisfied customers.

Similarly, the inventory of items available through the online registry should match that of what's available offline. Forcing shoppers to work with just a portion of the products available offline will discourage their use of the online registry.

Gift registry limitations

If you want to set up a gift registry for your housewarming, you may not get all the items in one store. This will end up in creating one gift registry in each store to get Kitchen, Bed, Bath, Furniture items etc.

In order to avoid this, there are general gift registry in which you can look for any items from any specialty store. These types of kiosks can found in most of the malls and also online (http://www.felicite.com/). This business concept is getting attention to most of the retailers.
Gift Registry Features

Gift Registry gives retail customers complete enterprise access. Whether in the store or at home or using a mall kiosk, finding and buying the perfect gift has never been more effortless or convenient. Regardless of where the purchase is made, Gift Registry is updated instantly.

Registry search by names of Bride, Groom, or parents of Bride / Groom, or Father / Mother.
Order interface to existing web sales systems, or existing order fulfillment systems.
Same application for Web or in-store kiosk use.
In-store print / scan of gift registry items for automatic gift registry update of sold items.
Options for item shipment to registry address or buyers’ address.
Options for Gift Wrap service.
The system is accessible 24 hours a day, seven days a week.
Retailers can use their existing communications infrastructure to keep all information updated and consistent.
Customers can have the same shopping experience whether at home or in the store.
Gift buyers can enjoy the convenience of having their selection wrapped and delivered to the recipient without leaving home or office.
Retailers can offer loyal shoppers added incentives for using gift registry.
Retailers can build long-term customer relationships. Generates incremental sales as unrelated purchases are made when gift buyers shop. Gift Registry facilitates database driven personalized marketing campaigns.
For Retailers, Gift Registry drives revenue, brings in new customers, and minimizes returns.
Secured Gift Registry

You also need to protect registrants' data. Some online registries allow gift buyers to view only a registrant's name and the date of the event for which he is requesting the products. That way, would-be thieves can't head to a bride's home while the wedding is under way, for instance.

Bill Me Later

What is Bill Me Later?

Bill Me Later is a payment method that allows customer to make purchases using an instant line of credit.

Bill Me Later Concepts

Bill Me Later enables merchants to let customers defer payment for products by essentially using an alternative form of payment besides credit cards, the predominant method of payment online. Like PayPal, the Web's leading alternative payment method, transactions completed using "Bill Me Later" are handled by I4 Commerce, which authorizes purchases nearly immediately. The company settles with the seller within days and then bills the customer. Typically, consumers can pay in full within 30 days, or choose to make a minimum payment and finance the rest of the transaction.

How does it work?

Online shoppers will see the "Bill Me Later" option at checkout, along with the option of using a major credit card. After entering their billing address during the checkout process, shoppers click on the "bill me later" button. Instead of asking for a credit card number, the service asks consumers to enter their date of birth and the last four digits of their Social Security number. With Bill Me Later, you will have to set up an account with the company that operates Bill Me Later. You will be notified in real time during the registration process whether your account is approved.

Retailers using Bill Me Later hand off the transaction to I4 Commerce, which authorizes each one in about three seconds, according to the company. It settles with the merchant in two days, and then bills the customer. The consumer can pay in full within 30 days or choose to make a minimum payment and finance the rest of the transaction.

I4 Commerce makes money from finance charges and by charging merchants a transaction fee that's less than what credit card issuers charge them.

Business Benefits

While the preferred method for online shopping is still credit cards, "Bill Me Later" provides merchants with a viable alternative for those consumers who don't have a credit card or don't want to use it because of security fears.

According to a recent Jupiter survey, 73 percent of consumers chose to use credit cards, followed by 27 percent who chose a debit card, 23 percent who liked PayPal, and 16 percent that preferred the "Bill Me Later" option.

Merchants benefit from the possibility of easier sales. According to the company's press materials, Hotels.com found that the average transaction by "Bill Me Now" users was 10 percent higher than that of credit card users, while it had a 35 percent incremental increase in sales, thanks purely to those who had credit cards but chose to use "Bill Me Now."

One way I4 Commerce limits its risk of fraud is by carefully selecting online merchants that have mature operations with excellent fraud controls in place.

Alternative payments are also being pushed as a way to boost sales. New research suggests that accepting multiple payment types can help in converting visitors to buyers. And financing available through non-credit card methods provides similar pay-as-you-go features without comparable interest rates.

Existing alternate payment players are also seeking to extend their offerings to better compete with credit cards and to provide new features, while benefiting merchants through more flexible forms of payment. PayPal, for instance, recently unveiled Buyer Credit on eBay, enabling sellers to offer promotional financing within their listings, which can potentially make higher-priced items more attractive to shoppers.

The product has the ability to attract customers who might be looking online but might be reluctant to buy online because of fear of using their credit card, or who impulsively saw something but didn't have their credit card at the time, or who didn't want to type in a 16-digit card number.

Retailers looking to improve their online sales should consider new consumer payment options like Bill Me Later to appeal to new shoppers, increase conversion rates, and differentiate shoppers' experiences.

There are more and more online retailers are integrating this new payment method. Few of them are hotels.com, flowers.com, MyMusic.com, Home Depot, Tiger Direct, Overstock.com and Nike.

Customer benefits

Did you know that one in five Americans do not carry a credit card and one in ten don't have a checking account?

It makes it difficult for those people to buy items online. So Internet merchants are coming up with all kinds of ways around that dilemma.

This is a great option because it gives customers flexibility. Customers can choose the way they want to pay during checkout.

I4 figures its service will be attractive to both consumers and merchants, Consumers will be able to purchase goods online without having to use a credit card, which should appeal to those who don't have credit cards or who are reluctant to use them online. Meanwhile, I4 charges merchants a lower transaction fee for its "bill me later" service than most credit card companies charge, he said.


Is it Secure?
Still, it's unclear whether consumers will be willing to adopt a "Bill Me Later" solution en masse.
When it comes to online privacy, merchants and banks point to the high security of online transactions, while privacy advocates focus on the high-profile occasions when hackers access databases.

Customers believe that using merely the last four digits of a Social Security Number in an online transaction can be problematic. That's because a partial SSN is typically provided along with other personal information, which could be aggregated to enable hackers to access personal records.

While it's not clear whether using a truncated social security number is safe, nor how many digits offer a security risk, the fact that a partial SSN is typically provided along with other personal information that could be aggregated to access personal records makes the practice of using the last four digits problematic

Integration of Bill Me Later

To process Bill Me Later transactions, you use the CyberSource Credit Card Services, which are part of Cybesource Internet Commerce SuiteSM (ICS) of services. They have designed their implementation process in such a way that processing a Bill Me Later transaction is very similar to processing a credit card, even though no credit card is involved.


To use Bill Me Later, Retailer must first sign a contract with i4Commerce®. As part of establishing that relationship, you determine who will underwrite your Bill Me Later transactions. This will be either:

• First Data Merchant Services (FDMS), or
• Paymentech

CyberSource has implemented the Bill Me Later payment method by using the existing ICS Credit Card Services. When you want to request a Bill Me Later authorization, you send a request for credit card authorization. Instead of sending a credit card number, you send the customer’s Bill Me Later account number. You must also supply additional information specific to the Bill Me Later transaction.

When you are ready to bill the customer, you send a request for a credit card capture.
Later, if you need to credit a customer who paid using Bill Me Later, you send a request for a credit card credit.

Here are the things you should do to begin your Bill Me Later implementation:

• Contact CyberSource Customer Support to set up a test account. When you are ready to go live, contact Customer Support to switch your account to a live account.
• Decide if you will use name-value pairs or XML. Both types of interfaces are available with CyberSource’s Simple Order API. If you have experience with Web Services and are interested in using SOAP, contact CyberSource Customer Support. Depending on which platform you use, you may be able to use our SOAP interface.
• Choose one of the available clients for the Simple Order API. See the CyberSource Support Center for the client download packages and corresponding client documentation.
A typical implementation takes four to six weeks. After you launch, Bill Me Later will simply be another payment type broken out in your standard reports. Exception processes like returns and credits are handled just like they are for credit cards.

References
www.bill-me-later.com

Tuesday, April 12, 2005

Content Engineering - A Life Cycle Management Approach

Executive Summary


The real information in a website or an online market lies in its content. More informational, useful and interesting content is, the website will be more successful. More people will want to visit the site frequently. It is particularly true if a website is constantly adding content on a regular basis - be it articles, tutorials, news and opinion or retail information.


Content is what we communicate, and effective communication is about as fundamental a business requirement as one can get. Though there are millions of products available to buy on the web only the odd surfer or customer, who really needs the product or information, goes online to specifically look for that. So if the site simply sells the product and does nothing else to make the product or the information easily available or searchable by the surfer or customer then it is least likely that the web site will be successful. The dynamic nature of the content when effectively managed will be the most powerful engine that drives the success of a web site.

This paper discusses a structured approach to manage the life cycle of content from Content Analysis to the final delivery stage along with the importance of Content. It also explains the challenges involved in Content Aggregation and highlights the key factors which need to be considered while building an effective Content Aggregation System to power the web site’s sales, marketing and business strategy.


Introduction


Content creation and management is currently undergoing very profound changes. In brief, what's happening is a very fundamental step towards the separation of form from content, towards structuring data in a way that it can be reused in a variety of ways.


The surprising thing in this movement is that, unlike most digital trends in recent years, it is driven by the high end of the market: while page layout, image processing and HTML-based Web publishing are handled by shrink-wrapped tools, content creation and management is very clearly in the realm of high-end systems. Costing anywhere between hundreds of thousand to millions of dollars, we are talking here about tightly integrated custom-made client server applications that require heavy-duty databases and lots of specific programming. We are definitely not in the realm of end-user tools.


There is not much doubt, however, that this is where the next big market opportunity lies. In a funny way, we are back to where publishing was before DTP came around: content creation and management is once again the playground of larger players, and requires heavy investment.


With that in mind it is a good practice to have a clear understanding about Good Content, Content Life Cycle and the right implementation of the same. This paper focuses more on how the content is getting moved from different cycles till it reaches the end user.


Current Trend


The rapidly maturing market of on-line content has spearheaded this evolution, but that’s not where it stops. Increasingly, magazine and newspaper publishers are getting involved in this movement and, with the emergence of e-books, book publishers are beginning to be concerned by it, too.


According to one of the surveys, the contribution of the Content production activities increased from around $3.5 billion in 1996-97 to $3.9 billion in 2001-02, with a higher peak observed in 1999-00. Despite the contraction in later years, the average annual growth rate for industries in this component was recorded at 6.3 per cent over the period.


What is Content?


Content can be defined in number of ways. One way is to define that Content is all forms of information, and without limitation includes: text, formatted text such as HTML pages, interactive and/or dynamic Web pages (such as those generated from data files and databases), images, and animation, video and sound files. It may also include software, Web-based output from software applications and Web-based input (ie. transactions).

Content is more than information on a Web page. The way it is getting delivered, organized, and shown together form content. Imagine content as the fundamental block which holds the Web page together; build from different sources and make it easy to understand.


Content and E-business evolution


Content may be the once and future king, but it hasn’t always been recognized as such. Just as row-and-column database systems defined the nature of business automation in the ‘70s and ‘80s, it can be said that the automation of the creation, storage and delivery of a more random mix of data types has only penetrated business asset management activities over the past decade or less.


On the Internet content is king and always will be. This is because the Internet is the information superhighway and most people use it for information of some sort.


Content in the context of internet represents something of value on a web site. Content can be free information or links to other resources (may not be of competitors). Content of this nature generally will cost nothing to build. For example a product frequently asked questions (FAQ) page (furniture site), free maps (tourist site) or updated weather forecasts (travel site). The above free content information on any site may bring more customers.


With the evolution of E-Business, the perspective of looking at content also shifted. Content essentially breathes life into a website. The importance of good content can be effectively summarized by the following three points:


1. It increases conversion rates by keeping prospects on the site.

When prospective customers arrive at the site, they like to ‘dig deep’. They look for all the information they can find before they feel confident enough to commit to that purchase. Whether the site sells electronics, banking, subscriptions, or accessories, people want to know what they are buying.
If the site does not give them all the information they need, they will find someone else who does. Perhaps they will try epinions.com, consumerguide.com or other sites. Or maybe they will just do a search on Google.
And that’s very bad news for the conversion rates on any web site.


2. It differentiates the web site from its competitors

Most businesses have a number of direct competitors and all too often there is very little to truly differentiate the products or services from theirs. The web site may have some marginal distinctions, new offers or price deals.
Content can be used to differentiate one’s website with their competitors and can make the site an absolute magnet for anyone. It has become different because it becomes known for being the number one site.


3. Content is great for search engines

Creating great content for the web site is still a very smart thing to do. It’s good for customers, good for conversion rates, perfect for search engines and does a great job of separating the site from its competition.
Successful creation and maintenance of a good content requires a good understanding of the content lifecycle. The following sections of this document discuss in detail the content lifecycle as applied in the context of E-Business.


Content Engineering


From its creation to publication, content goes through many stages of refinement. It is both important and rewarding to engineer the Content – the lifeline of any website - with lifecycle management approach


The different stages of content lifecycle are:

Content Analysis
Content Creation
Content Extract
Content Load
Content Transfer
Content Aggregation
Content Management
Content Publish



The following paragraphs discusses each of these lifecycle phases in detail


Content Analysis


A content aggregation or integration begins with an analysis that defines what content an organization needs and how this content is sourced (created or purchased), stored, maintained and delivered.
The needs analysis is used to create a model of content that shows
• Who uses content, how they use it, what they use it for?
• How content flows through enterprise systems?
• How content changes over time?
A complete plan will include metrics to determine how effectively content is being sourced and used to impact performance.


Content Creation


There are content providers who will create or gather content from different resources and provide or sell this content to the online retailers or web. Content creation is one of the major businesses in the industry. It is very difficult for an online retailer who sells music and movies to create and manage content within there content aggregation system. In most cases, they have to rely on external content providers who will provide the content on a day to day basis.

A professional content writer can add more value to the site by writing about organization or any article which has to be posted on the web site.

Content Creation can also be a part of Content Management System. Content Management team can create, modify or edit the content from the provider. This has discussed later in this article.

Most of the Content Provider provides the content in the form of data file or xml file. This varies from provider to provider.


Content Extract


Extract the content from different content providers or other sources to the content landing server. The sources can be either a database system, or from a content provider FTP sever. The data file or input content file can be in any format. It can be a flat file delimited by any special character or can be an XML file.

Depending on the business requirement or data volume, one can design Delta calculation during the Content Extract process Stage. This delta calculation can be performed by comparing today’s load with yesterdays load. This will help in avoiding huge amount of data load, if there is no real change in the content.

Another option is to go for an ETL tool to extract the data. A customized program can be designed using different tools like Perl, SQL Loader etc. to load the data. There are so many articles on the net which will tell how to select an ETL tool or when to go for customized program.



Content Load


Once all the content lands on the Content Landing Server, It has to load it into the database. This database can be the content aggregation database system or it can be a staging database. Final choice depends on the application architecture and the requirements. There are many advantages if the data gets loaded into staging database. This will be discussed later in this document.

The other activities which need to perform before the content gets loaded into the database are filtering, formatting etc. This will have a huge performance gain in terms of time, space etc.

Pre filtering/ formatting process

Most of the content arrives from different sources may not have filtered or formatted depending on the requirement needs. In that case this is the best stage where all the data filtering and formatting gets applied. For e.g., if the site does not sell cassettes and if you are receiving content for cassettes along with the CD from the content provider, then it is not necessary to load the content into the database. By eliminating all the cassette related content, one can save real amount of effort, time and money.

The filtering processes can be summarized as below:

File Data transformations - string manipulation based on pattern matching
File Data Filtering - rejection of records based on predefined criteria
RegEx based Rules specification - perform pattern matching and string manipulation.

ETL tool may not be the real choice in this case if any project handles about millions of content records. The best way is to go for any customized program code using Perl or other utilities. Perl is one of the best tools that can be used to write any complex regular expressions to do different types of filtering and formatting.

Load Process

After formatting and filtering you can load the data into the staging database.



Staging database can be designed in a number of ways depending on the requirements. One approach is to design the database with transactional data. This will help in debugging data which is one week old or months old depending on any application. If it is required to keep transactional data from the provider in the database, then it should not have any referential integrity constraints on the tables. All the entities will be stand alone. For e.g., if movie related content is getting loaded, then movie, artist, award, review will stand as individual entities. There will not be any content relation between these entities. This will help the process to load the data faster into the database.

The second option is to have the tables with RI constraints and keep the back up in the flat file itself. Any util tools can be used to grep the data present in the flat files for any analysis if required.

Numbers of options are available to load the data from the landing server to the database. If the data is in the form of flat files, then it’s better to go for Oracle SQL loader. If it is from external database system, then the best approach is to use Informatica mapping.


Content Transfer


This is an optional staging process. If the system is designed with the initial staging area without any referential integrity, then this will help to make the content relational. Some of the filtering/ formatting rules can be executed during Transfer process. If the filtering requirement needs to have a look up table and based on the value, it has to execute some of the filtering, then this is the right place to implement those filters.

ETL tool like informatica or Oracle PL/SQL can be used for transferring content from initial staging area to the secondary staging area.


Content Aggregation




At its simplest level, content aggregation is the packaging and description of content so that it can fit into a distribution and delivery system. Content aggregation makes content easier to use by making it part of the systems that we use in our day-to-day life.

Content aggregation is of growing importance today for three reasons:

The vast increase in the amount of information available

The growing use of enterprise software systems to integrate all aspects of managing and operating an organization

The popularity of information appliances such as web sites, PDAs and advanced cell phones (but also cars, clothes washers and rice cookers with sophisticated digital displays) that require new ways to package content

Content aggregation is the integration of content into systems so that it can be used when, where and how it is needed. This is the stage where content from different sources marries together.

Content can be anything from a text document, to a video clip, to a sophisticated simulation. Real-time information feeds are another form of content that can be integrated into many types of systems.

So here is the final stage where the content get aggregated in the form in which it can delivered to any systems or any type of applications.


Content Management


Content management is the organizing, categorizing, and structuring of information resources (text, images, documents etc.) so that they can be stored, published, and edited with ease and flexibility. A content management system (CMS) is used to collect, manage, and publish content, storing the content either as components or whole documents, while maintaining dynamic links between components.

Content Management team will be responsible for managing the content and publishing it to the external world. They will make use of the Aggregated content and responsible for generating meta data and packaging the content in the right way.


A 'good' Content Management application will
Describe the content accurately making it easy to find
Tell you what the content can be used for (this includes rights management)
Tell you what the content has been used for and what other pieces of content it has been used with
Tell you what other pieces of content might be relevant
Provide your systems with the information they need to track and present the content properly
Packaging has two closely related functions:
To organize pieces of content into larger aggregations
To format the content so that it can be used on the target delivery system
In many ways packaging is the most complex part of content integration. It requires an intimate knowledge of information design, to put the content together into meaningful packages (in the case of learning it is instructional design skills that are needed).
It also requires deep technical knowledge of the delivery systems, whether these learning management systems, enterprise portals, special devices such as PDAs or the electronic support systems built into applications and devices. Packaging of content for use with the flight information systems of an airliner is very different than what is needed for a Point-of-Sales terminal at a retail outlet.


Content Publishing


Content publishing is the final stage of content aggregation. It makes use of content description and content packaging to make sure that the right information gets to the right person at the right time. The information must be available in the format required by the delivery system and the network must be managed to ensure that latencies are kept to a minimum and loads are reasonable.
Content publishing technology is in its infancy and is waiting for description and packaging technologies to mature before it can come to the forefront. Most enterprise systems have some content routing capability, as do network management systems, but an integrated solution is still some years away.

The following diagram depicts content flow in a typical application of content engineering for an e-commerce website.




Factors to be considered while building Content Aggregation Project

1)System
Restartability
Traceability
Flexibility to Add a new Provider
Reusability

2)Productivity
Effort involved in Adding a New Source of Content into the System

3)Hardware/Software Cost
Software Cost
Storage Space
Data Storage- Better Storage of Data(Both Transactional and Relational)
4)Data
Provider Specific Storage of Content
Precedence Rules – A set of rule to decide which provider content has precedence over the other provider.
Data Debugging
Relational Data Storage of Provider Data
Storage of Provider Specific Keys
Supports Multithreading capability to load files
Internationalization
Generic Database
Delta Identification
Supports Data Staging
Supports different types of data files(XML, Flat files)
Audit and operational reports for each data load

Challenges involved in a Content Aggregation Project

Understand your workflow

An in depth or thorough knowledge reveals the inter-dependencies of a large organization operation. It is very important to understand the business operation within an organization.

Understand your users, or who they are

Who is the final end user and how they were going to use your content

Understand your content

Understand your content structure and the format in which it is available. Then apply filtering and formatting and transformations that are required for your current business needs.

Look at the big picture

Understand the overall picture about entire architecture of your application and track how you will manage and where your content fit into the big picture


Implementation Challenges
. Deployment of a new IT architecture
. Training of staff in the use of the CMS
. Content Load from different Content Providers
. Migrating content into the CMS or Setting up the Initial Content
. Determining suitable workflows
. Changing work practices and processes
. Sustainability. The goal of all these activities is to ensure that the Content Aggregation solution is sustainable into the future. Much work will be required after the initial implementation project to achieve this goal.

Conclusion
The conclusion that could be drawn from these discussions is that, although the failure rate of Content implementations is high, an engineering approach to Content Lifecycle Management maximizes the chances of website’s success. If done correctly, Content can yield large business benefits, both in making the Web an effective medium for execution of sales, marketing and business strategies and in expanding the website to the rest of the world.

Acknowledgments

The author thanks and appreciates the help provided by Mr. Raghu Vishwanath for constructive comments and encouragement.

References
http://www.webassociates.com/
http://http://www.kmworld.com/
http://www.contentworld.com/

About the Author
Daison Jose is a Certified PMP having 8 years of expereince and 5 years of industry experience with a primary focus on e-Commerce application development. He specializes in managing,design and development of Web Applications,Content Management applications and Object Oriented applications. He has worked extensively in Retail domain with expertise in solution definition and packaging. Daison has successfully delivered many e-commerce projects for global clients. He holds a Masters degree in Computer Application and has published many articles. Daison can be reached at daisonj@gmail.com