Editor's note: Know a lot about this topic? Want to share your expertise? Participate in the IBM Lotus software wiki program today.
|Lotus Notes and Domino wiki|
"OpenNTF is devoted to getting groups of organizations and individuals all over the world to collaborate on IBM Lotus Notes/Domino applications and release them as open source" - this is the mission statement from OpenNTF.
OpenNTF was launched in 2002 by people from the IBM® Lotus Notes® and Lotus® Domino® community. Since then 60,000 users have registered on OpenNTF to download code. There are more than 250 open source projects and an additional 800 snippets of code.
In January 2009, IBM announced at Lotusphere® that IBM has agreed to sponsor a new collaboration with OpenNTF. IBM intends to offer resources to invigorate the community, donate templates and samples, and make code available under widely accepted open source community license terms. Since this announcement, IBM has worked with the chair of OpenNTF to define a new governance model and intellectual property (IP) model to accomplish these goals.
The new OpenNTF Alliance was established in May 2009. The alliance is a group of equal members with the common goal of providing open source applications based on Lotus Notes and Lotus Domino. The organization will have a minimal bureaucracy, but will put in place processes to efficiently manage the open source content with appropriately rigorous IP policies.
The first members of the Alliance are companies that have expressed interest in delivering open source applications for Lotus Notes/Domino (in alphabetic order):
There are four levels of involvement:
- OpenNTF user. Everyone can be consumers of code from OpenNTF. To use code from the catalog under the Apache license no registration or authentication is required.
- OpenNTF registered user. OpenNTF encourages users to register because registered users can interact with other people on the OpenNTF site. For example, they can report defects, post questions, and so on.
- Members. Any organization can, with the approval of the steering committee, join the OpenNTF Alliance. Members can influence the strategy and direction of OpenNTF and can have a page on the OpenNTF site to describe themselves. Members are expected to contribute to the OpenNTF Alliance; the contribution can take the form of code, in-kind donations, financial contributions, or other contributions as approved by the steering committee. To become an official member, contact the OpenNTF steering committee.
- Contributors. Contributors can contribute code to OpenNTF. Contributors do not have to work for a company who is member of OpenNTF. See the section "Contributors" for how to become a contributor and how to contribute code.
The OpenNTF Alliance is governed by a steering committee. A technical committee owns the technical infrastructure and other technical aspects of OpenNTF. More committees might be defined dynamically when needed. Figure 1 shows the organization of the OpenNTF Alliance.
Figure 1. OpenNTF Alliance
The steering committee is responsible for the strategy of OpenNTF and finances. It has seven members who are elected by all members. No family of companies can have more than one representative on the steering committee. Every year three new members are elected. The chair is elected by the members of this committee.
The technical committee is responsible for the technical direction of the OpenNTF Alliance. It maintains the OpenNTF infrastructure, identifies technical needs of the community, ensures that the IP policy is followed, and more. The steering committee can name people for the technical committee.
The OpenNTF Alliance wants to make the code as easy to reuse as possible for all purposes. The Apache License version 2 (ALv2) is not only the most widely accepted open source license in the commercial world, it permits usage of the code in commercial software and in free and open source software. There are no obligations to donate modified code back to OpenNTF.
OpenNTF strongly recommends the usage of ALv2 for all future projects. Owners of existing code on OpenNTF are encouraged to update to ALv2. The new catalog (see the next section) contains only code under ALv2, to allow consumers to find reusable code on OpenNTF as easily as possible. A common license for all code on OpenNTF is important so that companies don't have to do a legal evaluation of each snippet of code from OpenNTF.
To be able to use ALv2 for code on OpenNTF, due diligence needs to be done. Contributors have to follow an inbound contribution process. They need to ensure that they contribute their own code and have the rights to give OpenNTF extensive rights to distribute the code. The IP (intellectual property), though, is retained by the author of the code.
For the past several years, OpenNTF has maintained a set of projects and a code snippet repository. Projects are mostly full-blown Lotus Notes and Lotus Domino applications (databases or templates). OpenNTF provides tools and an infrastructure to manage these projects. Simpler code snippets can be posted in the code bin. These snippets are not subject to any code management or life-cycle process.
In the past, it has been difficult for consumers to find the right samples and good versions of samples. Because of this difficulty, a new catalog has been added to OpenNTF. The main purposes of the catalog are to provide a list of high-quality samples and to assist consumers in finding samples that best fit the business problem. The purpose is not to replace the project's site or code bin, but instead to provide links to good entries in these repositories that can be added in the catalog. The catalog will not contain all code from OpenNTF. For samples to be listed in the OpenNTF catalog they must:
- Use ALv2 (unless an alternative license is approved by OpenNTF)
- Contain the full source code
- Have been tested at least once by a third person or party
- Provide good descriptions and screen captures
Finally, the owners and originators have to ask the OpenNTF catalog owners to add an entry. For projects, only the last tested releases are included. For controls, only fully compile-able code can go in the catalog.
The catalog is targeted for different types of people:
- Developers, who can benefit from the samples including source code.
- Anyone who wants to understand capabilities and demonstrate the value of Lotus Notes and Lotus Domino. Some of the Web applications and projects can be run live from the catalog. Rich client components can be installed in Lotus Notes using drag-and-drop methods and then run locally.
You can find samples in various ways:
- Using full-text search
- Using views (including user ratings, find by committer, find by most recently added)
- Using tags
Figure 2. The OpenNTF catalog
As shown in figure 2, there are three different types of samples:
- Rich client components
- Reusable controls
Users can take advantage of the rich-client components: widgets and plug-ins that can be installed into the Lotus Notes client by browsing the catalog and dragging and dropping components into Lotus Notes. The components can show up in the Lotus Notes sideshelf, as pop-up windows triggered by live text, or in any other more sophisticated Lotus Notes extensions (for example, menu contributions). For developers, the source code for these components is provided.
For example, there is a new mail notification component in the catalog that can be installed by dragging an icon onto Lotus Notes. The component then shows a configurable new mail notification window as shown in figure 3.
Figure 3. New mail notification window
While the new mail notification component is an Eclipse plug-in (that needs to be provisioned) simpler rich-client components or widgets can also be installed from the catalog easily. For example, the search Lotus Domino Designer wiki widget allows you to search for selected text in Lotus Notes. See figure 4.
Figure 4. The search Lotus Domino Designer wiki widget
For developers and people who want to demonstrate the value of Lotus Notes and Lotus Domino, templates (NTFs) and applications (NSFs or Eclipse features) can demonstrate sophisticated technical capabilities and the value of Lotus Notes and Lotus Domino as application development platforms. The projects are managed outside of this catalog. The catalog contains the latest releases of projects and their descriptions.
Some of the projects that are Web applications can be run online without installing anything. Some projects host their documentation as wikis on OpenNTF. See figure 5.
Figure 5. The XPages wiki
For example, this project is a wiki application based on Lotus Domino XPages.
Figure 6. XPages wiki documentation
You can take advantage of the controls that you can reuse to create custom applications. The source code for these controls can be downloaded and used in Lotus Domino Designer or in any Eclipse-based IDE. Reusable controls can be sets of design elements or Eclipse projects.
For example, this control is a custom XPage control that can be added to other applications for users to log in and display the user name of the authenticated user as shown in figure 7.
Figure 7. The custom XPage control
OpenNTF users can contribute code, but they can also get engaged without contributing code, for example, by participating in a forum. There are two models for managing code with different mechanisms for contributions: managed and legacy. The managed model is recommended, and the legacy model will likely be phased out over time.
- Managed model. The new OpenNTF Alliance makes code as reusable as possible by leveraging the ALv2. OpenNTF strongly recommends that members post all future code under ALv2. The new catalog contains only code under ALv2 to allow consumers to find reusable code on OpenNTF as easily as possible. To be able to use ALv2 for code on OpenNTF, due diligence needs to be done. Contributors have to follow an inbound contribution process.
The alliance members recognize that not all contributions can be made under ALv2. For example, contributions that are based on Eclipse components, licensed under the Eclipse Public License (EPL), might be required to retain the EPL. The alliance will maintain an IP approval mechanism to handle these exceptions.
- Legacy model. In the past, OpenNTF contributors could choose the license that they want or even no license at all. This lack of standards led to a plethora of different licenses being used, and the absence of licenses resulted in legal ambiguity as to the rights downloaders might have to use the code.
Owners of existing projects and snippets from the code bin are now encouraged to recontribute their code under ALv2, but until this task is done the existing code will continue to be hosted under the current license terms.
OpenNTF differentiates between two different types of contributors:
- Committers are special contributors who can actually commit the code.
- Contributors who are not committers can, for example, write fixes for defects and share this code with committers, who can then decide to commit the code.
To be able to use ALv2 for code on OpenNTF, contributors have to follow an inbound contribution process. They need to ensure to the alliance that they have clear rights to make the contribution. This assurance means either that the code must have been written in its entirety by the contributor or that the contributor must have a clear license to include any code acquired from another vendor in the contribution. An example of including code acquired from another vendor in a contribution is the contribution of a modified version of a preexisting ALv2-licensed OpenNTF component. Under the IP policy, contributors give OpenNTF rights for perpetual, worldwide, nonexclusive, no-charge, royalty-free patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the code. The IP ownership is retained by the author of the code.
In particular, to contribute code under ALv2 contributors need to provide this information, and follow these steps:
- All contributors need to be registered.
- If the contributor's employer is an OpenNTF member, send an email to IPfirstname.lastname@example.org with your signature attesting that you will follow the contribution process and guidelines.
- If the contributor's employer is not an OpenNTF member, send an email to IPemail@example.com with your employer's consent that you can contribute code to OpenNTF and your signature attesting that you will follow the contribution process and guidelines.
On OpenNTF there are three different types of code:
- Projects. Projects are the most sophisticated type of code on OpenNTF. In contrast to other types of code, projects have a full project management infrastructure. Review this sample project.
Projects have initial releases and typically have later updates. Projects have committers who are the project owners (also known as chefs) and can optionally have contributors (also known as cooks). Users can submit defects, write testimonials, submit requirements, have discussions with the contributors, and so on.
Project owners can choose a license other than ALv2 only in situations where ALv2 is not appropriate for some reason, such as where a project includes code licensed under a different open source license such as the EPL.
OpenNTF users can create new projects when they are logged in on this page.
- Reusable controls. OpenNTF users can post simpler snippets of code in the OpenNTF code bin. New entries can be created on this page.
All future entries to the catalog will be done under the ALv2. It is recommended that contributors also follow the contribution process (managed model) because only then can these entries show up in the catalog.
- Rich-client components. Rich-client components are stored in an Eclipse update site database on OpenNTF and are all listed in the catalog. Review this sample.
Only contributors who followed the contribution process (managed model) can add rich-client components that can be installed using drag-and-drop in the Lotus Notes client.
To contribute a rich-client component, send an email with the following information to IPfirstname.lastname@example.org; see the OpenNTF site for more details):
- Descriptions: A one-line description plus one page plus one or two screen captures
- Code as ZIP file (with applied ALv2) with the sources as Eclipse projects and the update site
- Meta information such as Committed by, All contributors, and Tested platforms
There are also ways to get engaged with OpenNTF without contributing code.
Anyone can suggest entries to the catalog by sending email to email@example.com with links to the existing projects or code bin entries on OpenNTF. The email should include the following information:
- Descriptions: A one-line description plus one page plus one or two screenshots
- Confirmation that this code works and on which platform
Any authenticated OpenNTF user can rate entries in the catalog and add comments as responses directly in the catalog.
Authenticated OpenNTF users can also create new ideas and vote and comment other ideas using IdeaJam (see here: http://openntf.org/ideajam/ideajam.nsf).
General comments or questions can be posted in the OpenNTF forum.
OpenNTF is always also looking for people to help extend and maintain the OpenNTF technical infrastructure, that is, to update the user interface of the Web site. If you would like to help, contact the authors of this article directly (firstname.lastname@example.org and email@example.com).
The OpenNTF Alliance has defined a new governance and IP model as an alliance to grow the OpenNTF site. OpenNTF is always looking for new corporate members, code contributions, ideas, other offers to help, and more. For the next several weeks or months, the new steering committee will set the direction for the future. Here are some ideas that are under consideration:
- OpenNTF.org site redesign. Some weeks ago OpenNTF added IdeaJam to its site so that the community can vote on how OpenNTF should be improved. The clear message of this initial voting was that the OpenNTF.Org Web site should be improved in various ways. There is a draft plan that describes these extensions. Anyone can comment on these ideas or, even better, help with the implementation.
- "Red" projects. OpenNTF would like to kick off new projects by bringing together various people who have an interest in providing new open-source applications. The idea is to build these initial releases in a short amount of time. OpenNTF wants to extend its infrastructure so that people can work more collaboratively on the projects. For example, OpenNTF is evaluating various options to provide code control systems for Lotus Notes and Lotus Domino design elements as well as for Eclipse Java code.
- Development contests. To motivate more people to contribute code, OpenNTF would like to host development contests. There could be different categories of samples such as simple widgets, sophisticated Web applications, Eclipse applications, and so on. In the optimal case, these contests could be run on a regular basis.
With the new commitment of IBM, OpenNTF has been extended to be a real community effort governed by an alliance of several IT companies in the Lotus Notes and Lotus Domino market. The new IP model based on the Apache license allows maximum reuse of code from OpenNTF for all purposes including usage in commercial applications. With one common or default license model, consumers don't have to evaluate licenses for different OpenNTF projects. The new catalog makes finding high-quality samples much easier than doing so was in the past.
OpenNTF is a community effort. As such, OpenNTF can be successful only if various companies and people from the community help to move it forward. If you want to help in any way use IdeaJam or contact the authors of this article directly (firstname.lastname@example.org and email@example.com).
- Participate in the discussion forum.
Read more about IBM Lotus Notes and Lotus Domino on the developerWorks® product page.
Refer to the OpenNTF Alliance site.
Niklas Heidloff works on the Lotus Notes and Lotus Domino development team for IBM. In the last several years he's been responsible for various application development related topics, including composite applications. Currently he is responsible for invigorating the Lotus Notes and Lotus Domino community by growing the open source effort OpenNTF.Org. Before this he worked on IBM Workplace Client Technology, WebSphere Process Choreographer Workflow, and Lotus Workflow. You can reach Niklas at firstname.lastname@example.org.
Steve Castledine is an Advisory Software Engineer with IBM. He is part of the Software Group, and currently responsible for growing the open source effort on OpenNTF.Org and demonstrating the value of Lotus Domino XPages. Previously Steve worked on projects to deliver Blog, Wiki, Notebook/Personal Journal and other PIM applications. You can reach Steve at email@example.com.