i. X-Remind ii. Betty J Lauer, no collaborators iii. “X-Remind” is a system that will allow subscribers to send e-mail and/or SMS messages in the future. The intent is to allow subscribers to have basic “reminder” functionality available via e-mail or SMS-enabled cell phones. There will be a web interface and a ‘web service’ interface into the system. iv. The “X-Remind” system will have main components: a. A servlet-based series of pages to allow for: i. The ability for users to subscribe to the service ii. The ability for users to manage their profiles iii. The ability for users to add/edit/delete future message deliveries iv. Administration pages to view subscriptions, messages, etc. b. A java-based server that processes incoming XML web service requests (this may be a servlet page; I am not sure yet) c. A server-based set of Java classes that will: i. Run a “scheduler” that will periodically “wake up” and perform required tasks (similar to cron but using Java and XML as the data store) ii. Run a “report generator” that will generate invoices for all subscribers whose profile indicates a monthly bill should be mailed. This will use FO etc. to generate the PDF. d. An XML-based database system in which all related information will be persisted e. A windows-based application that will invoke the web service The general flow for usage of the application will be: a. The user subscribes to the application, providing appropriate payment information (note: this will be a free service; the actual payment processes are for demonstration only). Payment options could include credit card; PayPal; or monthly billing. b. After subscribing, the user receives an email containing the service user name and password c. The user can then use the Web pages or the downloadable Windows application to create new entries; an entry essentially consists of the message receiver, the message content, and WHEN the message should be sent. d. At the appropriate time, the application will then deliver the message (either via e-mail or SMS) e. Administrative capabilities for generating monthly invoices, viewing user subscription rates, etc. will be available for appropriately-entitled users The application will then involve executing a web server/servlet container, a web server/service container, and Java on the server. There will also be a Windows client (possibly in J# for .NET) that may be used to interact with the service. v. As a concerned parent of teenage children, I have provided my children with cell phones, so that I can contact said children when I need to. One situation I have often found myself in, though, is that I would like to remind my children of an event in the future, without having to wait for that time. For example, I would like to be able to remind my children of their midnight curfew without having to be awake at midnight to send the reminder. This system would allow me to do just that; to send either an email message or an SMS message at (for example) 10PM, but request that it be delivered at midnight. I can also then use this application to remind myself of any event via my cell phone; my children’s events; dental appointments; etc. Although I think this would be an interesting project in and of itself, I also want to investigate the feasibility of creating applications like this on the web; therefore, I want to investigate the ability to support applications like this with relatively inexpensive ISP’s, what it would take to provide a billing mechanism to users, and how usage information could be tracked for billing purposes. Also, using XML as the data store seemed like a very interesting technical issue; I have used relational database management systems for years, and I am interested in trying out an XML-based system. By providing a web service interface, and developing a Windows-based client, I hope to cover the entire area covered by what most “real” applications would provide. vi. I will need to have a web server running Tomcat to provide servlet services, Java, several XML-based technologies (fully detailed later), and access to the server in order to run code on the server. I will also need the ability to create Windows-based applications in J# .NET. Hopefully, the entire project will use Java as the programming language, and will use XPath/XQuery, etc. for data manipulation. The technologies that will be used include Apache, Tomcat, JavaMail, Ant, Eclipse, JAXP, Axis, SVG, XSL FO, XSLT, and, of course, Java itself. I will need to learn about SMS and how it works, what APIs are available for it, how different cell phone service providers provide an interface for SMS messages, and whether there is an e-mail interface available. I will also need to learn quite a bit about writing “scheduler” software, and how to create time-driven events happen. As this will be a multi-user application, concurrent access and controlled access to shared resources is something I need to research. My general plan of attack is to get the XML database system running, and then learn about how to use it properly, and then to define the schema I will need to accomplish the objectives of the project. After that, I will begin developing the registration process pages. Then, I will create the page where a new message is defined and stored. At that point, I should be able to begin working on the "background task" that does the scheduling / message sending component. I can then create the web service, and finally, the Windows client application. During all of this, I will be monitoring what I need to use, and checking to see if it is something that can easily be deployed to existing ISP's. vii. One of my goals with this project, beyond using XML and Java, is to investigate ways to “deploy” XML and Java applications at existing ISPs. This would involve determining which ISP’s provide access to which technologies, overall cost, etc. I also want to determine if there is a simple framework (either available today or that could be written [by me]) that would allow easy deployment of applications in an ISP. Does this seem like a reasonable goal, even though it is not directly related to Java itself? Essentially, what I want to determine is this: can I, with relative ease and low cost, deploy applications on the Internet that could be used to generate income? Another goal is to learn about SMS; any information available on SMS that you could provide me would be appreciated. I also want to investigate the ability to “charge” people via PayPal; any information on PayPal API’s would also be appreciated.