CIS 505: Software Systems



Similar documents
Steps for: POP (Post Office Protocol) and IMAP (Internet Message Access Protocol) setup on MAC Platforms

Before starting to use the new system you will need to know the password to your e-wire account.

1. Open Thunderbird. If the Import Wizard window opens, select Don t import anything and click Next and go to step 3.

Setting up your POP3 Mail Client (such as Outlook)

How to setup your iphone client

Initial Setup of Mozilla Thunderbird with IMAP for Windows 7

Update Instructions

Neoteris IVE Integration Guide

SCOoffice Mail Connector For Microsoft Outlook. Installation Guide Outlook 2002

Webmail. Setting up your account

How to Setup your Account -Apple Mail for Mac OS X 1- Open Mail

Neoteris IVE Integration Guide

Steps for POP (Post Office Protocol) and IMAP (Internet Message Access Protocol) setup on Mac Platforms

Initial Setup of Microsoft Outlook 2011 with IMAP for OS X Lion

Using MailStore to Archive MDaemon

WineWeb Account Services

How to Setup OSX Mail to POP an Exchange Account

How to move to your account with MAC Mail

Outlook Express POP Instructions - Bloomsburg University Students

1. Open the preferences screen by opening the Mail menu and selecting Preferences...

ing from The E2 Shop System address Server Name Server Port, Encryption Protocol, Encryption Type, SMTP User ID SMTP Password

User Guide. Please visit the Helpdesk website for more information:

Update Instructions

Mail Programs. Manual

PineApp Archive-Secure Quick Installation Guide:

Initial Setup of Mozilla Thunderbird with IMAP for OS X Lion

How to configure your client

BlackBerry Internet Service Using the Browser on Your BlackBerry Smartphone Version: 2.8

1 Introduction: Network Applications

2- Electronic Mail (SMTP), File Transfer (FTP), & Remote Logging (TELNET)

Outlook Express. Make Changes in Red: Open up Outlook Express. From the Menu Bar. Tools to Accounts - Click on Mail Tab.

User s Manual. Management Software for ATS

Initial Setup of Mac Mail with IMAP for OS X Lion

Update Instructions

Collax Mail Server. Howto. This howto describes the setup of a Collax server as mail server.

MOC 5047B: Intro to Installing & Managing Microsoft Exchange Server 2007 SP1

Paladin Computers Privacy Policy Last Updated on April 26, 2006

Initial Setup of Microsoft Outlook with Google Apps Sync for Windows 7. Initial Setup of Microsoft Outlook with Google Apps Sync for Windows 7

SENDING WITH ENTRAPASS CORPORATE EDITION

Kerio Connect. Kerio 4D Migration. Kerio Technologies

Exchange Outlook Profile/POP/IMAP/SMTP Setup Guide

IRMACS Setup. Your IRMACS is available internally by the IMAP protocol. The server settings used are:

Update Instructions

Configuring Your Client: Eudora 5.x. Quick Reference

Instructions. Outlook (Windows) Mail (Mac) Webmail Windows Live Mail iphone 4, 4S, 5, 5c, 5s Samsung Galaxy S4 BlackBerry

Business Internet service from Bell User Guide

White Paper. Installation and Configuration of Fabasoft Folio IMAP Service. Fabasoft Folio 2015 Update Rollup 3

Scan to Quick Setup Guide

CHAPTER 1 Exploring Mobile Devices with IMail 1

Configuring Your Client: Eudora 5.x

Standard Mailbox Software Setup Guide

Android: Configure IMAP/POP/SMTP

How to Migrate to MailEnable using the Migration Console

Outlook Express. Make Changes in Red: Open up Outlook Express. From the Menu Bar. Tools to Accounts - Click on. User Information

Talk Internet User Guides Controlgate Administrative User Guide

Windows Mail POP Instructions - Bloomsburg University Students

NeoMail Guide. Neotel (Pty) Ltd

Domains Help Documentation This document was auto-created from web content and is subject to change at any time. Copyright (c) 2016 SmarterTools Inc.

StarterPlus Mailbox Software Setup Guide

DKIM Enabled Two Factor Authenticated Secure Mail Client

BOTTOM UP THINKING SETUP INSTRUCTIONS. Unique businesses require unique solutions CLIENT GUIDE

Integrated Migration Tool

How To Use Gfi Mailarchiver On A Pc Or Macbook With Gfi From A Windows 7.5 (Windows 7) On A Microsoft Mail Server On A Gfi Server On An Ipod Or Gfi.Org (

SETUP INSTRUCTIONS

Nokia for Business. Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation

3. On the Accounts wizard window, select Add a new account, and then click Next.

Outlook Express. Make Changes in Red: Open up Outlook Express. From the Menu Bar. Tools to Accounts - Click on Mail Tab.

Configuring, Customizing, and Troubleshooting Outlook Express

XGENPLUS SECURITY FEATURES...

Open Thunderbird. To set up an account in Thunderbird, from the Tools menu select Account Settings; choose account; then click Next.

SNMP Web Management. User s Manual For SNMP Web Card/Box

Sonian Getting Started Guide October 2008

POP3 Connector for Exchange - Configuration

Device Log Export ENGLISH

SMTPSWITCH MAILER V6 FEATURES

Toll Free: International:

Client configuration and migration Guide Setting up Thunderbird 3.1

Nokia E90 Communicator support

Transitioning Your School Account

Version 1.7. Inbound Integration (POP3 and IMAP) Installation, Configuration and User Guide. Last updated October 2011

RoomWizard Synchronization Software Manual Installation Instructions

Web Hosting Getting Started Guide

Getting Started Configuring Your Computer Network Settings

Configuring an Client to Connect to CASS Mail Servers

USING MS OUTLOOK. Microsoft Outlook

MICROSOFT OFFICE 365 MIGRATION 2013/05/13

Configuring Your Client: Outlook Express. Quick Reference

Basic Exchange Setup Guide

FTP Use. Internal NPS FTP site instructions using Internet Explorer:

How To Set Up Your

Administering the Web Server (IIS) Role of Windows Server

Wayland Student & Adjunct Account Instructions

S-911 Bracelet Locator Protocol 1.0 Analyzer. User Manual

Transcription:

CIS 505 Project 1 CIS 505: Software Systems Project: MMS Mail System (MMSys) Design Document: Due on 28th March 2007 before class Source Code: Due on 20th April 2007 by 5 PM 1 Outline For this project, you are required to implement an email client-server system called mms mail system. This system comprises of multiple email clients and servers. Multiple servers are required to support a distributed email system, wherein client accounts are stored in a distributed manner among the various servers. However, for any particular client, all its information (username, password, mailbox) is assumed to be stored on a single server. Initially, each client connects to one of the email servers and opens a new account. Thereafter, it can send and receive emails to/from other clients in the system. For this purpose, clients must use the SMTP (RFC2821 http://www.ietf.org/rfc/rfc2821.txt) protocol to send emails and the POP3 (RFC1939 http://www.ietf.org/rfc/rfc1939.txt) protocol to receive emails. You are not required to implement all the commands in these protocols. Only those commands that ensure the basic functionality (see Section 2) must be implemented. Since these protocols do not support new client creation, you are free to design your own protocol for the same. Note that to send and receive emails in this system, a client may connect to a server different from the one on which its account was created. Each email server must satisfy all the requests that a client makes. In addition, it must support multiple client connections at the same time. In our system, we assume that each email server is replicated once to provide fault tolerance. One of them will be the primary server and the other will be the backup server. You are required to implement a synchronization protocol for the user accounts in the replicated servers. It is very important to ensure that this protocol is transparent to clients. Clients are aware of the presence of replicas (this is required so that a client can connect to a backup in case a primary does not respond), but they are not responsible to ensure synchronization between the replicas. The mms mail system must also support distributed servers. Here, we assume that each server (primary or backup) is aware of all the other servers in the system. If a client request cannot be satisfied by a server, then it must communicate with the other servers in the system and satisfy the client request. Note that this communication can be done using SMTP and POP3 protocols. For example, Figure 1 shows a system comprising of three primary servers S 1, S 2 and S 3 and two clients C 1 and C 2. Assume that client C 1 has an account on server S 1 and client C 2 has an account on server S 2. Now let C 1 send an email to C 2 by connecting to server S 3. For this purpose, C 1 will first authenticate itself. S 3 will connect to server S 1 and verify the authenticity of client C 1. Then, S 3 will receive the email from C 1 and send it to S 2 so that it can be queued in C 2 s mailbox. Similarly, when C 2 sends a request to server S 3 to read emails, S 3 obtains C 2 s emails from S 2 and sends them to C 2. Although not shown in the figure, each of the primary servers also has a backup which must be synchronized with the primary.

CIS 505 Project 2 S 1 has account of C 1 S 1 S 3 verifies authenticity of C 1 C 2 C 2 requests emails S 3 C 1 sends an email to C 2 S 3 sends email for C 2 to S 2 S3 retrieves emails for C 2 from S 2 C 1 S 2 S 2 has account of C 2 Figure 1: MMSys 2 Snapshot of Project Requirements 2.1 Design Document Overall software design of the mms mail system Describe the various components and their interactions using figures. Justify your design choices List and justify all the assumptions that you make Give a CSP Model of your synchronization protocol for replicated servers. You can use abstractions to make it readable Describe the advantages and disadvantages of your synchronization protocol 2.2 Email Client Every client must provide the following functionalities. Sending a message to an account supported by the email servers Listing messages in inbox or mail-folders Reading a message (from inbox or folder)

CIS 505 Project 3 Deleting a message (from inbox or folder) Creating a folder Moving a message to a folder Sending a request to create a new account Client can be a simple command line GUI or open source software. Clients must use SMTP and POP3 protocols for sending and receiving emails, respectively. You are free to design your own protocol for creation of new client accounts. 2.3 Email Server Servers must support the following functionalities. Fulfillment of all client requests Management of client accounts including creation of new accounts Client username verification prior to sending emails from the client Client username and password verification prior to transferring emails from the client s mailbox to the client Support for multiple active clients (clients of different users) Support for distributed servers Servers can manage mailboxes using either the native file system or any database system. 2.4 Server Fault Tolerance You must provide fault tolerance for servers using replication. Assume every server has one replica. One of them will be the primary server and the other will be the backup server. You must implement a synchronization protocol to ensure that the user accounts in the primary and backup are synchronized. 2.5 Distributed Servers You must implement a distributed server system. Client mailboxes and their account information must be distributed over multiple servers. Assume that for a particular client, its mailbox and account information are located on the same server. The distributed server system must be transparent to clients. In other words, a client can send and receive emails to/from any of the servers, even to/from ones which do not have its account information. The servers must communicate with each other using SMTP and POP3 protocols to satisfy client requests. For this purpose, you can assume that servers are aware of all the other servers in the network. Your implementation must be correct under all of the following situations. Client C1 sends an email to client C2 by connecting to server S1 and,

CIS 505 Project 4 S1 has account information for both C1 and C2 S1 has account information for C1 but not for C2 S1 has account information for C2 but not for C1 S1 does not have account information for either C1 or C2 Client C1 receives emails by connecting to server S1 and, S1 has account information for C1 S1 does not have account information for C1 3 Guidelines 3.1 Program Inputs Your email server must be started with at least the following command line inputs. IP addresses and port numbers of all the other primary and backup servers in the system Your email client must be started with at least the following command line inputs IP addresses and port numbers of the primary and backup servers to which this client should connect to create a new account. IP addresses and port numbers of the primary and backup servers to which this client should connect to send and receive emails. You are free to have other command line inputs in addition to the ones mentioned above. 3.2 Assignment Requirements The project consists of the following three parts: Design Document: This document is due on 28th March 2007 before class. Source Code: The program may be written in C, C# or Java. Make sure to include a README that explains how to run your implementation. This portion of the project is due on 20th April 2007 by 5 PM. Demo: Each project group is required to give a demonstration of their mail system. Details regarding date and time will follow. 3.3 Project Groups You can form a group of 2 or 3 people for this project. You can decide on the groups amongst yourselves and inform the TA s through email (arney@cis.upenn.edu, arvinde@cis.upenn.edu). Please send only one email per group. In the email include the names and eniac login ids of all your group members. If anyone is not able to form a group then they can either use the newsgroup or email the TA s for help. This process should be completed on or before 19th March 2007. The TA s will then assign a number to each group.

CIS 505 Project 5 3.4 Testing/Evaluation Every project group must use SMTP and POP3 protocols for sending and receiving emails, respectively. Furthermore, client authentication must also be based on these protocols. However, each group is free to implement their own protocols for new client creation and for ensuring synchronization between server replicas. We will be cross testing your implementation between groups. In other words, we will test the client code of one group with the server code of another and vice versa. For this purpose, your email servers must have certain client accounts by default, i.e., they must already be present in one of your servers. These accounts are instructor@mmsys.upenn.edu, ta@mmsys.upenn.edu and cis505@mmsys.upenn.edu. Also set their passwords to CIS505. This is required for cross testing because we expect each group s new client creation protocol to be different. 3.5 Turning in The assignment files (design document and source code) must be submitted as a zipped file to blackboard. You must submit to the digital drop box, under tools. Make sure to SEND the file to the dropbox. Merely adding it to the dropbox DOES NOT submit the files. Please make sure to name your design document and source code submissions as groupx design and groupx source, respectively, where X denotes your group number.