Java Components

From Direct Project
Jump to navigation Jump to search
  • =agent=
    • Project Report Site (API and documentation)
    • Security and trust agent and interfaces. Implements the security and trust agent specification.
      Interfaces and functional components of interest:
      • NHINDAgent: Main functional class that processes incoming and outgoing messages according to the security and trust agent specification.
      • CertificateResolver: Common interface for looking up certificates.
      • CertificateStore: Abstract class for looking up certificates and managing a certificate store. The library provides some medium specific storage implementation:
        • DNSCertificateStore: Looks up CERT records using DNS resolution. Also implements a configurable coherent cache for to improved performance and reduce network load.
        • KeyStoreCertificateStore: Certificate storage based on Java keystore files.
        • UniformCertificateStore: Memory based store (certificates are provided in code) for applying a set of certificates to all email subjects.
      • TrustAnchorResolver: Common interface for looking up trust anchors.
      • TrustModel: Implements the trust policy between HISPS and HISP addresses.
      • SMIMECryptographer: Implements the SMIME encryption specification for messages.
    • Certificate Generation Tool
  • =gateway=
    • Project Report Site (API and documentation)
    • NHIND Gateway implementations. Provides commonly used bridges between the security and trust agent and the Direct Project network.
      Items of interest:
      • SecurityAndTrustMailet: A simple SMTP bridge that implements the Apache mailet API. Typically deployed with an Apache James mail server.
  • =direct-common=
    • Project Report Site (API and documentation)
    • Library of common interfaces and classes use across direct project Java modules
      • Auditing interface and simple implementations
      • Message monitor interface and REST based implementation
      • REST client base classes
  • =direct-msg-monitor=
    • Project Report Site (API and documentation)
    • Message monitoring service.
      • Tracks messages and generates failure messages if required notifications are not received.
      • Checks for duplicate notifications messages.
  • =dns=
    • Project Report Site (API and documentation)
    • Direct Project DNS server
    • DNS command line configuration tool
  • =direct-policy=
    • Project Report Site (API and documentation)
    • Policy enablement module. Includes:
      • X509 certificate policy enforcement engine
      • Policy editing and validation tools
  • =client=
    • Project Report Site (API and documentation)
  • =xd-common=
  • =xd=
    • Project Report Site (API and documentation)
    • Java based implementation of IHE XDR and XDM (outgoing) Specification. XDR can act as a relay to another XDR implementation or convert to XDM.
      Functional components of interest:
      • XDR: Web service module. Receives an XDR SOAP based message and relays it in either XDR or XDM, depending on the intended recipient. The soap endpoint is of the form [1]
      • DocumentRepositoryAbstract: Main XDR service logic.
      • SMTPMailClient: forms SMTP based XDM message from supplied parameters and directs it to recipient list.
      • RepositorySOAPHandler: SOAP Header parsing, relays header data to service classes.
  • =xdmail=
    • Project Report Site (API and documentation)
    • Java based implementation of "Step Up" process. SMTP is handled using a "mailet: called NHINDMailet and the mail message is converted to XDR and a call is made to the localhost xd service (see above). The jar created by this project should be placed in JAME_HOME/apps/james/SAR-INF/lib. Functional Components of Interest:
      • MimeXDSTransformer: Main Processor, determines format of email and forms XDR call appropriately based on content. This include XDM versus CDA attachments, and CDA in body.
      • NHINDMailet: This is the mailet handler that is called from within the SMTP server. Specifically in the reference implementation the SMTP server is Apache James.
  • =config=
    • ==config-service==
      • Project Report Site (API and documentation)
      • The config-service can be run out-of-the-box.
        Assuming a clean install has already been done (mvn clean install) on the config project:
        cd java/config/config-service
mvn jetty:run
    • ==config-service-client==
      • Project Report Site (API and documentation)
    • ==config-service-jar==
    • ==config-store==
    • ==config-ui==
      • Project Report Site (API and documentation)
      • The config-service can be run out-of-the-box.
        Assuming a clean install has already been done (mvn clean install) on the config project, and the config-service component is running (see above):
        cd java/config/config-ui
mvn jetty:run
  • =assembly - stock=
    • Project Report Site (API and documentation)
    • The stock deployment is an Java assembly based on the Java Reference Implementation Bare Metalproject. It consists of pre-assembled and partly configured instances of core reference implementation components.
      • Apache Tomcat server with configuration services and configuration UI web application
      • Message monitoring
      • DNS services
      • Configuration tools
      • Apache James mail server with pre-configured security and trust agent.