Lotus Domino Implementation and Development: Infrastructure – Present and Future
Domino server is a buffer between the operation system and the application. On the other hand Domino server – consists of the services which support development processing and executing of dynamic, secure applications for Internet, Intranet, or Extranet. Domino server role is to provide functionality both: within and between Domino-applications. Domino services interpret codes and elements of application and execute them over actual operation system. Each service is specially optimized for its specific role when Domino is activated for effective functioning of the whole application.
As far as the application interacting with services, and them in their turn – with operation system – Domino applications are transferable or platform independent. There are two categories of Domino services: applied and system.
Applied services provide functional size to the application. Any application needs user authorization mechanisms, agents execution, views indexing, etc. Considering above mention, such the services are named applied services.
System services provide functionality allowing the applications work in the environment. Dominoqq Catalog keeps information about users and dedicates paths connection between applications. Routing enables applications interconnection. Replication provides applications data synchronization.
Notes Client working with local database (without Domino server) performs dedicated Domino services itself, and so brings Domino functions locally, easing up the server workload. Notes Client does not support the same level of limitation and security as the server does.
Domino applications are client-server applications. Client connects with an application using its own mechanism for procedures call – Notes Remote Procedure Call (NRPC), which transfers client request to Domino application, and returns results.
Domino also supports HTTP protocol, which allows Web browsers access to the applications located on Domino server.
Besides Notes Client and Web browsers Domino supports other clients with additional communication protocols: email clients by SMTP, POP3 and IMAP protocols; operation with news conferences by NNTP protocol; operation with catalogs services by LDAP protocol; also Domino can interact with other applications via OLE and COM technologies, playing both: client and server roles.
Domino databases exist in the form of local files and server-side. Domino database has two areas of functional facilities:
o Notes Storage Facility (NSF) – supports data and design elements of application. Storage facility has notes, which represent data container. Different type of notes allows execute special functions inside database;
o Notes Index Facility (NIF) – design and support lists for data location in application. These sorted lists named views.
Records in Domino database can be created by users (data note type), developers (design note type), and Domino itself, which is utilized for monitoring and controlling the information in database (e.g. ACL, database header).
In principal, all database records are the same (by characteristics). They are on the same level and not divided by hierarchical or by other relation. Records are different only by keeping data and how Domino uses them.
Records are kept in items. Each item is identified by name and keeps value list. Value in one item (if it is a list) is to have the same data type. Items as well keep information for kept data type. This metadata is available for applications and Domino services. Records can keep three main data types: Rich text, Text (plain text) and Number (Domino keeps value of date/time data as numbers.
Described here picture corresponds up to Domino R6 version. In R7, which exists now as beta-version, to keep data DB2 also may be used, as well as traditional NSF mechanism. In this case all notes of Domino database keep in relation DB2 tables which keeping scheme is optimized specially for Domino. Thus, tasks which actually can not be done or execute slowly will be available for operation. These tasks are: keeping of huge data volumes, clearance Domino data for external applications, speeding views executing (this possibility as IBM announces will be realized in the latest R7 versions).
In beta version using of DB2 is possible only for local (not server’s) databases, but it is already the step ahead. Before top IBM managers said that in Domino never will be realized the block records mechanism. In R6 this mechanism is already realized. Possible in later versions of Domino R7 the two-phases transaction mechanism will be implemented, why not?