Lotus Domino Designer 8: Web Agents and Web Services

Descripción

La tarea HTTP del servidor Domino es extremadamente versátil. Además de traducir HTML, también ejecuta varios tipos de elementos de diseño codificados en Java o LotusScript:

  • Agentes ejecutados en los eventos WebQueryOpen (WQO) y WebQuerySave (WQS)
  • Agentes ejecutados mediante el comando URL ?OpenAgent
  • Servicios web que se ejecutan en respuesta a un mensaje SOAP

Este curso se centra en el desarrollo y seguridad de esos elementos de diseño. Se aprenderá también a depurar y ejecutar técnicas de gestión de errores en tiempo de ejecución.

Este curso incluye también los requerimientos de Servicios web de cliente y enseña cómo se puede codificar un Servicio Web sencillo haciendo uso de un
toolkit SOAP.

Objetivos

En este curso, se aprende cómo:

  • Describir las diferencias y aplicaciones de agentes ejecutados desde los eventos WQO y WQS de un formulario y aquellos ejecutados mediante el comando de URL ?OpenAgent.
  • Codificar agentes ejecutados en el evento WQO para trabajar en el contexto del documento así como realizar búsquedas en otras bases de datos.
  • Ejecutar, condicionalmente, agentes en el evento WQO dependiendo del estado del documento.
  • Definir las medidas de seguridad del servidor, la base de datos y el agente para asegurar que los agentes se ejecutan en el contexto adecuado.
  • Codificar agentes ejecutados en el evento WQS de un formulario y traducir y validar la entrada del usuario para devolver información adecuada a los usuarios y redirigirlos a los distintos puntos de la aplicación.
  • Codificar agentes ejecutados mediante el comando URL ?OpenAgent para realizar acciones y producir informes desde información almacenada en Domino, y aprender diferentes maneras de que el navegador pueda ejecutar el comando ?OpenAgent
  • Depurar el código del agente y añadir rutinas de gestión de errores en tiempo de ejecución así como analizar los errores específicos de los agentes en el navegador.
  • Definir los componentes clave y los protocolos de la tecnología de los servicios Web.
  • Utilizar el explorador de Servicios Web para realizar las pruebas básicas de un Servicio Web.
  • Describir las diferencias entre los distintos modelos de programación de Servicios Web y formatos de mensaje SOAP en relación a las propiedades de los elementos de diseño de Servicios Web.
  • Codificar Servicios Web haciendo uso de LotusScript que acepten como parámetros tipos de datos complejos.
  • Codificar un cliente de Servicios Web sencillo que se ejecute desde un navegador y que haga uso de un toolkit de SOAP.
  • Importar un WSDL para crear una biblioteca de LotusScript que pueda ser utilizada por Notes o Domino para consumir un Servicio Web.
  • Depurar el código de un proveedor y de un cliente de Servicios Web y gestionar los errores en tiempo de ejecución así como los errores de SOAP
  • Entender la depuración remota, el Logging de Agentes, Profiling, y las características de las sondas de DDM para analizar completamente el rendimiento y la operatividad de los Servicios Web

Audiencia

Este curso está diseñado para programadores de Notes conocedores de Domino Designer 8. Asume que el alumno tiene:

  • experiencia en la utilización del entorno de desarrollo de Domino Designer, incluyendo diseño de formularios y vistas, así como en la utilización de cajas de propiedades y cómo configurar la LCA
  • experiencia equivalente a los conceptos incluidos en los cursos Domino Designer 8: Basic Notes Applicationsy Domino Designer 8: Basic Browser Applications
  • conocimiento de las tecnologías Web, incluyendo servidores, navegadores, HTML, CSS y JavaScript

Aunque no es necesario ser un experto, deben disponerse conocimientos de LotusScript y de los objetos de Notes a nivel de trabajo.

Duración

La duración del curso es de 2 jornadas

Esquema

Topic 1: Introduction
Agents
Web Services
What follows
Exercise: Create demonstration database


Topic 2: WebQueryOpen Event Agents

Form computation sequence
Step 1: Create the Agent and set its properties
Step 2: Code the Agent
Step 3: Call the Agent from the Forms WebQueryOpen event
Agent authority
Step 4: Set the Agent properties Security tab options
Who can run the Agent
Database ACL
Exercise: Set default email address in Review form
Agents and document access Fields
Prevent Agents from being run out of context
Exercise: Prevent Agents from being run out of context


Topic 3: WebQuerySave Event Agents

Form computation sequence
$$Return or WebQuerySave event?
Create WebQuerySave Agent
Print statements
When Print statements are ignored
Stop document from being saved
Exercise: Part Form validation


Topic 4: Web Agents

Create a Web Agent
Run Web Agents
Agent context versus document context
Agent ouput
Pass argument(s) to a Web Agent
Parse URL arguments
@Command([RunAgent])
Exercise: Browser-based reporting
Example: I forgot my password Web Agent
Example: Download view in Excel Web Agent


Topic 5: Web Agent Error Handling

WebQueryOpen event Agents
WebQueryClose event Agents and Web Agents
Runtime error handling
Web server response codes
Common 4xx and 5xx response codes
Agent-specific browser errors
HTTP server performance and Agents run by browsers


Topic 6: Web Services Concepts

Web Services basics
Definitions
Domino 8 and Web Services
What Web Services are publicly available?
Testing a Web Service
Exercise: Web Services Explorer
SOAP programming models and formats
Exercise: Multiple, detailed stock quotes
Web Services versus Web Agents
Web Services clients


Topic 7: Web Service Properties

Domino-based Web Service from Web Services Explorer
Create Web Service design element
Import WSDL file
Web Service properties and the WSDL
Show WSDL
Basics tab
Advanced tab
Security tab
Alternative security model
Get Domino Web Service information from a browser
Domino-based Web Service from browser


Topic 8: Web Service Programmers Pane

Code the operations
Web Service context
Resulting WSDL
WSDL from the client perspective
Greeting Web Service code
Simple data types for request and response parameters
Explicit data type conversion
Multiple request parameters
Complex data types
Web Service accepts an array as parameter
Web Service responds with array


Topic 9: Consume Web Services

PocketSOAP Examples page
VBScript
PocketSOAP
Greetings from Domino button
Exercise: Understand lookup examples
Send array to Web Service
Receive array from Web Service
Class objects
Exercise: Save changes to a Part
Notes, LotusScript, and PocketSOAP
Notes/Domino native Web Service consumers


Topic 10: Web Service Error Handling

SOAP faults
SOAP Fault Example page
Web Service-side error handling
Client-side error handling of VBScript errors
Web Service system-generated SOAP faults
Web Service developer-defined SOAP faults
Client-side error handling of a SOAP fault


Topic 11: Remote Debugging, Logging, and Profiling

Remote LotusScript Debugger
Java debugger support
Domino Server Log
Private Agent log
Agent Log database
Agent performance and Agent Profiling
DDM Application Probes