Sie sind auf Seite 1von 11

What Is Lotus Notes?

by Julian Robichaux revision 1.1 For as long as I've been working with Lotus Notes, people have asked me, "Just what the heck is Lotus Notes anyway?" hat has always been a di!!icult "uestion to answer, because there are no e"uivalent products to compare it to# $ typical conversation will go something like this% "&oes it do e'mail?" "(es#" ")o it's like *+change, right?" ",nly in the sense that it's an e'mail system# It's actually primarily a database system that happens to have built'in e'mail !unctionality#" ",kay, so it's like )-L or ,racle or something#" "No, it's not a relational database system like those are# It's more o! a !lattened data structure#" ".hat's that?" "/robably nothing you should worry about# It's a database#" ",kay, so how do I manipulate the data? .rite an $ccess !ront'end or something?" "No, that's all built'in to the client# It's also got support !or several programming languages, and a web server component that allows you to access the data !rom a web browser#" " hen it's like *+change, )-L )erver, $ccess, 0isual 1asic, and II) all wrapped together?" ")ort o!# 1ut it's packaged so that you don't see all those separate components individually# hat's what makes it such a power!ul work!low application#" "I don't think I understand###" "I know# I think I'll have to show you some sample applications#" ,!ten times, these conversations are more heavily biased in one direction or another, and they are usually accompanied by certain amounts o! hu!!ing and pu!!ing based on preconceived notions about various things, but that's pretty much it# his is my attempt to give a slightly more complete description o! the Lotus Notes product# I've written two di!!erent versions o! this description% one !or managers, and one !or technical people# *veryone will want to customi2e these descriptions based on their own knowledge, personality, and situation, but maybe it will give you a good starting point !or understanding or e+plaining the application# I know it's not complete, but my intent was to provide a "uick overview instead o! a description o! the entire !eature set# $ good overview o! the Lotus Notes3&omino product is also available on the I14 website, in a document called " he 5istory o! Lotus Notes and &omino"# I! you want a very technical description o! some o! the inner workings o! Notes, try reading Inside Notes 6i! you can't !ind it there, search 7oogle !or insidenotes#pd!8#

NOTE: in version 9#9 o! this document, I also added a short entry at the end% .hat is a Notes &atabase? What is Notes -- the Manager version Lotus Notes is an application suite that includes the !ollowing components%

e'mail calendaring and scheduling address book database web server programming

:nlike other application suites 6like 4icroso!t ,!!ice8 that split these pieces o! !unctionality into separate products 6like ,utlook, $ccess, Front /age, etc#8, Lotus Notes presents all o! these components using a single !ront'end# For many people, Lotus Notes is an e'mail system# .hile this is not necessarily it's largest strength as a product, e'mail is probably the most recogni2able component that it has# It has most or all o! the !eatures o! the other popular e'mail products on the market, including calendaring and scheduling, and it uses standards'based mail protocols such as /,/; and )4 /# 1ecause Notes has both a client and a server piece, users can use it to read and respond to e'mail, and administrators can use it as an entire e'mail environment# For all practical purposes though, everything in Notes is a database# Individual users have their own e'mail databases, and di!!erent sets o! users can share application databases that can display, add, or manipulate in!ormation# 1esides data, a database can also contain modules o! programming code that will per!orm background, scheduled, or on'demand tasks !or a user# he Lotus Notes client is a desktop application that organi2es and displays databases on a user's local workstation# he physical database !iles can be stored either on the workstation itsel! or on a server# $ typical Notes client "workspace" will have icons !or a hand!ul o! local databases as well as a number o! databases that reside on one or several Notes servers# $ll o! these icons can be grouped together, so that the distinction between local and remote data becomes very trivial# he databases themselves can be highly customi2ed to present the data that is associated with them# $ Lotus Notes developer can design !orms to display individual data records, and views to display whole sets o! data# In some cases, the data that is displayed doesn't have to come only !rom the database that you're in '' it can also come !rom one or more other Notes or non-Notes databases#

1ecause the programming layer is built'in to the Notes databases, a developer can embed code throughout the database design to automate certain actions or reactions without having to install or con!igure e+ternal programs or processes# his built'in programming layer also makes it possible to create work!low applications that interact very !luidly between both application databases and e'mail# I! all or some o! your user base doesn't want to use the Notes client, the capability to automatically display Notes databases on the web is available as well# )ince version <#=, the Notes server so!tware has shipped with a web server component called "&omino", which translates Notes data into web pages and serves them up as a web site# Internet programming technologies such as Java)cript and Java are native to Notes, so these can be easily incorporated into Notes databases and design elements 6either on the web or on the client8# he &omino web server can also be con!igured to interact with things such as II), $pache, and Java servlets and J)/ pages, so you can enhance your &omino website using other 6possibly pre'e+isting8 technologies within your environment# ,n a slightly more technical level, Notes3&omino provides a very granular security model that allows a developer to "lock down" access to all or parts o! a database# In this way, you can combine private and public data within a single database or across a single server# .hile the security is normally administered through a corporate Notes address book, it can also tie in to the user accounts in an N domain or any L&$/'aware directory service# .ith all o! this !unctionality, it may be hard to envision what Notes can actually do !or you# )ome e+amples o! typical Notes applications are%

e'mail 6obviously8 discussion !orums document repositories e+pense approval systems web'based re"uest systems

:sing the capabilities o! Notes to interact with other database systems and other web technologies, you could also use it as a client'based or web'based in!ormation portal that ties together a number o! di!!erent data sources# Lotus Notes can be a stand'alone data repository, a !ront'end to numerous other data repositories, or many things in'between# What is Notes -- the Technical version $t its most basic level, Lotus Notes is a database system# In !act, most Notes environments consist o! a collection o! databases that might interact with each other at some level#

Lotus Notes, however, is not a relational database system# $ Notes database is a collection o! unstructured data, combined with various design elements that allow you to access and manipulate that data# 1e!ore you allow any pre'conceived notions or biases about relational versus non' relational data to cloud your opinion o! Notes, please read through the e+planation below# 1y walking through the design o! a basic Notes database, you can better understand how the data is organi2ed and treated within Notes# Let's say that we want to create a database that tracks in!ormation !or a car club# o start, we would create a blank Notes database, and within that database we would create a Form to display some !ields o! data that relate to cars# For e+ample, our Form might have !ields called ">ar4ake" and ">ar4odel"# $ Form allows a user to view or manipulate the data !ields o! a given record in the database# $s such, its !ormat is "uite customi2able in terms o! colors, !onts, and layout# 5owever, the Form does not actually hold the data itsel! '' it is simply a way to present the data# Let's say that we've created and saved a Form with the two !ields described above# .e'll have to name the Form, so we'll call it ">ar &ata"# I! you want to imagine a Notes database as having an internal table that holds all o! the data records in the database, the internal table !or our new database would look something like this% Form CarMake CarModel

I! we wanted to start populating the internal table, we could actually start doing it now# *very time we opened our Form, entered data, and saved the !orm, we would be creating new data records in the table# In Notes terminology, a data record is a &ocument# I! we created several new &ocuments using our ">ar &ata" Form, our internal table might start to look something like this% Form >ar &ata >ar &ata >ar &ata CarMake CarModel Ford F'9=? 5onda >ivic /orsche 1o+ster

here are also several internal data !ields 6like the date the record3&ocument was created and the user who created it8 associated with each &ocument, but the table above represents the data we can work with and change# $s we added new &ocuments, they would be added to the internal table, and we could also edit or delete the &ocuments i! we had access rights to do so# Now say we want to add a !ield to track the color o! the cars as well# o add a !ield to the internal database all we have to do is add a new field to the For # .e would open up the

">ar &ata" !orm, add a !ield called ">ar>olor", and save the Form# Now our internal table would look like this% Form >ar &ata >ar &ata >ar &ata CarMake CarModel CarColor Ford F'9=? 5onda >ivic /orsche 1o+ster

I! we have the proper access to the database, we could even edit the e+isting &ocuments to make the table look something like this% Form >ar &ata >ar &ata >ar &ata CarMake CarModel CarColor Ford F'9=? .hite 5onda >ivic 1lue /orsche 1o+ster @ed

$s we think more about the database, maybe we'll want to also track in!ormation about the members o! the car club# .e'll make a new Form called ",wner In!o", and add two new !ields to the Form, ",wnerName" and ",wner/hone"# $!ter we've saved the new Form, the internal table will look like this% Form >ar &ata >ar &ata >ar &ata CarMake CarModel CarColor OwnerName OwnerPhone Ford F'9=? .hite 5onda >ivic 1lue /orsche 1o+ster @ed

Notice how the new !ields Aust get appended on to the end o! the internal database# 5owever, i! we open the ">ar &ata" Form back up, we won't see the new !ields on the Form# .hy? 1ecause even though all the !ields !or all Forms are stored in a !lat database, the individual Forms themselves only display whatever subset o! !ields that the database designer wants them to display# I! we create a couple o! new &ocuments using the ",wner In!o" Form, our internal table might now look similar to this% Form >ar &ata >ar &ata >ar &ata ,wner In!o ,wner In!o CarMake CarModel CarColor OwnerName OwnerPhone Ford F'9=? .hite 5onda >ivic 1lue /orsche 1o+ster @ed John ==='9B9B )teve ==='C???

I know that all o! the relational database programmers are writhing in pain looking at this table right now, so let's cover a !ew bases# First o! all, the data inside a Notes database

isn't structured exactly like this '' notably, there isn't all the white space you're seeing above '' but it's good !or the sake o! diagramming the data !or people who are used to looking at tables# It's also going to help us make sense o! some o! the other concepts we'll touch on below# )econd, there can be overlap between the !ields o! various Forms, so there's nothing keeping us !rom adding an ",wnerName" !ield to the ">ar &ata" Form# In !act, you could do this as a way o! tying together the ">ar &ata" in!ormation and the ",wner In!o" in!ormation# he !ields on a Form don't Aust have to be placeholders !or !ields, they can be programmed as well# For e+ample, your ",wnerName" !ield on the ">ar &ata" !orm could have a !ormula that simply looks up the owner names and allows the user to choose an e+isting owner# In )-L terms, this !ormula would essentially per!orm the "uery%
SELECT DISTINCT OwnerName FROM InternalTable WHERE Form = 'Owner Info';

I! we did this, and edited the e+isting ">ar &ata" &ocuments, we'd have an internal table like this% Form >ar &ata >ar &ata >ar &ata ,wner In!o ,wner In!o CarMake CarModel CarColor OwnerName OwnerPhone Ford F'9=? .hite )teve 5onda >ivic 1lue John /orsche 1o+ster @ed )teve John ==='9B9B )teve ==='C???

,! course, i! you had a good relational database background, you'd probably use some sort o! numeric ,wnerI& !ield instead o! the ,wnerName, but you get the idea# he point is that records3&ocuments can be tied together in this manner# $nother interesting aspect o! the Notes data store is that the data !ields are not strongly typed# In other words, even though you initially set up a !ield as a numeric !ield, you can later add te+t data to that !ield 6i! you modi!y your Form or add data programmatically8# In this way the data !ields are more like columns in a spreadsheet than columns in a table# In a spreadsheet, you might be able to store dates, numbers, te+t, and obAects all in a single column# Notes is the same way# $ !ield can even hold items such as !ile attachments or ,L* links# .hile all o! this might seem like a terribly "loose" way to be managing data, it actually makes it much easier to develop and update an application# I! you need new !ields on a Form, you Aust add them# I! you need a whole new Form with a new set o! !ields, you can Aust add that too# I! you need to change a numeric !ield to a te+t !ield months a!ter a database has been developed, you can Aust change it without having to DnecessarilyE worry about the old data# (ou don't have to know anything about tables and data normali2ation and relational database theory, because Notes handles everything internally#

$nyway, now that you've started storing data in the internal table, you'll want to start viewing it as well# In the relational database world, you'd normally write a "uery to !ilter and sort your in!ormationF in Notes terms, you create a 0iew# $ 0iew is a tabular presentation o! a !iltered subset o! data in the internal table# (ou de!ine not only the !ilter that you want to apply 6like "all records that were created using the '>ar &ata' !orm"8, but also the individual !ields that you want to display in columns, and the way that the data is categori2ed and sorted# (ou can even add programmatic columns to the 0iew, to display conditional data, totals, sums, or many other manipulated versions o! the data in the !ields# I! you need to programmatically manipulate the data within the database, Notes provides a number o! options !or programmatic data access and modi!ication# (ou can natively use GFunctions 6a macro language8, Lotus)cript 6very similar to 0isual 1asic or 01$8, Java)cript 6to a certain e+tent8, and Java# $ll o! these bits o! code can be stored either directly on the Form or 0iew design 6associated with events, actions, or button clicks8 or in modules called $gents or )cript Libraries# $n $gent is essentially a program inside the database that can be either called by the user or kicked o!! in an automated !ashion# $ )cript Library is a collection o! !unctions, routines, modules, and3or classes that can be globally modi!ied and shared among various design elements in the database 6including Forms, 0iews, and $gents8# In a lot o! ways, a Notes database is similar to a 4icroso!t $ccess database# *verything is all in one !ile# he data is either stored in local tables or accessed !rom a remote server# (ou create Forms to display and modi!y the data# (ou use 0iews3-ueries to sort and display the data# (ou can embed Lotus)cript301$ within di!!erent elements o! the database, and call those scripts in a variety o! di!!erent ways# (ou may have heard that Lotus Notes is also an e'mail system# It is# In !act, some people use it only as an e'mail system# 5owever, i! you think about what e'mail is, and how it is stored once it arrives on your local machine, e'mail is Aust a database# *very user has their own individual Notes e'mail database that has been customi2ed !or mail activities# >alendar and schedule? $nother database# $ddress 1ooks? &atabases# ,nce you start having a database'centric view o! the world, a lot o! things can be looked at as being Aust another type o! database, especially when you're thinking in terms o! a Notes database, which can hold not only data, but also design elements, programming code, etc# )o how do you access a Notes database? ,n a local workstation, many people use the Notes client# he client is an application that allows you to manage and work with any number o! Notes databases# he databases can be stored either on the local workstation or on a remote server, and most people who use a Notes client have a mi+ o! local and remote databases that they access# ,n the client, however, the local and remote databases look and act e+actly the same# he various databases on your Notes "workspace" can interact with each other programmatically, which makes it very easy to design work!low applications# For

e+ample, you could design an e+pense tracking database that sends reimbursement re"uests to an 5@ group via e'mail 6another database8, which in turn might tie in to a departmental budget database# Notes databases can also interact with non'Notes databases in various ways 6usually via ,&1>8, which makes it possible to include other systems in your environment as well# I! you don't want to use the Notes client to access a Notes database, you can also access it on a Notes server via a web browser# )ince version <#=, the Notes server so!tware has shipped with a web server component called "&omino", which translates Notes data into web pages and serves them up as a web site# In some cases, no additional programming or design work is necessary !or Notes design elements to be viewed as a web page '' all o! the conversion is done automatically by the &omino server# In other cases, a Form or 0iew might be modi!ied somewhat !or a nicer look on the web, or to provide more o! the interactive e+perience that the Notes client provides# o this end, you can include Java)cript and Java applets directly in your Notes design elements, and you can use &5 4L and >)) to provide a more pleasant "look and !eel" on the web# .hile a &omino server is an 5 /35 /) web server unto itsel!, with no additional so!tware re"uired, you can also connect &omino with other web servers like II) and $pache# &omino even has its own Java servlet engine and a Java inter!ace to much o! the Notes obAect model, so you can do things like write J)/ pages that interact directly with your databases# I! you have multiple Notes3&omino servers, there is a very use!ul !eature called @eplication that is built'in to the product# :sing @eplication, you can keep copies o! the same database on multiple servers in sync, so that they automatically update themselves with the latest data and design elements throughout the day# (ou can even use @eplication to make a local copy o! a database on your workstation, modi!y the data o!!line, and then @eplicate your changes back to the server when you reconnect# ,! course, Notes also provides a strong security model to limit the ways in which various users can manipulate or even view the data in a database# *very Notes database has an $ccess >ontrol List 6or $>L8 that determines what di!!erent users are allowed to do with the data in the database# ,n a global level, users have access levels such as "$uthor", "*ditor", and "&esigner", which indicate what they are allowed to change within the database# ,n a slightly more speci!ic level, users can be granted or denied access to do things like delete documents or create agents# ,n a much more granular level, the designer o! a database can grant or deny access to views, !orms, sections o! !orms, and even individual documents based on the $>L# here are certainly many other aspects o! Lotus Notes that I haven't even started to touch on here '' L&$/ integration, clustering, >,43,L*, >,@1$ '' but covering all o! that would take an entire book 6and indeed, there are several good books that attempt to cover it8# I haven't even gone very deep into the speci!ics o! the topics that I've mentioned, again !or the sake o! brevity# 5owever, this overview should be able to give you an initial understanding o! the basic architecture o! Notes, along with a taste o! what can be

possible when you take all o! these technology ideas and combine them in a single product# :n!ortunately, Lotus Notes is a technology that usually has to be seen to be understood# o help you envision what Notes can actually do in a practical sense, here are some e+amples o! typical Notes applications%

e'mail 6obviously8 discussion !orums document repositories e+pense approval systems web'based re"uest systems

:sing the capabilities o! Notes to interact with other database systems and other web technologies, you could also use it as a client'based or web'based in!ormation portal that ties together a number o! di!!erent data sources# Lotus Notes can be a stand'alone data repository, a !ront'end to numerous other data repositories, or many things in'between# What is a Notes ata!ase $ Lotus Notes database generally has a !ile e+tension o! "#ns!"# .ithin that !ile, there can be data, design elements, and programming code# *ach database !ile also has its own security in the !orm o! an $ccess >ontrol List 6$>L8# 0isually, you can imagine a Notes database !ile like this%

$ brie! discussion o! the elements o! a database is below# !"T" he data inside a Notes database is stored as a set o! records '' each record is re!erred to as a &ocument# he in!ormation in a &ocument consists o! one or more !ields, which can be in any number o! !ormats# e+t, numbers, and dates are the basic data types, but you can also store things like !ormatted rich te+t and !ile attachments in a !ield# $ Notes database can also access data !rom other databases# hese databases can be other Notes databases, or any kind o! database that is accessible via ,&1># In this way, Notes can act as a !ront'end to other data sets, even relational databases# !E#$%N &ata is available using any o! a number o! di!!erent design elements that are stored in the database# ,n a basic level, you use Forms to access, modi!y, and create records3&ocuments, and 0iews to sort and categori2e data sets into tabular !orm# here

are also things like Navigators and ,utlines, that allow you to create visual inter!aces to other design elements and aid in navigation# 0irtually all o! the design elements in a database can be viewed using either a Notes client or a web browser# he Notes3&omino server can natively translate these things and present them as web pages, which makes it "uite easy to turn a Notes database into a web site# $ Notes designer can even add web'speci!ic design enhancements like >)) and &5 4L to a Form, 0iew, Navigator, etc# &O!E In order to provide programmatic manipulation o! data, a designer can embed many di!!erent types o! code in a database# Notes has native support !or a Formula 6macro8 language, Lotus)cript 6very similar to 0isual 1asic8, Java, and Java)cript# his code can be placed directly on design elements such as Forms and 0iews, or it can be placed in modules called $gents# he code in a database can manipulate data within the database, but it can also interact with the user, the operating system, and e+ternal data and processes as well# For e+ample, using Lotus)cript you can access &LL !unctions, >,4 obAects, and ,L* obAects# :sing Java, you have a rich set o! tools !or working with sockets, threads, and 7:I components 6among other things8# Notes even has an e+posed $/I layer that can be accessed via > and >HH libraries# #E&'R$T( .rapped around all o! these database elements, Notes provides a strong security layer called an $ccess >ontrol List 6$>L8# his allows a database designer or administrator to !ine tune what di!!erent users are allowed to do within the database# ,n a global level, users have access types such as "$uthor", "*ditor", and "&esigner", which indicate what they are allowed to change within the database# ,n a slightly more speci!ic level, users can be granted or denied access to do things like delete &ocuments or create $gents# ,n a much more granular level, the designer o! a database can grant or deny access to 0iews, Forms, sections o! Forms, and even individual &ocuments based on the $>L# (ou are on the ns!tools#com website# http%33www#ns!tools#com3misc3.hatIsNotes#htm