

|
Designed from the ground up for expansion, EMP is a 100% PURE Java certified application and leverages the JavaBean component model to allow the user and third-party developers to extend its capabilities.
By writing JavaBean based "portals" which plug into EMP, the developer can extend the software's connectivity support and data processing functionality. Two fundamental types of plug-in portals may be created. Source portals connect to a specific server type (such as a POP3 or IMAP) and retrieve (and process) message data into the platform. A source portal may also be a plug-in client app which creates message data from scratch. The other type of portal is the destination portal. Destination portals process and deliver message data (having entered the platform through any source portal) to a specific server type (such as SMTP or a relational database). destination type. As a matter of fact, both the default POP3 source and SMTP destination portal included with every copy of the product, are simply JavaBean based EMP portal plug-ins.
EMP's internal messaging format is based on the SMTP (RFC-821/822) standard. This messaging standard was chosen because it is by far the most prevalent format used to transfer data via the Internet. Although internally EMP is routing and processing SMTP compliant messages, the messages didn't necessarily start out that way(or will they necessarily end up that way). A disk file source portal for instance might read an HTML file from a local directory. This data might then be encapsulated in an SMTP format and routed to various destination portals. One of these destination portals may mail the data to someone across the Internet as an SMTP message with a mime attachment. A second FTP destination portal may take this same HTML content and deposit it onto a website on a distant server.
The plug-in architecture is quite simple. The complexity of EMP including message movement, header parsing, retry structure, and message routing is already in place. The portal plug-in developer simply needs to write the code that communicates with the server.
|