Developing external Lotus Notes Domino Internet applications (Web sites) is surprisingly different than building internal Lotus Notes Domino intranet applications. Performance, security and software configuration and compatibility issues must be considered. If these considerations are not taken into account during the development process, Lotus Notes Domino developers and administrators may face many unexpected and unpleasant post-deployment surprises. This tutorial outlines the top 10 issues associated with developing and deploying Lotus Notes Domino Web site applications and explains how to proactively circumvent potential problems.
Why should there be any differences with an external application when compared to an internal application? On the surface, we are just talking about Lotus Notes users with Web browsers connecting to applications running on a Domino server. While this is true, the differences come about largely due to three reasons:
- Conditions associated with hosting your site on an external ISP
- Legal and compliance requirements for an Internet site
- The need to cater to different Web browser configurations
Before we get started, let's just clarify a few terms that I'll be using:
- A Lotus Notes Domino intranet site refers to a Domino site hosted internally within an organization and used on a local area network (LAN) or wide area network (WAN).
- A Lotus Notes Domino Internet site refers to a Domino site which is publicly available to Internet users and normally hosted by an external Internet Service Provider (ISP).
- Throughout this tutorial, I use the terms application and site interchangeably.
Many Lotus Notes Domino Internet applications are hosted by external hosting providers or ISPs. By moving the hosting to an external provider, you may experience issues that you wouldn't face with internal Lotus Notes Domino applications. These issues may include:
- Performance: You no longer have the same control over the performance of your Lotus Domino servers. This is even more relevant if you are using a shared hosting platform -- i.e., where your Lotus Notes Domino application shares the Domino server with an unknown number of other sites. These other Domino applications may attract heavy usage or use a lot of system resources, which can affect the efficiency of your application. In this environment, the performance of your application may not be consistent or predictable. This can be overcome to a large degree by hosting on a dedicated server. But be aware that dedicated hosting is in a higher price bracket than shared hosting.
- Support: The response time from an ISP's support team may not be the same as you are used to from your internal Lotus Notes Domino administrators. Your relationship with your ISPs support staff will probably not be as close as the one you have with your internal administrators, so you may not be able to call in special favors like you can with your internal Domino administration team.
- Design Updates: The process for updating the design of your Lotus Domino Internet sites may be different and slower than the process for updating your internal intranet sites. Some ISPs require that you sign the Lotus Notes databases using a user ID that they issue as part of their Domino domain. Replicating updates to the ISPs server may require switching to their ID, unless you are able to cross-certify a Lotus Notes user ID or Lotus Domino server ID with the ISP's server. If you are able to cross-certify a Lotus Domino server with the ISP, its server will probably need to be placed in your company's DMZ (demilitarized zone). In many companies, getting a new Lotus Domino server into the DMZ is a lengthier process, requiring a higher level of justification, rather than simply getting a new production server.
Publishing updates to your site
Content for the Internet site may need to be carefully examined for compliance and legal reasons. These requirements vary between companies and between industries. One company I worked for had a legal requirement to make a backup of their Lotus Domino Internet site whenever any updates were published to the site. This backup was effectively a snapshot of the site at a point in time. In case of legal disputes over the information displayed on the site, the customer needed to prove what content was on the site at a particular date and time.
This requirement greatly affected the design of the publishing mechanism and replication procedures. For example, certain Lotus Notes Domino databases needed to be copied before replication could take place (the copying of a replication was automated by a LotusScript agent). Another part of the solution was to have a separate Lotus Notes database for forms that were filled out on the Web site. This form's databases could be replicated freely, because its documents did not make up part of the Web site and never needed to be.
Document approval and versioning
A Lotus Domino intranet can often have simple publishing mechanisms with minimal or no approval cycles. A Lotus Domino Internet site often comes under much greater scrutiny for the reasons mentioned earlier. Content may have to be staged for approval on an internal Lotus Domino server and this can introduce a new set of challenges.
Consider a Web site where each page is represented by a Lotus Notes document. It is quite common to have a Lotus Notes document live on your Internet site and also have an updated version of that document being reviewed internally. You cannot always rely on standard Lotus Notes replication because you need to make sure that a.) the Lotus Notes document being reviewed isn't updated with data from the live document or b.) the live Lotus Notes document isn't updated with data from the document under review before it has been approved. You may need to design your own versioning mechanism into your Domino application to cater to this.
Also consider that the internal staging version of the Domino application needs to display the Lotus Notes document that needs to be reviewed in place of the live documents. But keep in mind that the live Internet application still needs to display the live documents. Therefore, the application needs to cater to displaying different information depending on whether it is running on your internal staging server or on your ISP's Internet server.
Agent execution rights
Depending on your hosting plan, your Lotus Notes Domino agents may only be able to run with restricted rights. This is almost always the case if you are on a shared hosting plan. Restricted rights mean that your agent generally cannot access anything at the operating system level. One common area where this becomes an issue is with a Lotus Notes Domino agent that creates files on the fly -- for example, a custom spreadsheet file -- and then allows the user to download it. This type of agent will not be able to run on an ISP's server that enforces restricted agent execution rights.
Web browser types and versions
Most companies have internally decided on one type and version of Web browser. Applications can then be developed only for that one browser. However, on the Internet there can be many different Web browsers accessing your site, and you may need to cater to more than one. Microsoft Internet Explorer has been the most popular Internet Web browser for several years, but Mozilla Firefox has become increasingly popular since 2006 (see w3schools for Web browser usage statistics going back to 2002).
Lotus Domino Internet applications need to cater to at least these two browsers. Also consider though that there are different versions of each browser and also different versions for different operating systems. For example, Firefox has versions for Microsoft Windows, Linux and Mac.
In theory, all Web browsers should work the same, but in practice they don't. This introduces some areas of concern for Lotus Notes Domino developers:
- HTML tags will almost certainly be rendered differently in different Web browsers.
- HTML errors -- for example, missing end tags -- are handled differently. You should also know that some Web browsers are more forgiving than others.
- Some HTML tags may not be supported by all Web browsers.
- Cascading style sheets (CSS) are implemented differently across different Web browsers, resulting in different appearances on Web pages. One solution is to design different CSS for each Web browser and then test the browser type on page load.
- Fonts used on a Web page may not be available on the client computer.
- Web browsers contain bugs and each browser will have different bugs. You may have to develop workarounds for some of these bugs.
- XML is handled differently across Web browsers. This can be an issue when developing using Ajax, although this can be overcome to a large degree by using a cross-platform Ajax library such as Yahoo UI or Dojo.
It is generally not feasible to try to support all Web browsers. The best strategy is to decide on what browsers and versions that you will support with your Lotus Notes Domino sites. For example, you may determine that 90% of your Web site visitors are using either Internet Explorer or Firefox, so then you might decide to support the two latest versions of Internet Explorer and Firefox. This means that you'll be testing your Web site under those browsers. It doesn't mean that your site won't work under other browsers such as Opera; it just means that you may determine that the effort required to test under other Web browsers is not justified.
You'll note that supporting different Web browsers requires a lot more testing effort. If you test under two versions of two different Web browsers, then you need to test up to four times as much as you would if you were only supporting one Web browser. This needs to be included in the schedule and budget for any Lotus Domino Internet development project.
Web browser settings
Web browser settings are also a very important consideration when designing your Lotus Domino Internet site. The Web browsers used inside most companies will have standardized settings, often as the result of having been installed from a common image. But on the Internet, virtually anything is possible. Any Web browser setting could be turned on or off.
Some of the key settings include:
- Java Support and Java Virtual Machine (JVM) versions. This is especially important if you are using the built-in Domino Java applets to display views.
- ActiveX support is often disabled or restricted.
- Cookies: Some users are suspicious of Web sites that try to place cookies on their computers and therefore do not always accept cookies.
Any Lotus Notes Domino browser application should be developed to support a minimum screen resolution. When it comes to Internet applications, you may need to support a lower resolution than you would for internal intranet applications. This is because many companies update their computers on a more regular basis than home users do. Therefore, companies often have later technology with higher resolutions. Do some research and decide on the resolution that you will develop for before you start coding a Domino Web site.
One of the key differences between Lotus Domino intranet applications and Lotus Domino Internet applications is network speed. Within an organization, you can fairly accurately determine your internal network speed and it is usually pretty reliable. However, the speed of Internet connections for your Web site users can vary dramatically. Some may be on super-fast T1 connections, while others may still be on slow dial-up connections. The speed of your company's internal network is often much faster than the average Internet user's connection.
Internally you might be able to use large components on your Domino Web pages, such as large images, Java applets and the like. However, on the Internet, these may be much slower to load. It's not that you shouldn't use these components on your Domino Internet site, but you do need to consider the user experience that may happen with slower connections.
Security is much more important for Lotus Domino Internet sites than for Lotus Domino intranet applications. Access to Domino intranet applications is often physically restricted -- the users have to be inside your building to use your intranet. On the Internet, these restrictions do not apply. Domino is known for its strong security model and it becomes much more crucial on the Internet.
Remember that Domino Web sites can be accessed by URL commands other than the ones that you use on your Web pages. For example, a hacker could use URL commands to open Lotus Notes databases, forms, views and so on -- even if these URLs are not used in your Web site. So make sure you secure all your design elements.
Also be aware that certain security measures are not foolproof -- they can, in fact, be thwarted. A common practice is to include a $$ViewTemplateDefault that is either blank or displays a message like: "Oops, there was an error loading this page." That way, if any hacker tried to open a view directly, they would get the error page.
Of course, you can still create $$ViewTemplates individually for any views that need them. But this does not necessarily protect the data, because the hacker could always use the ?ReadViewEntries command to get an XML representation of the data in the view.
Note: For a refresher on Domino URL commands, refer to the Domino URL cheat sheet. This is a good starting point to identify security holes that may need plugging.
Search engine optimization (SEO)
Most Internet sites want to be included in search engines queries and rank as high as possible. Therefore, Lotus Notes Domino Internet sites needs to be designed to be as search engine friendly as possible. Obviously, this is not a consideration for internal Lotus Domino intranet sites. Search engine optimization (SEO) is a complex topic in its own right. In order to make your Domino site SEO-friendly you may have to do some or all of the following:
- Add additional fields to store HTML meta tags to documents/pages.
- Include site keywords in Domino URLs.
- Override Domino default URLs with search engine friendly URLs.
- Use different tag names in CSS.
Producing Domino Internet Web sites introduces a set of issues different than those encountered when producing a Domino intranet application. In this tutorial we've identified a number of areas that need to be addressed. None of these issues are insurmountable, but you should consider each one carefully and decide on how you will handle it. By doing this, you will avoid unpleasant development and deployment surprises and ensure a much more successful, safe and functional Lotus Notes Domino Web site.
Related resources from SearchDomino.com:
ABOUT THE AUTHOR:
Ethann Castell is a senior consultant with Caliton Innovations. He has extensive experience across all aspects of Lotus Notes and Domino dating back to 1995. Caliton Innovations develops leading-edge Lotus Notes tools, and provide boutique consulting services. You can contact Caliton Innovations through their Web site at www.Caliton.com.