In this chapter you will accomplish two important objectives—you will build your own portable Oracle Universal Content Management (Oracle UCM) environment and you will understand the basics of the Content Server and major Content Management paradigms. More specifically, you will learn:
How to obtain your free unlimited evaluation version of Oracle UCM products
How to set up the Content Server in just an hour or two, and how to steer clear of nasty installation problems
A maximum speed introduction to Content Server that will make you instantly familiar (and comfortable) with it
Required knowledge and basic principles you must internalize—about Content Management in general, that will help you avoid devastating losses, no matter what CMS tool you use
Ready? Let's get started with a quick overview.
A few years ago, we made a mistake during a server upgrade and had to spend two days restoring from a tape backup. Technology changed since then and you can avoid our mistakes. Now you have more memory in a basic laptop than we had in our servers!
You can have a copy of your entire production environment run on a single machine and you can "dry-run" important upgrades and installations, before you even consider applying them to your live production servers.
And it doesn't even take a lot of resources. So why not put your spare RAM to good use? Let's bring up Oracle Content Server in a virtual environment.
What do I mean by "virtual environment"? Let's see this in more detail.
A Virtual Machine (a VM) is "an efficient, isolated duplicate of a real machine."
It's an image of a physical machine. For example, if you use Microsoft Virtual PC, it runs in its own process and looks like a window on the desktop—like a Remote Desktop Connection window.
It has its own virtual hard disk or two, its own virtual network connections, and much more. You can even run a web server on a VM and browse it from your desktop.
You can in fact back up your server or your workstation and restore that image into a VM, and run that virtual machine on your laptop or desktop computer.
You can have multiple machines running at the same time or you can have the entire server farm running off your laptop (as shown in the following screenshot).
We will be using this feature in the following chapters.
You can always undo anything that went wrong.
Guest OS, the VM's Operating System has absolutely no affect and may even have no access to your host. Even if you're running a deadly virus on your VM you may be completely safe.
You'll be able to take the VM with you; moving it to another machine is a simple file copy operation.
I hope I have you convinced. And now it's time to get our tools ready.
Content Server can work with a number of different databases. I suggest we use Microsoft SQL Server. Why?
Because chances are that you are running Windows and familiar with basic administration. Also, Microsoft offers an evaluation version of SQL Server, so you won't have to spend time installing the OS and a database server.
You can download SQL Server 2005 on Windows 2003 Server—installed and pre-configured for you in a virtual environment. It's ready to use.
All you need to do is get Oracle Content Server, and install it on this VM. In fact, I am going to walk you through the process.
I'm not giving you the exact link because links change quite often. Type these words in Google: download SQL server VHD.
It's an extension of Virtual Hard Disk files that you can run with Microsoft Virtual PC.
Find a link from a Microsoft site and download your virtual machine.
You will need Microsoft Virtual PC to run it. Again, right now, the current version is 2007. It's a free download from Microsoft site.
Type into Google: download Microsoft virtual PC. You'll get the download link.
Install Virtual PC on a machine where you will be running your VMs.
How much RAM should you have?
I recommend that you have at least 512 MB of RAM that you have to spare on top of your daily essentials. 1 GB on the host is the minimum.
Once you have the VHD unzipped and Microsoft virtual PC 2007 installed on your machine—you're ready to run your VM.
The last thing you need is the actual copy of the Content Server.
Go to http://edelivery.oracle.com/. Here you will get a page as shown in the following screenshot; click on Continue:
In the next page, select Oracle Fusion Middleware as the product pack and Microsoft Windows (32 bit) as platform and click on Go.
Pick Oracle® Enterprise Content Management 10g Release 3 (10.1.3) Media Pack and click on Continue.
Now out of the available options download Oracle Content Server 10gR3 (10.1.3.3.3) for Microsoft Windows (32-bit).
While your Content Server is downloading, we can use the time for getting the VM ready.
In this section I'll walk you through the steps of using MS Virtual PC 2007 to run the VHD file you've just downloaded, and how to configure it best to save time when you will be installing the Content Server.
Let's get started:
Run Virtual PC 2007.
Click on New...; New Virtual Machine Wizard opens.
Click on Next.
Choose Use default settings to create a virtual machine as shown in the following screenshot:
Give the VM a name and a location.
Click on Next.
Click on Finish. Virtual Machine settings dialog opens.
Give your VM 512 or 1024 MB of RAM depending on how much RAM you have to spare.
Click on Virtual Disk Wizard.
Click on Next; leave Create a new virtual disk selected.
Pickle A virtual hard disk and click on Next.
Now click on Next.
Pick Differencing as shown in the following screenshot:
Pick the parent VHD file—the one you downloaded from Microsoft.
Keep Undo Disks disabled for now.
Click on OK to close settings dialog.
On a Virtual PC Console click on Start button.
Once the VM displays a login prompt—log in with
Administratorand a password from
Readme.htmthat came with the VHD. Mine was
Open SQL Server Management Studio.
Click on Connect.
Expand Security Logins on the tree view on your left.
Right-click on Logins. Pick New Login.
Create a user that your Content Server will use to connect to SQL Server. Make sure you use SQL Server authentication and Enforce password expiration is off.
Give it a name. Make sure you specify the user you've just created as database owner:
Once download of Content Server is complete, unzip the file. You will see an inner ZIP file, named something like:
Drag it over the VM's desktop. That will copy the file over to the VM. Unzip it there to an easy-to-find folder, like
On your host machine browse to http://jtds.sourceforge.net/. Go Download. Save
Go inside the file and extract
.zip) file over to your VM. Place it into the installation directory.
Great! You've now completed all the pre-work and are ready to install a copy of Content Server.
Wait! There's something else I want you to do. I bet you'll like the next step.
In case you make a mistake and would like to re-run the installation—I don't want you to go through all the steps you just completed. Virtual PC gives us the power to save you from doing that.
Click on Windows Start button and shutdown your VM.
Once it stops running, go the Settings and enable Undo Disks.
Start the VM.
Now you can always get back to the "Ready to install" step in just a few seconds!
Suppose you made a mistake and would like to start over. Just click on the X on the top right corner of the VM window and pick Turn off and delete changes. When you start the VM, it will be back in the state in which it last started!
Say, your VM with Undo Disks enabled was infected and completely destroyed by a virus. All you need to do is Turn off and delete changes (as shown in the following screenshot)! Love it! The power of Undo Disks…
Don't pick Turn off and delete changes unless you really want to go back. You can lose your work!
I hope you're not out of steam yet! It was a long prep-work. Normally, if you just install the UCM on a physical server, you'll be starting in the Lab 1 section. Just trust me, getting your VM ready was time well spent. You'll thank me later!
Welcome to the actual Content Server installation process! It's time to benefit from all that prep work:
Start the VM.
Once it is started, in your installation directory there go to
installer.exe. The Installer opens as shown in the following screenshot:
Installer is a cross-platform application. It looks the same on UNIX and Windows. It takes a few seconds to get used to, but it has its own advantages....
*1. Install new server—just press Enter. The default choice is fine.
Hit Enter to install in a default directory.
Hit Enter to go with
Just keep on pressing Enter to accept default choices for all directories.
Hit Enter to pick default option that is
Keep going with defaults until you see a database selection prompt. It reads
"Please select a database from the list below to use with the Content Server. Content Server Database".
2then hit Enter. You're choosing Microsoft SQL Server 2005.
JDBC connection string —use
jdbc:jtds:sqlserver://Win2k3R2EE:1433/OracleUCM; I assume your machine name is
win2k3R2EEand your database name is
Database User ID—type up the user ID you picked for your database. If you followed the screenshots, you should have UCM for yours.
Specify the DB password.
.jar file path —type the path to the JAR file that was inside that ZIP folder you downloaded from SourceForge. If you followed my instructions—use
Go with defaults to
The installer asks you to select components to install. Hit
1then Enter to select Content Folios. Also select
Folders_g. Hit F and then Enter to continue.
Configure the Administration Server service.
Configure the admin service to run as a specific user. This will have a service run as a Local System on Windows.
Continue with the default
Default to Configure the Content Server service.
*1. Install service and start automaticallyis fine.
Configure the service to run as a specific user.
Right before you proceed be sure to check the content of
C:\oracle\ucm\server\install\log.txt. Right-click on it and open it with WordPad. as shown in the following screenshot:
If you see errors in
log.txt—choose Change Configuration and correct the mistakes. It will be even easier this time around. All the choices you made are still there and you'll just have to keep on pressing Enter.
Choose Proceed to continue with the installation.
Once install is complete, check the log file once again. Search for the word
Error. If you see errors, you'll know what went wrong and what to expect from the installation.
We just completed installation of a fresh instance of Content Server. You can later use a similar procedure for upgrades. You can also install additional Content Server instances on the same machine.
Hopefully, you have no errors in your
log.txt file and your installation was successful. Now it's a good time to take a snapshot of your VM. Why?
So you can feel safe about playing with it. You'll always be able to get back to this "just installed" state.
Here's how you do it. Click on Windows Start button on your VM and shut it down. When shutdown is complete, you have a choice of committing or discarding the changes you made to the machine since the last save. Pick Commit changes to the virtual hard disk as shown in the following screenshot:
Congratulations! You've just completed your installation. Now let me show you around.
Oracle Content Server is the foundation of Oracle Universal Content Management Suite. It's the center product. Other major UCM modules, such as Web Content Management and Document Management are built on top of it.
Think of the Content Server as a central database for storing content. A database analogy is the easiest way to understand it.
In fact, you can think of a Content Server as one huge table that can store millions of records.
And the only major difference between Content Server and a database server is the fact that every record in it has revisions and can go through the workflow.
Every row in the table would be a single content item. Every field in that row would be a metadata field—just like in a table in SQL Server or Oracle or MySQL, or any other database you are comfortable with.
And just like a row in a table you can add and remove fields to fit your organization's requirements.
Every database, as you know, has standard or system fields. And just the same way Oracle Content Server has pre-defined metadata fields; the system metadata fields. It also has custom metadata fields.
Let's take a quick look:
On your VM, go to
http://localhost/idc. You'll see a login screen as seen in the screenshot below.
Click on the Login link. Type sysadmin for user name and idc for the password. Your Content Server Home page loads as shown in the following screenshot:
Now click on New Check In. The check-in form loads as shown in the following screenshot:
Ugly, isn't it? Imagine getting your end users to fill a form like this every time they have a document to check in! The good news is that you can easily personalize this form with custom rules and only show the fields you want your users to see.
Did you notice that some of the field names have an asterisk in front of them? Yes, those values are required, but in our case, those are system fields. Here's a quick description of some of the major metadata fields you'll be sure to deal with:
Custom metadata fields are the ones that you can define and manage and even delete if you wish. System metadata fields, such as content ID or title, are part of the system and are required for Content Server to function properly.
You can use metadata values to find content in the database and you can search by any combination of fields. Content Server even has a simple, almost SQL-like query language. Or you can search by individual field just like in Windows Explorer you can search files by name or modification dates.
But that's where the similarity ends. Unlike Windows Explorer, you don't necessarily have a folder structure in Content Server. The actual content store is flat like a database table.
But most organizations prefer to use hierarchies such as shared drives, file plans, retention schedules, and so on. Can you continue to use them with Content Server? Yes, you can!
Your users can continue benefiting from taxonomies, from the knowledge your organization has accumulated, and you can continue using that filing system if it still works well for business folks.
Each content item may be associated with a virtual folder. Remember, the content is not physically stored in that folder. It is just linked to it so that users can also find it that way—in addition to using the search feature.
Virtual folders provide users a convenient and familiar metaphor for storage and classification. Content Server folders may be browsed just like other, familiar systems.
We will have a longer discussion on Virtual Folders once we get to Chapter 7, Under the Hood.
If you click on the quick search button on the top right of your screen, you will see that your Content Server is empty. Let's check something in.
On the check-in screen find the Primary File field and click on the Browse button. Pick any small file, like
readme.htm. Specify values for the required fields and click on the Check In button at the bottom. The Check in Confirmation dialog is displayed as shown in the following screenshot:
Now wait for 30 seconds or so for the new file to get indexed. Click on the Quick Search button at the top right corner. Your newly checked-in content should appear in the search results:
There are multiple ways to contribute content. Using the check-in form is one of the most popular.
Remember, you can make the check-in form look almost any way you like with just a few minutes of simple configuration. And you can have multiple versions of the form—for different types of content you check in... We will take a deeper look at the Metadata in Chapter 4, Understanding Security.
I mean, important things you need to understand, even if you use SharePoint, Open Text, or Interwoven, there're some things all ECM systems have in common.
I'm not going to bore you with a long tutorial in ECM. Let me just give you the core concepts you need to understand and keep in mind when designing your system.
Storage paradigms are how your data is represented in the system. How your users interact with it. How they find content.
There are two major storage paradigms; Relational and Hierarchical. Let's take a look at these one by one.
This is your conventional database like SQL Server, Oracle or MySQL. Tables can refer to values from other tables like a customers table and table of their orders.
This is what Content Server Store is like. Don't expect the values to "propagate from the parent", that's something the other storage paradigm would do.
Metadata is the description of data. When you buy a book, you want to know the author, the title, and publication date. This is metadata. The title of the movie and names of the actors are metadata. The names of the songs you see in your CD player are metadata. Without it, you won't be able to pick a book by its title, won't know who's playing in the movie until you have watched it, and won't know the title of the song you're listening to.
Metadata is extremely important. In Chapter 4, I'll show you how to define and use custom fields, and how to make your check-in form look exactly the way you want it.
The system cannot manage content that it doesn't know about. So you need to ask your system to take in a document or a web page before it becomes managed content. This is what a process of Check In does for you.
Once checked-in, the content item is in storage.
The system stores the content in its repository, or links it to external content store. In any event, each record in the repository, each content item has metadata associated with it.
Once stored, the content item is ready for consumption.
This is when your content begins to bring business value. If you have a Word document in the repository and would like that content to display on a web page, Dynamic Converter, a Content Server component, can create a web-viewable rendition.
If you'd like a PDF version to send out to customers, a PDF Converter component will do just that. And you don't need to update three different copies. One document can have many renditions.
Once the content reaches the end of its life cycle, it's ready for disposition.
When an employee terminates, his or her profile needs to be taken out of the company directory. Old files that are no longer used are wasting your disk space and indexing cycles.
When a corporate deal is complete, you don't want to keep your records longer than required by law. Some of the files may have information that, in case of a lawsuit, you'd much rather had been destroyed. But people forget and the content may still be there. A delight for an opposing party's law firm!
So Content Server gives you expiry and archiving controls (We'll be looking at those in Chapter 4 and Chapter 10, Customizing Oracle UCM). If you need more functionality, Oracle offers a Content Server add-on for a DOD 5015.2-compliant Records Management System.
These are more fundamental mistakes than security flaws and bad hardware choices. I'm talking project killers, things that are sure to take your project under. And the worst thing of all is when your new Oracle UCM is not accepted by your organization. If that happens—your project is finished! When people don't like your system, they won't be using it. When they are not using the system, no one can benefit from it. End of story.
Now, let's look a little deeper. What does it take to get people to use it? Let's consider the requirements.
Oracle UCM just like SharePoint, Vignette, BroadVision, you name it, is just a framework. All it does is allow you, the designer, to quickly and easily automate business processes. Eliminate paper. Help them find the information faster. Destroy when it has to be destroyed.
You need to adjust your content collection, management, and presentation systems to the processes and demands of your organization. That's the real goal, not the software installation!
So guess what comes first?
If you misunderstand your organization's culture, processes, and business requirements, no system out there will save your project.
Take the time to understand the real needs of business people. Understand the goals of your enterprise. Then go ahead and automate them. You won't be stuck trying to automate a bad process! (Be sure to read about Iterative Development later in this chapter.)
Another fatal mistake commonly found in failed UCM rollouts is bad Metadata design.
Once you've identified your business clients and spent time understanding their needs, you're ready to reflect your knowledge in a content management system. And you do this through metadata design and workflows.
As you've seen earlier in this chapter, metadata design is all about creating custom fields. Fields that describe various types of content you'll be storing in the system.
For example, if you store Project Plans, you might like to add a project manager's name, completion date, and expense account number.
And remember, if users don't understand the purpose of a metadata field, they'll skip it, put wrong stuff in there, or just type up some garbage, so the system lets them submit the form.
Here are some tips for successful metadata design, expensive to ignore.
If they check in an employee record and you're asking them for PM name, guess what kind of name you'll get. It must make sense. And it also must be as quick and painless as possible. Business people are busy and many perceive content management as a "necessary evil", even "pain in the neck", so if you don't have to ask them for a specific field value don't.
Now if you don't need a user's input on a specific field, consider hiding it. On the other hand, if you do need their input, consider using validation.
Another great thing you can do is take advantage of features that let you pre-populate metadata values, features such as Content Profiles (covered in detail in Chapter 4), Content categorizer (see Appendix A), or the Multi-Field Configuration Utility from Fishbowl Solutions (www.FishbowlSolutions.com/StellentSolutions).
This is what happens when you ignore the previous rule.
Picture yourself having a nicely configured system with clean data. Every document has correct meta values. Now you begin asking for a field that doesn't make sense.
Your contributors will begin putting garbage there and they'll be putting garbage in other fields as well! How?
Once you have put garbage in one field, say 'asdf', it becomes very easy to simply put that in the rest of the fields all the way down the form. The system will soon become polluted and you might end up losing the meta values for your entire repository. Why?
You won't know which records have the real values and which just garbage.
Soon enough you won't be able to trust the data anymore!
The single most expensive UCM activity is manual Cleansing and Matching. Unless you have an army of data analysts looking for stuff to do, I don't recommend letting your project get to this point. You must prevent it almost at any cost.
And here is one more common way organizations kill their content management projects. It's by ignoring the principles of iterative development.
You can still afford to delay the rollout until you have all the knowledge you need to design your new system. It doesn't have to be chunked into large and expensive phases—expensive and vulnerable to scope creep.
You can easily implement a useful system while you're still acquiring knowledge. The key here is to have a live working system in the hands of your business people as soon as you possibly can.
All you need to do is make small incremental changes such as adding different types of documents, new modules, new workflows, and so on.
And listen to feedback. If business is happy you did great. If not all you have to undo is just a small change! So don't try to bite off more than you can chew. (If you need more info on agile and iterative development processes, Wikipedia (www.wikipedia.org) is a good place to start. Just search for "Agile software development". Congratulations!
You now have a fully functional instance of Oracle Content Server. You've checked in your first document and you know what metadata is all about.
You've seen the main reasons why so many UCM rollouts fail.
In the next chapter I'll give you a deluxe tour of Content Server. We will look at all the major controls and learn the frequently used features.