Challenge Overview
Overall Requirements
NASA needs to integrate the ION Disruption Tolerant Networking (DTN) implementation of Bundle Protocol (BP) with Microsoft Outlook and Microsoft Exchange Server to support the transfer of astronaut email to/from the International Space Station (ISS).
Microsoft Exchange Server currently supports RPC over HTTP(s) protocol (a.k.a. Outlook Anywhere - http://msdn.microsoft.com/en-us/library/cc243950.aspx). TopCoder will architect and assemble a pair of gateways that will be responsible for bundling the RPC over HTTP payload and send them using ION-DTN Bundle Protocol.
One gateway is located on the ISS and the other is located on earth. The space gateway will be developed as an HTTP module and the ground gateway as a daemon process. Both run on Linux. The picture bellow presents the technology stack:
This assembly will develop the mod_proxy_msrpch_dtn and its callbacks. You will not code the asynchronous client, nor any ION-DTN code at this moment.
Final Submission Guidelines
Competition Task Overview
A complete list of deliverables can be found in the TopCoder Assembly competition Tutorial at:
http://apps.topcoder.com/wiki/display/tc/Assembly+Competition+Tutorials
Note: Please read the whole Application Design Specification first. All the details not mentioned in this specification are provided in that document.
Scope
This assembly is responsible for implement all new code and changes to existing code shown on "MS-RPC over HTTP Proxy Class Diagram" packages:
- msrpch_common
- mod_proxy_msrpch
- lighttpd changes
async_client is out of scope.
Implementation details are provided at TCUML documentations.
To develop and test this assembly, you will need:
- Instead of using the asynchronous client callbacks, you will implement callbacks to dump the request in a readable to standard output (for debugging) and send back a constant HTTP result (a simple welcome page).
- The request callback will dump the request and call the response callback with the constant result.
- Setup Lighthttpd in Linux environment with the developed proxy module. We can provide Linux AWS instances per request.
- Setup Lighthttpd SSL and create certificates:
- http://www.cyberciti.biz/tips/how-to-install-ssl-lighttpd-https-configuration.html
- http://www.digicert.com/ssl-certificate-installation-lighttpd.htm
- Once you create your certificate on linux, you will need to register them on windows so Outlook accepts using the self-signed HTTPs certificate: http://blogs.technet.com/b/sbs/archive/2007/04/10/installing-a-self-signed-certificate-as-a-trusted-root-ca-in-windows-vista.aspx
- PLEASE: do not let SSL block your progress. Let me know as soon as possible so we can assist you.
- The assembly is complete if one is able to send and receive a simple HTTP(s) request and receive back the hardcoded response.
- You should be able to develop this in a Linux OS without any Amazon VMs, but if needed, you may request a VM by email to romanoTC: romanotc@copilots.topcoder.com.
Deliverables
- Source code and configuration files.
- Deployment guide to configure and verify the application.
Technology overview
- Linux (Redhat or Ubuntu)
- C
- HTTP 1.0/1.1
- lighttpd 1.4.35
- log4c 1.2.4