¦æ°Êºô¸ô¤Wªº¤@­Ó°ª®Ä²vÀɮרt²Î

 

¬ã¨s¥Í¡G¨H¦¨¹F

«ü¾É±Ð±Â¡G§d¼Ý¦¨

 

 

°ê¥ß¥æ³q¤j¾Ç ¸ê°T¤uµ{¬ã¨s©Ò

 

 

ºK­n

 

 

¦bºô¸ô¨Ï¥Î¤é¯q´¶¹Mªº¤µ¤Ñ¡Aºô¸ô¶Ç¿éªºÃ­©w©Ê±`±`Ãö«YµÛºô¸ôÀ³¥Îµ{¦¡¦b¾ã­Óºô¸ô¹Bºâ¹Lµ{¤¤ªº®Ä²v©Ê»P¥¿½T©Ê¡C¦b¥H©¹¡Aµ{¦¡³]­pªÌ¥²¶·¦Û¦æ³B²zºô¸ô¹Bºâ¹Lµ{¤¤©Ò¥i¯àµo¥Íªº¦UºØ°ÝÃD¡A³o©¹©¹±aµ¹µ{¦¡³]­pªÌ³\¦h¤£¥²­nªº­t¾á¡AµLªk¥þ¤ß±Mª`©ó§ïµ½À³¥Îµ{¦¡¥»¨­ªº¥\¯à¡C

 

¦b¥»½×¤å¤¤¡A§Ú­Ì³]­p¤F¤@­ÓµêÀÀªººô¸ôÀɮרt²Î¡AÀ³¥Îµ{¦¡¥i¥H§â­ì¨Óºô¸ô¦s¨úªº°Ê§@³£¨Ì¾Ú¤@©wªº³W«h¡AÂন¬°¹ï§Ú­ÌÀɮרt²Îªº¦s¨ú­n¨D¡A§Q¥Î¨t²Î©Ò´£¨ÑªºÀ³¥Îµ{¦¡¤¶­±¡AÀ³¥Îµ{¦¡¤£»Ý¹ïºô¸ôª¬ªp§@¥ô¦ó¯S®í³B²z¡C°£¤F²¤Æºô¸ô¦s¨úªº°Ê§@¤§¥~¡A§Ú­Ìªº¨t²Î¦P®É´£¨Ñ¤F§Ö¨ú¡BÀ£ÁY¡B­«¶Ç¡B°»¿ùµ¥¥\¯à¡A´£¨Ñºô¸ôÀ³¥Îµ{¦¡¤@­Ó°ª®Ä²v»P°ªÃ­©w©Êªº¹Bºâ¥­¥x¡C¦P®É§Ú­Ì¤]¦b¦¹¥­¥x¤W«Ø¥ß¤F¹q¤l¶l¥ó»PÀÉ®×¶Ç¿é¤l¨t²Î¡A¨Ó¶i¤@¨BÃÒ©ú¨t²Î¤À¼h¬[ºc¤§¦X²z©Ê»P¥i¦æ©Ê¡C


An Efficient File System for Mobile Networking

 

Student: Cheng-Da Shen

Advisor: I-Chen Wu

 

 

Institute of Computer Science and Information Engineering

National Chiao Tung University

 

 

Abstract

 

 

As the Internet grows rapidly, the stability of network transmission is now an important issue to network applications. Formerly, programmers must take care of the problems themselves in the network computing, but this always gives them too much unnecessary loads. Programmers can¡¦t just concentrate on improving the functionality of applications.

 

In this thesis, we develop a virtual network file system to simplify the development of network applications. By calling the API supplied by our system, applications can simply do a file system access to achieve the request of network access. Programmers could ignore most problems while networking. We offer an efficient and stable computing platform with the functionality of caching, compression, re-transmission, and fault-tolerance. We also build up E-Mail and FTP sub-systems at the top of our platform to demonstrate the correctness and feasibility of our layered system architecture.



¥Ø¿ý

¤¤¤åºK­n........................................................................................................................ i

­^¤åºK­n....................................................................................................................... ii

»xÁÂ.............................................................................................................................. iii

¥Ø¿ý.............................................................................................................................. iv

¹Ïªí¥Ø¿ý...................................................................................................................... vi

²Ä¤@³¹        ºü½×........................................................................................................... 1

1.1           ¬ã¨s°Ê¾÷................................................................................................... 1

1.2           ­I´º»¡©ú................................................................................................... 1

1.3           ¬ÛÃö¬ã¨s................................................................................................... 2

1.4           ¨t²Î²¤¶................................................................................................... 3

²Ä¤G³¹        ²{¦³¨t²Î¤§¥\¯à¦^ÅU............................................................................... 5

2.1           ¹q¤l¶l¥ó¨t²Î¡]E-Mail¡^...................................................................... 5

2.1.1                «H¥ó¶Ç°eªº¤è¦¡........................................................................... 5

2.1.2                ª½±µ¦b¶l¥ó¦øªA¾¹¤WŪ¨ú«H¥ó................................................... 7

2.1.3                ¸g¥ÑPOP3/IMAP4¨ó©w¨ÓŪ¨ú»·ºÝ«H¥ó................................... 8

2.1.4                «H¥ó³B²z¤è¦¡¤ñ¸û...................................................................... 11

2.2           ÀÉ®×¶Ç¿é¨t²Î¡]FTP¡^¤§Â²­z»P¤ÀªR................................................... 13

2.3           ²{¦³¨t²Î¤§§ï¶i»Ý¨D............................................................................. 15

²Ä¤T³¹        ¨t²Î¬[ºc................................................................................................. 16

3.1           ¨t²Î¥\¯à·§­z......................................................................................... 16

3.2           ¨t²Î¬[ºc................................................................................................. 17

3.2.1                ²Ä¤@¼h ¡V µêÀÀÀɮרt²Î (GFS)............................................... 18

3.2.2                ²Ä¤G¼h ¡V ¯S©wºô¸ôªA°È¥N²zªÌ (Service Proxy)..................... 20

3.3           ¹q¤l¶l¥ó¤l¨t²Î..................................................................................... 21

3.4           ºô¸ô¶Ç¿éªº§å¦¸³B²z»P°»¿ù¯à¤O......................................................... 22

3.5           ÀÉ®×¶Ç¿é¤l¨t²Î¡]FTP Proxy¡^......................................................... 24

²Ä¥|³¹        ¹ê§@......................................................................................................... 26

4.1           ¨t²Î¹ê§@Àô¹Ò......................................................................................... 26

4.2           µ{¦¡¬[ºc»¡©ú......................................................................................... 27

4.3           GFS¤§Àɮצs¨ú¥\¯à............................................................................. 29

4.4           GFS¤§°T®§¶Ç»¼¥\¯à............................................................................. 31

4.5           Mail Client Proxy»PÀ³¥Îµ{¦¡¶¡ªº¤¶­±...................................... 32

4.6           Mail Proxy¤§ÀɮשR¦W³W«h............................................................. 37

4.7           FTP Proxy¤§ÀɮשR¦W³W«h................................................................ 39

²Ä¤­³¹        ¦¨ªG......................................................................................................... 40

5.1           ¨t²Î¬yµ{»¡©ú......................................................................................... 40

5.2           ¨t²Î¥\¯àµe­±®i¥Ü................................................................................. 41

²Ä¤»³¹        µ²½×......................................................................................................... 47

°Ñ¦Ò¤åÄm..................................................................................................................... 48

 


¹Ïªí¥Ø¿ý

¹Ï 1                ............................................................................................. ¨t²Î¬[ºc¹Ï..... 4

¹Ï 2                ..................................................................................... SMTP¶Ç¿é¬[ºc..... 6

¹Ï 3                ..................................................................... ¦b«H¥ó¦øªA¾¹¤WŪ¨ú«H¥ó..... 7

¹Ï 4                ...................................................................... ¸gPOP3/IMAP³B²z«H¥ó..... 8

¹Ï 5                .................................................................... ¨Ï¥ÎOutlookŪ¨ú«H¥ó..... 9

¹Ï 6                ............................................................................. ­­¨î¥i¤U¸ü«H¥ó¤j¤p..... 10

¹Ï 7                .................................................................... FTP Transfer Model..... 13

¹Ï 8                .................................................................... »·ºÝ±±¨î¨âFTP¤¬¶Ç¸ê®Æ..... 14

¹Ï 9                ............................................................................. ª½±µ»P¶¡±µ¶Ç°eÀÉ®×..... 14

¹Ï 10              ¨t²Î¤À¼h¬[ºc¹Ï................................................................................. 17

¹Ï 11              GFS¨t²Î¬[ºc¹Ï................................................................................ 18

¹Ï 12              GFS¨t²Î¥\¯à¥Ü·N............................................................................ 19

¹Ï 13              ¯S©wªA°È»PGFS¤§³s±µ................................................................... 20

¹Ï 14              GFS¨t²Îªº§Ö¨ú¥\¯à........................................................................ 21

¹Ï 15              GFS°T®§¶Ç¿é¬[ºc............................................................................ 23

¹Ï 16              ¶¡±µÀÉ®×¶Ç¿é¬[ºc............................................................................. 24

¹Ï 17              GFS°õ¦æµe­±.................................................................................... 28

¹Ï 18              Service Proxy»PGFS¤§¶¡ªº¤¶­±.......................................... 31

¹Ï 19              ¶l¥ó¤l¨t²Î¥Ø¿ý¬[ºc......................................................................... 38

¹Ï 20              ÀÉ®×¶Ç¿é¤l¨t²Î¥Ø¿ý¬[ºc................................................................. 39

¹Ï 21              µn¤J¦øªA¾¹³]©w................................................................................. 42

¹Ï 22              Mail Explorer°õ¦æµe­±............................................................. 43

¹Ï 23              «Ø¥ß·s«H¥ó§¨..................................................................................... 43

¹Ï 24              «H¥ó§¨¦Cªí......................................................................................... 43

¹Ï 25              «H¥óÀx¦s............................................................................................. 44

¹Ï 26              Â÷½u®ÉŪ¨ú¥¼§Ö¨ú¤§«H¥ó................................................................. 44

¹Ï 27              ÀÉ®×¶Ç¿éÀ£ÁY¥\¯à............................................................................. 45

¹Ï 28              ÀÉ®×¶Ç¿é¥N²z¦øªA¾¹³]©w................................................................. 45

¹Ï 29              Àɮ׶ǿ鱡§Î..................................................................................... 46

 


²Ä¤@³¹                  ºü½×

1.1           ¬ã¨s°Ê¾÷

ÀHµÛºô»Úºô¸ôªº½´«kµo®i¡A¹q¸£ªº¨Ï¥Î¤w¤£¦A­­©ó¶Ç²Îªº­pºâ»²§U¥\¯à¡FÂǥѺô¸ôªº³s³q¡A¤H­Ì¤w¸g¶V¨Ó¶V²ßºD©óÂǥѺô¸ô¨Ó¤¬¬Û¶Ç»¼°T®§¡B¤À¨É¸ê·½¡A¹q¸£¤]¦]¦¹Åܱo¶V¨Ó¶V¥Í¬¡¤Æ¡C

 

µM¦Ó¡A¦bºô¸ô§êºtªº¨¤¦â¤é¯q­«­nªº¤µ¤Ñ¡Aºô¸ôªº«~½è»PÀW¼e«o¦ü¥G¥Ã»·»°¤£¤Wºô¸ô¤H¤f¼W¥[ªº³t«×¡A¤@ª½µLªk¹F¨ì¥O¤Hº¡·Nªº¤ô·Ç¡C¦]¦¹¡A¦p¦ó¦b¦³­­ªººô¸ôµwÅé¸ê·½¤W¡A§Q¥Î³nÅ骺¾A·í³]­p¡A¨Ó´£¤Éºô¸ôªº¶Ç¿é®Ä²v©M«~½è¡A´N¦¨¤F¤@­Ó«Ü­«­nªº½ÒÃD¡C

 

 

1.2           ­I´º»¡©ú

¬°¤F¬ð¯}ºô¸ôµwÅé¶Ç¿é®Ä²v¤Wªº­­¨î¡A³\¦hºô¸ô¤WªºÀ³¥Î³£·|³]ªk§Q¥Î¤@¨Ç¯S®íªº³]­p¨Ó»²§U´£¤Éºô¸ôªº¹B§@®Ä²v¡C§Q¥Î³nÅé¨Ó´£¤Éºô¸ô¶Ç¿é®Ä²vªº¤èªk«Ü¦h¡A³q±`³Ì±`¨£ªº¤èªk´N¬O¨Ï¥Î¥N²z¦øªA¾¹¡]proxy server¡^¡C¥N²z¦øªA¾¹¥i¥H§Q¥Î§Ö¨ú¡]cache¡^ªº¾÷¨î¡A¦³®Ä­°§C¤£¥²­nªººô¸ô¶Ç°e®É¶¡¡A¹F¨ì´£¤É¶Ç¿é®Ä²vªº¥Øªº¡C

 

µM¦Ó¡A¥N²z¦øªA¾¹¤´µM¦³°ÝÃD¦s¦b¡A¨Ò¦p·|°ÊºA§ïÅܪº¸ê®Æ´NµLªkÂǥѧ֨ú¨Ó¥[³t¦s¨ú¡A¦Ó¥B¥Ø«e¥N²z¦øªA¾¹¥D­n¨Ï¥Î¦bWWW»PFTPµ¥¯S©wºô¸ôÀ³¥Î¤W¡A¨ÃµLªk¹ï©óºô¸ô¤W¨ä¥L¤è­±ªº¦s¨úÀ³¥Î¡A³£´£¨Ñ¤@­Ó§¹¾ãªº¸Ñ¨M¤èªk¡C

 

¦P¼Ëªº¡A¦b¦æ°Ê­pºâ¨t²Î¡]Mobile Computing System¡^¤è­±¡Aºô¸ôÀ³¥Îµ{¦¡³Ì­«­nªº´N¬O­n¯à®e§Ôºô¸ô¶Ç¿éªº¤£Ã­©w«×[4][17][18]¡A¤×¨ä¬O®É®É­n­±¹ïÂ_½u¡B­«·s³s½uªº°ÝÃD¡A¦³®É­Ô¬Æ¦Ü¥²¶·¦b¦U¦øªA¾¹¶¡¤Á´«´M¨D³Ì§Ö³tªºªA°È¡A³o®É­Y¯à¦³¤@­Ó¦Ò¼{©P¥þªº©³¼h¨t²Î¹ïÀ³¥Îµ{¦¡´£¨Ñ§¹¥þ³z©ú¤Æ¡]transparent¡^ªºªA°È¡AÅýÀ³¥Îµ{¦¡§¹¥þ¤£»Ý¹ï©óºô¸ôí©w«×§@¯S§Oªº³B²z¡A±N·|¨ÏÀ³¥Îµ{¦¡ªºµo®i§ó§Ö³t¡A¥B§ó¨ã¾ã¦X©Ê¡C

 

ªñ¨â¦~¨Ó¡AJavaªºµo®i³t«×¤Q¤ÀÅå¤H¡A¨ä¸ó¥­¥xªº¯S©Ê¡A¥H¤ÎÀu²§ªºª«¥ó¾É¦V»yªk¡A¨Ï±oJava«D±`¾A¦X¥Î¨Óµo®i¨t²Î¡B¶}µoÀ³¥Îµ{¦¡¡CJavaµêÀÀ¾÷¾¹§Q¥Î³nÅé¼ÒÀÀ¹q¸£ªº¯S¦â¡AÅýJava¤£¥u¬O¤@ºØ·sªº»y¨¥¦Ó¤w¡C¼s¸qªº¬Ý¡AJava¤w¸g¬O¤@ºØ·sªº§@·~¥­¥x¤F¡CJavaµêÀÀ¾÷¾¹¥i¥H¦b²{¦³ªº¹q¸£µwÅé©M³\¦h§@·~¨t²Î¤W°õ¦æ¡A¤]¥i¦b±M¬°Java³]­pªºµwÅé¤W°õ¦æ¡C

 

Java§â³nÅé©â¶Hªº¼h¦¸©¹¤W±À¤F¤@¼h¡A¦bµêÀÀ¾÷¾¹¤§¤U¡A¤°»ò³£¬O©â¶Hªº¡C³]­p¤§ªì¡A¦Ò¼{ªº«K¬O»P§@·~¨t²Î©ÎCPUµLÃöªºÀô¹Ò¡A¤£ºÞ©³¼hªº³nµwÅé¦p¦ó´À´«¡A¤W­±ªºJavaµ{¦¡¥Ã»·°õ¦æ±o¦wµMµL®~¡C

 

¦]¦¹¡A§Ú­Ì©Ò´£¨Ñªºµo®i¥­¥x¡A¬°¤F¯à¾AÀ³¦UºØÀô¹Òªº»Ý¨D¡A¤@«ß¨Ï¥ÎJava¬°¥D­nªºµo®i»P°õ¦æÀô¹Ò¡CÂǧU©óJavaÀu¨}ªºª«¥ó¾É¦V»yªk©M¸ó¥­¥x¯S©Ê¡A¨Ï±o¨t²Î¤§µo®i¤Q¤À®e©ö¬[ºc¡A¤]«Ü®e©ö¦b¦U¥­¥x¤W°õ¦æ¡C

 

1.3           ¬ÛÃö¬ã¨s

¬°¤F¸Ñ¨M¤À´²¦¡Àô¹Ò¤Uªº¹Bºâ°ÝÃD¡A³Ì²³æªº¤è¦¡´N¬O§Q¥Î¤À´²¦¡ªºÀɮרt²Î[5]¡A¨Ò¦pUNIX¤W­±ªºNFS¡]Network File System¡^[1] ¥H¤ÎMS Windows©Ò¨Ï¥ÎªºServer Message Block¡]SMB¡^[10]¤§ÀɮסB¦Lªí¾÷¤À¨É¡C³o¨Ç¶È¤î©óÀɮרt²Î¤À´²¹Bºâªº¤èªk¡A¹ï©ó¯u¥¿ªº¤À´²¦¡ªºÀô¹Ò»Ý¨DÁöµMºâ¬O¤Q¤Àªº­ì©l¡A¦ý¤]¬O³Ì²³æªº¸Ñ¨M¤èªk¡C

 

µM¦Ó¡Aºô¸ô¶Ç¿é®Ä²v«o¬O³o¨Ç¨t²Î­±Á{ªº³Ì¤j²~ÀV¡A¨Ò¦pNFS¦b¤jºô°ì¤W·|³y¦¨¦s¨ú®Ä²vªº­°§C¡A¤À´²¦¡ªºÀɮרt²Î¡A­Y¹J¨ìÀWÁcªºÀɮצs¨ú­n¨D¡AµL¥iÁ×§Kªº­n¥I¥Xºô¸ô¾Ã¶ë©Ò³y¦¨ªº®Ä²v­°§C¥N»ù¡C¦]¦¹¡A¦p¦ó´£¤É¤À´²¦¡Àɮרt²Îªº¹B§@®Ä²v¡AÅý¹ïºô¸ô¶Ç¿éªº»Ý¨D¾¨¶q´î¤Ö¡A±N¬O¤U¤@¥Nªº¤À´²¦¡Àɮרt²Î³Ì­«­nªº¤u§@¤§¤@¡C

 

¦bCMUµo®iªºAndrew File System¡]AFS¡^[9]¤]¬O¤@­Ó¤À´²¦¡ªºÀɮרt²Î¡A³Ì¥D­n¬O§Æ±æ§ï¶i¶Ç²ÎNFS¦b¤jºô°ì¤W®Ä²vªº°ÝÃD¡A§ó¦³®Ä¦a¤À¨ÉÀɮ׸귽¡CAFS¨t²Îªº¤@­Ó­«­n¥\¯à¬O¬°Àɮתº¦s¨ú°Ê§@¥[¤W¤F§Ö¨úªº¾÷¨î¡A³o¨Ï±oÀɮצs¨úªº®Ä²v¤j´T´£°ª¡A¨Ã¦]¦¹¦³®Ä´î§Cºô¸ô¶Ç¿é¶q¡C

 

AFS¥t¥~¤@­Ó¤£¦P©óNFSªº¯SÂI¬O¡AÀɮרt²Î¤ºªºÀɦW¡]Name space¡^¹ï¥þ¥@¬ÉªºAFS¨t²Î¦Ó¨¥¬O°ß¤@ªº¡A¥¦¦bÀɮתº©R¦W¤W¡A¥[¤J¤F¾÷¾¹ªº¦ì§}·í§@¥Ø¿ý¦WºÙ¡A¨Ò¦p¡G¡¨ / afs / cc.nctu.edu.tw / ¡K. ¡¨¡A³o¨Ï±oÀɮתº¦s¨ú¯à°÷§ó«K±¶¡A±q³æ¤@¥x¾÷¾¹´N¯à¦s¨ú¥þ¥@¬ÉªºAFSÀɮרt²Î¡C

 

¦bºô¸ôª¬ªp¤ñ¸û¤£Ã­©wªºª¬ªp¡A¨Ò¦p¦æ°Ê­pºâÀô¹Ò¤§¤U¡AAFSªº§Ö¨ú¥\¯à¤´µM¤£¨¬¥HÀ³¥IÀWÁcªºÂ_½u¡B­«·s³s½u¡B¥H¤Îªø®É¶¡ªºÂ÷½uª¬ºA¡C¬°¦¹¡ACMUªº¥t¤@¸s¬ã¨s­ûµo®i¤F¤@®MºÙ¬°Coda [19][20] ªºÀɮרt²Î¡C

 

Coda¨t²Îªº¥Ø¼Ð¬O¡uAccess information on demand when mobile¡v¡A¤]´N¬O§Æ±æÅý¸ê°Tªº¦s¨ú¯à¤£¨ü¦æ°Ê­pºâÀô¹Ò¤U¯S®íºô¸ôª¬ºAªº¼vÅT¡CCoda§Æ±æÂÇ¥ÑServer replication»Pdisconnected operation[7][8]¨â­Ó¾÷¨î¨Ó¦³®ÄÀ³¥I¦øªA¾¹©Îºô¸ôµo¥Í°ÝÃD®Éªºª¬ªp¡C

 

¹ï©óÂ÷½u°Ê§@¡ACoda¹ïÀ³¥Îµ{¦¡´£¨Ñ¤@­Ó§¹¥þ³z©ú¤ÆªºªA°È¡]application transparent¡^[13]¡AÅýÀ³¥Îµ{¦¡¦bÂ÷½uª¬ºA¡A¤´µM¯à¥H¤@¯ëªº¤èªk¦s¨úÀɮסA©Ò¦³§Ö¨úªº§ó·s¡A¥H¤Î¸ê®Æ½Æ»s¤@­P©Ê¡]consistency¡^ªººûÅ@¡A³£¥Ñ¨t²Î¦Û°ÊÀ°¦£§¹¦¨¡C

 

¥t¥~¡A»PCoda¬Û¦üªº¥t¤@¨t²ÎOdyssey [21]¡A«h¬O±Ä¥Îapplication-awareªº¤è¦¡¡AÀ³¥Îµ{¦¡¥i¥HÀH®É±oª¾ºô¸ô¥Ø«eªºª¬ºA¡A¨Ã¦Û¦æ¨Ì¾ÚÀ³¥Îµ{¦¡ªº¯S©Ê¡A§@¥X¾A·íªº¤ÏÀ³¡COdyssey¦P¼Ë·|À°¦£ºûÅ@¸ê®Æªº¤@­P©Ê¡A¨Ã¾¨¥i¯àÅýÀ³¥Îµ{¦¡±o¨ì³Ì¦h·Q¦s¨úªº¸ê®Æ¡C

 

1.4           ¨t²Î²¤¶

¬°¤F¸Ñ¨Mºô¸ô¶Ç¿éªº¤£Ã­©w«×¡A¦P®É¤]¬°¤F¯à¼sªxÀ³¥Î¦b¦UºØºô¸ôÀ³¥Îµ{¦¡¤¤¡A§Ú­Ì¨Ï¥Î¤@­Ó©³¼hªºÀɮרt²Î¡A°t¦X©Ò´£¨Ñªº¥\¯à©I¥s¡A¨Ó§@¬°©Ò¦³ºô¸ôªA°Èªºµo®i¥­¥x¡C¦Ó¤£¦P©ó«e­±©Ò­zªºAFS¡BCodaµ¥Àɮרt²Îªº¬O¡A§Ú­ÌªºÀɮרt²Î¥D­n¬Oºô¸ô¦s¨úªº©â¶H¤Æ¡A¥Î¥H±Nºô¸ô¦s¨úªº°Ê§@¹ïºô¸ôÀô¹Òªº¾AÀ³©Ê¡]adaptation¡^§@¯S®í¦Ò¶q¡C§Q¥Î³o¤@­Ó³q¥Îªº©³¼h¤¶­±Àô¹Ò¡A§Ú­Ì§Æ±æ¦UÃþºô¸ôªA°È¥i¥H«Ü®e©ö¦b¦¹¤¶­±¤W«Ø¥ß¡A¨Ã¦P¼Ë¨É¨ü¨ì©³¼h¨t²Î©Ò±a¨Óªº§Ö¨ú¡B®e¿ù¡BÄò¶Ç¤Î§å¦¸³B²zµ¥¦n³B¡C

 

§Ú­Ì±N­º¥ý¥HE-Mail¹q¤l¶l¥ó¤§¦¬µo«H¬°¨Ò¡A«Ø¥ß§¹¾ãªº¥\¯à®i¥Ü¡A¨ÓÃÒ©ú¦¹¤@¬[ºc¤§¥i¥Î©Ê¡C¦b©³¼h¤¶­±¤¤¡A§Ú­Ì¨Ï¥Î¤@­Ó³q¥Î©ÊªºÀɮרt²Î¡AºÙ¤§¬°General File System¡]GFS¡^¡A¨Ó·í§@°ò¥»ªººô¸ôÀ³¥Îµ{¦¡µo®i¥­¥x¡C±µ¤U¨Ó¡A§Ú­Ì¤]±N«Ø¥ß¤@­Ó²³æªºFTPÀÉ®×¶Ç¿éªA°È¡A¨Ó¶i¤@¨B»¡©ú¦¹µo®i¥­¥x¤§³q¥Î©Ê¡C

 

¥»¨t²Îªº¬[ºc±N¤j­P¦p¤U¹Ï©Ò¥Ü¡G

 

¹Ï 1        ¨t²Î¬[ºc¹Ï

 

°£¤F©³¼h³q¥Î©Êªº³¡¥÷¤§¥~¡A§Ú­Ì±N¦b¨ä¤W«Ø¥ßE-Mail proxy»PFTP proxy¡A¨Ó±N¯S©wªººô¸ôªA°È­n¨DÂର¹ïGFSÀɮרt²Î¤§¦s¨ú¡AÅýE-Mail»PFTP¨âºØºô¸ôªA°È¡A¯à¦P®É¨É¨ü¨ì©³¼hGFS©Ò±a¨Óªº¦UºØ¦n³B¡C¦bProxy¤§¤W¡A§Ú­Ì¤]¬°¸Ó¶µªA°È¤§³q°T¨ó©w¡A§@¤F¾A·íªº­×¥¿¡AÅýÀ³¥Îµ{¦¡§ó®e©ö¯à§Q¥Î¨ì©³¼h¨t²Î©Ò´£¨ÑªººØºØ¥\¯à¡C

 

§Q¥Î³oºØ¤T¼h¦¡¬[ºc¡A§Ú­Ì§âºô¸ôªºÀ³¥Î¾A·í±o§@¤@­Ó¤À¤u¡A³Ì©³¼hªºGFS¥D­n­t³d§Ö¨ú¡B°»¿ù¥H¤Î­«¶Çµ¥ºô¸ô¶Ç¿é¥\¯à¡A¦Ó²Ä¤G¼h«h¬OÄÝ©óºô¸ô¯S©wªA°È¤§³¡¥÷¡A¥Ñ³o¤@¼hªºService Proxy­t³d¸Ó¶µªA°Èªº³Ì¨Î¤Æ¥H¤Î»PGFS¤§·¾³qµ¥¬ÛÃö¨Æ©y¡C³Ì¤W¼hªºÀ³¥Îµ{¦¡¡A«h¥D­n¬O¦b¨Ï¥ÎªÌºÝ±µ¨ú¦U¶µºô¸ôªA°È¡A¦b¦øªA¾¹ºÝ¡A«h¬O²{¦s©óºô¸ô¤Wªº¦U¶µºô¸ôªA°È¡A¥Ñ§Ú­Ìªº¨t²Î¡A§@¾A·íªºÂà±µ¡C

 

¦b²Ä¤G³¹¡A§Ú­Ì±N°w¹ï²{¦³¤§E-Mail¹q¤l¶l¥ó¨t²Î»PFTPÀÉ®×¶Ç¿é¨t²Î§@¤@­Ó²³æªº¤ÀªR»P¤ñ¸û¡C¦b²Ä¤T³¹¡A§Ú­Ì·|¹ï¾ã­Ó¨t²Î¬[ºc§@¤@­Ó§¹¾ãªº»¡©ú¡C²Ä¥|³¹¤Î²Ä¤­³¹«h¬O¹ê§@ªº±¡§Î¥H¤Î½d¨Òªº®i¥Ü¡C³Ì«á¦b²Ä¤»³¹¡A§Ú­Ì±N¹ï¾ã­Ó¨t²Î§@­Óµ²½×¡C

 

 


²Ä¤G³¹                  ²{¦³¨t²Î¤§¥\¯à¦^ÅU

2.1           ¹q¤l¶l¥ó¨t²Î¡]E-Mail¡^

¹q¤l¶l¥ó¨t²Îªºµo®i¤w¸g¦³¤Q´X¦~ªº¾ú¥v¡A±q1982¦~SMTP¡]Simple Mail Transfer Protocol¡^[15]¥¿¦¡¦¨¬°RFC¡]Request for Comments¡^¤§«á¡AUNIX¤W­±ªº¹q¤l¶l¥ó¨t²Î¤@ª½¬Oºô»Úºô¸ô¤W³Ì­«­nªºªA°È¡C¦ÓÀHµÛºô¸ô¨Ï¥Îªº¤é¯q´¶¹M¡A¹q¤l¶l¥óªº¨¤¦â¡A¤w±q­ì¨Óªº¡u«K§Qªº¤u¨ã¡v¡A¤É®æ¬°¡uÃöÁä©ÊÀ³¥Î¡v¤F¡C¥¦¬O¥ø·~¸ê°T»`¶°»P¶Ç¼½ªº°©·F¡A¨Ã¥B¦P®ÉªÓ­tµÛ¤½¥q¤º¥~³q°Tªº­«­n¤u§@¡C¹q¤l¶l¥ó¨t²Î¾ú¸g¤F³\¦hºt¶i©M§ïÅÜ¡AµM¦Ó¨ä°ò¥»ªº¬[ºc¤´¤j­Pºû«ù³Ìªìªº³]­p¡C

 

¦b³o¤@¸`¡A§Ú­Ì±N°w¹ïºô»Úºô¸ô¤W¤§¹q¤l¶l¥ó¨t²Î§@¤@¨ÇÂk¯Ç»P¤ÀªR¡A±´°Q¤@¯ë¨Ï¥ÎªÌŪ¨ú¹q¤l¶l¥óªº¤è¦¡¡A¨Ã«ü¥X¨äÀu¯ÊÂI¥H¤Î¥i¥H§ï¶iªº¦a¤è¡C¦Ó¦b¤U¤@³¹¡A§Ú­Ì±N¦b©Ò³]­pªº¬[ºc¤W¡A«Øºc¤@­Ó·sªº¹q¤l¶l¥ó¤l¨t²Î¡A³]ªk¸Ñ¨M¥Ø«e¹q¤l¶l¥ó¨t²Î©Ò¦s¦bªº°ÝÃD¡A¨Ã¥H¦¹¨Ó»¡©ú¾ã­Ó¨t²Î¬[ºc¤§¥i¦æ©Ê¡C

 

 

2.1.1         «H¥ó¶Ç°eªº¤è¦¡

¥Ø«eºô¸ô¤W³Ì´¶¹Mªº¹q¤l¶l¥ó¶Ç°e¨ó©w¬OSMTP¡]Simple Mail Transfer Protocol¡ARFC 821¡^¡ASMTP¬O©w¸qºô»Úºô¸ô¤W¹q¤l¶l¥ó¬y¶Ç¤è¦¡ªº¤@­Ó³q°T¨ó©w¡A¥¦ªº³Ì¥D­n¥\¯à´N¬O­t³d§â¹q¤l¶l¥ó¥¿½TµL»~¦Ó¥B¦³®Ä²vªº°e¨ì¥Øªº¦a¡C¦P®É¡A¤£½×©³¼hºô¸ôªº³s½u¤èªk¬°¦ó¡ASMTP¨ó©w³£¥i¥H¥Î¨Ó¶Ç°e«H¥ó¡A¥u­n¦³¤@­Óí©wªº¸ê®Æ¶Ç¿é³s½u§Y¥i¡C

 

³Ì±`¨£ªºSMTP ¦øªA¾¹´N¬OUNIX¤Wªºsendmail¡Asendmail±µ¨ü¨Ó¦Û«H¥óµo°eµ{¦¡¡]¦pelm¡^ªº©I¥s¡A¨Ã§Q¥ÎSMTP¨ó©w¨Ó±N«H¥ó¸g¥Ñºô»Úºô¸ô°e¨ì»·ºÝªºSMTP¦øªA¾¹¡A»·ºÝªºSMTP¦øªA¾¹¦A±N«H¥ó¦s¨ìÀɮרt²Î¤U¨Ï¥ÎªÌªº«H½c¤¤¡C³Ì«á¨Ï¥ÎªÌ´N¥iÂǥѫH¥óŪ¨úµ{¦¡±qÀɮרt²Î¤¤Åª¨ú«H¥ó¡C

 

SMTPªº¬[ºc¤j­P¦p¤U©Ò¥Ü¡G

¹Ï 2        SMTP¶Ç¿é¬[ºc

 

¾ã­ÓSMTPªº¬[ºc¥HClient/Server¤è¦¡¤À¼h¹B§@¡A¨Ï¥ÎªÌ¥i¸g¥ÑUser Agent¡]elm¡^¨Óµo°e«H¥ó¡AUser Agent·|©I¥sTransport Agent¡]sendmail¡^¨ÓÀ°¦£§â«H¥ó°e¥X¥h¡ATransport Agent¦P®É·|¹ï«H¥ó§@¾A·íªºrelay©M queuing¡Aª½¨ì§â«H¥ó°e¨ì¦¬«HºÝªºTransport Agent¡C

 

²{¦³ªºSMTP¦øªA¾¹¤j¦h¨Ï¥ÎTCP port 25¡A©Ò¦³©R¥O»P¦^À³§¡¬O¨Ï¥Î¤@¯ëªºASCII¤å¦r¡A¶Ç°e«H¥ó®É¡A¥u­n³s¤WTCP port 25¡A§Q¥Î´X­ÓSMTP©Ò´£¨Ñªº«ü¥O§Y¥i°e«H¡A¤@¯ëªº«H¥ó³B²zµ{¦¡³£¬OÂǥѳoºØ»PSMTP ¦øªA¾¹ª½±µ·¾³qªº¤èªk¨Ó§â«H¥ó°e¥X¥hªº¡C

 

¤U­±¬O¤@­Óµo°e«H¥óªºÂ²³æ¨Ò¤l¡A°²³]¦bccsun1.CSIE ¤Wªºcdsheen·Q°e¤@«Ê«Hµ¹Java.CSIE³o¤@¥x¾÷¾¹¤Wªºicwu¡A§Ú­Ì¤£¸g¹L«H¥ó³B²zµ{¦¡¡A¦Óª½±µ¨Ï¥ÎSMTP§â«H¥ó°e¨ì»·ºÝ¾÷¾¹Java.CSIE¤W­±¡A¤U­±¬Oµo°e«H¥óªº¬yµ{¡G

 

cdsheen ccsun1 [~]%  telnet  java.csie.nctu.edu.tw  25

Trying 140.113.214.168 ...

Connected to java.csie.nctu.edu.tw.

Escape character is '^]'.

220 Java.csie.nctu.edu.tw ESMTP Sendmail 8.8.8/8.6.9 ready at Thu, 9 Apr 1998 15:23:25 +0800

MAIL FROM:  cdsheen@csie.nctu.edu.tw

250 cdsheen@csie.nctu.edu.tw... Sender ok

RCPT TO:  icwu@java.csie.nctu.edu.tw

250 icwu@java.csie.nctu.edu.tw... Recipient ok

DATA

354 Enter mail, end with "." on a line by itself

Subject:  Hello!

 

hello,

        It's a test for SMTP.

.

250 LAA29947 Message accepted for delivery

QUIT

221 Java.csie.nctu.edu.tw closing connection

Connection closed by foreign host.

cdsheen ccsun1 [~] %

 

¦b¤W­±¥Îµê½u®Ø°_¨Óªº³¡¥÷©Ò°eªº¬O«H¥óªº¤º®e¡A¥]§t«H¥óÀÉÀY¤Î¯u¥¿ªº«H¥ó¤º®e¡CÃö©ó«H¥ó¤º®eªº®æ¦¡¡A¦p¼ÐÃD¡B®É¶¡µ¥¸Ô²Óªº®æ¦¡©w¸q¡A¦bRFC 822¡]Standard format of ARPA internet text message¡^[3]¤¤¦³¸Ô²Óªº»¡©ú¡CSMTP¥»¨­¶È­t³d±N«H¥ó°e¹F¥Øªº¦a¡A¨Ã¤£ª¾¹D«H¥óªº¤º®eµ¥¸ê°T¡C

 

 

2.1.2         ª½±µ¦b¶l¥ó¦øªA¾¹¤WŪ¨ú«H¥ó

¦b³o¤@¸`»P¤U¤@¸`¡A§Ú­Ì±N±´°Q´XºØ¦b¨Ï¥ÎªÌºÝŪ«H¥óªº¤è¦¡¡A¨Ã§@¤@­Ó¤ÀªR»P¤ñ¸û¡C¦b¦³ºô¸ôª½±µ³s½u¡B¶Ç¿é³t«×§ÖªºÀô¹Ò¡A¤j¦h¼Æªº¨Ï¥ÎªÌ³£¿ï¾Ü¦¹ºØ¤è¦¡ ¢w ¥ý¥Î»·ºÝµn¤Jµ{¦¡¡]¦p¡Gtelnet¡^¶i¤J»·ºÝ¶l¥ó¦øªA¾¹¨t²Î¡AµM«á§Q¥Î¶l¥ó³B²zµ{¦¡¡]¦pelm¡^¸g¥Ñª½±µ¦s¨úmail spoolªº¤è¦¡¨ÓŪ¨ú¨Ã³B²z«H¥ó¡F¦Ó¦b°e«H¤è­±¡A«h¬O¥Ñ¶l¥ó³B²zµ{¦¡ª½±µ³z¹LSMTP ¦øªA¾¹¨Ó°e¥X«H¥ó¡C

 

¹Ï 3        ¦b«H¥ó¦øªA¾¹¤WŪ¨ú«H¥ó

 

¨Ï¥Î³oºØ¤è¦¡Åª¨ú¶l¥óªºÀuÂI¬O¡A¨Ï¥ÎªÌ¹ï¦Û¤vªº«H½c¤§³B²z¸û¦³¼u©Ê¡A¥i¥H¹ï¦Û¤vªº«H½c°µ¦UºØ¥\¯àªº¾Þ§@¡F¥t¥~«H¥ó¤§¦s©ñ¤]©ö©ó¶°¤¤ºÞ²z¡C¦ý¬O¬Û¹ïªº¡A¥Ñ©ó«H¥ó³B²z¹Lµ{»Ý­nªø®É¶¡ªº³s½u¡A©Ò¥H¯ÊÂI¬O»Ý­n¸û¦nªººô¸ô¶Ç¿é«~½è¡C¦P®É¦bUNIX¤Wªº«H¥ó³B²zµ{¦¡¤j¦h¥u¬O¤å¦r¼Ò¦¡¡A°£¤F¯Ê¥F¸û¤Íµ½ªº¤¶­±¥~¡A­Y­n¥Î¨ÓŪ¨ú¦h´CÅé¶l¥ó¡A©Î¨ä¥L«D¤å¦r¼Ò¦¡ªº«H¥ó®É¡A¤]·|¦³§xÃø¡C

 

 

 

2.1.3         ¸g¥ÑPOP3/IMAP4¨ó©w¨ÓŪ¨ú»·ºÝ«H¥ó

¦bºô¸ô³t«×ºC¡A©Î¸g¥Ñ¼·±µ¦øªA¾¹¬Æ¦Ü¸g¥ÑµL½uºô¸ô³s½uªºÀô¹Ò¡A¦pªG¨Ï¥ÎªÌ¥u¬O·Q¾\Ū«H¥ó¡A«h«e­z³oºØ«H¥óŪ¨ú¤è¦¡¦ü¥G¨Ã¤£¤Q¤À¸gÀÙ¡A¦]¬°»·ºÝµn¤J»P¶Ç¿é«H¥ó³B²z®Éªºµe­±µ¥¡A·|¯Ó¥Î³\¦hÃB¥~ªººô¸ôÀW¼e¡A¦Ó¥Bºû«ù«H¥ó³B²z®Éªº³s½u¤]±N¤Q¤À©ù¶Q¡C

 

¦]¦¹¡A³oÃþªº¨Ï¥ÎªÌ¤ñ¸û§Æ±æªº¬O¯àª½±µ¦b¨Ï¥ÎªÌºÝŪ¨ú»P¾Þ§@«H¥ó¡A»P»·ºÝ¶l¥ó¦øªA¾¹ªº³q°T®É¶¡¶V¤Ö¶V¦n¡A³oºØÅª¨ú¶l¥ó¤è¦¡³Ì±`¥Îªº¦³¨âºØ¡APOP3¡]Post Office Protocol, RFC 1939¡^[11]»PIMAP¡]Internet Message Access Protocol, RFC 2060¡^[2]¡A§Q¥Î³o¨âºØ¤è¦¡¡A¥i¥H§â¶l¥ó¦øªA¾¹¤Wªº«H¥ó¥ý¶Ç¨ì¨Ï¥ÎªÌºÝ¡A¦A¥Ñ¨Ï¥ÎªÌºCºC¾\Ū¨Ã°µ³B²z¡C

 

¤@¯ë¦Ó¨¥¡A¦b­Ó¤H¹q¸£ºÝ¨Ï¥ÎPOP3©ÎIMAPªº«H¥ó³B²zµ{¦¡¡A¥\¯à¤j¦h¤ñ¸û°¾­«¦bÀ³¥Î¤è­±¡A¨Ï¥Î¤W¤]¤ñ¸û¤è«K¡C¹ï©ó¦h´CÅé«H¥óªº³B²z¡A¥H¤Î»P¨ä¥LÀ³¥Îµ{¦¡ªº¾ã¦X©Ê¡A¤]³£¬O¦b¦øªA¾¹¤W¨Ï¥Î¤å¦r¼Ò¦¡Åª«Hµ{¦¡©ÒµLªk¤ñÀÀªº¡C

¹Ï 4        ¸gPOP3/IMAP³B²z«H¥ó

 

POP3³q°T¨ó©w¤Q¤À²³æ¡A¦ý¤]¦]¦¹¨Ï±o¥\¯à¨ü¨ì­­¨î¡CPOP3¥u³B²zŪ¨ú»·ºÝ«H¥ó¦øªA¾¹¤W«H¥óªº¥\¯à¡A¹ï©ó°e«Hªº°Ê§@¨Ã¥¼´£¨Ñ¤ä´©¡A°e«HÁÙ¬O­n¾aSMTP¨ó©w¡C

 

¤@¯ë¨Ï¥ÎªÌ¨Ï¥Î­Ó¤H¹q¸£¤Wªº¹q¤l¶l¥ó³B²zµ{¦¡¡]¦pMicrosoftªºInternet Mail¡BOutlook¤ÎNetscape Mailµ¥¡^®É¡A¨ä©Ò±Ä¥ÎªºÅª«H¤è¦¡§Y¬OÂǧU©óPOP3 ¨ó©w¡A¦Óµo°e«H¥ó«h¬O¥t¥~¸g¥ÑSMTP³q°T¨ó©w¡]RFC 821¡^¡A¦]¦¹³o¨Ç«H¥ó³B²zµ{¦¡°£¤F»Ý­n¦øªA¾¹¤W¦³´£¨ÑPOP3ªA°È¥~¡A¦P®É¤]­n¯à§ä¨ì¤@¥x¯àÀ°¦£ÂÇ¥ÑSMTPµo°e«H¥óªº¦øªA¾¹¡C

 

·Q­nPOP3³q°T¨ó©wŪ¨ú¦b¶l¥ó¦øªA¾¹¤Wªº«H¥ó¡A­º¥ý¥²¶·µ¹¤©¦øªA¾¹»{Ãҩһݭnªº±b¸¹»P±K½X¡A¤§«á¨Ï¥ÎªÌºÝ§Y¥i¦V¶l¥ó¦øªA¾¹¨ú±o¤@¨Ç²³æªº«H¥ó¸ê°T¡A¹³«H¥ó¼Æ¥Ø¡A¤Î«H¥ó¤j¤pµ¥¡A¦ý¬O¹ï©óÃö©ó«H¥óªº§ó¸Ô²Ó¸ê°T¡A¨Ò¦pµo«HªÌ¡B¼ÐÃDµ¥¡A¦b«H¥ó¥»Åé¤U¸ü¥H«e¡A¨Ï¥ÎªÌºÝªº«H¥ó³B²zµ{¦¡¨ÃµLªkª¾¹D¡C

 

¤U­±¬O¨Ï¥ÎMicrosoftªºOutlook¸g¥ÑPOP3Ū¨ú«H¥óªº±¡§Î¡G

 

¹Ï 5      ¨Ï¥ÎOutlookŪ¨ú«H¥ó

 

®Ú¾ÚPOP3 ¨ó©w¡A¨Ï¥ÎªÌºÝÁöµM¥i¥H¿ï¾Ü¤U¸ü²Ä´X«Ê«H¡A¦ý¬O¥Ñ©ó¨Æ«eµLªk±oª¾«H¥ó¸Ô²Ó¸ê°T¡A¨Ï±o¤@¯ëªº«H¥ó³B²zµ{¦¡³£¥²¶·§â©Ò¦³ªº«H¥ó¤U¸ü¤§«á¡A¤~¯à¥Ñ¨Ï¥ÎªÌ¿ï¾ÜŪ¨ú­þ¤@«Ê¡C

 

 

 

¹Ï 6        ­­¨î¥i¤U¸ü«H¥ó¤j¤p

 

¨Ï¥ÎPOP3ªº«H¥ó³B²zµ{¦¡¦b«H¥ó¯u¥¿¤U¸ü«e¡A¶È¯à´N¤U¸üªº«H¥ó¤j¤p§@­­¨î¡A¦ý¬O¨ÃµLªk¨Ì¾Ú«H¥óªº¤º®e¡B¨Ó·½µ¥§@§ó¶i¤@¨Bªº­­¨î¡C

 

POP3¦b¦øªA¾¹ºÝ¤@¯ë¶]¦bTCP port 110¡A©Ò´£¨Ñªº©R¥O¤Q¤À²³æ¡A¼Æ¥Ø¬ù¶È¤QºØ¦Ó¤w¡C¤U­±¬O¤@­Ócdsheen¸g¥ÑPOP3¨ó©w¨ìJava.csie¤W­±¨ú«Hªº¨Ò¤l¡G

 

cdsheen ccsun1 [~] %  telnet  Java.csie.nctu.edu.tw  110

Trying 140.113.214.168 ...

Connected to java.csie.nctu.edu.tw.

Escape character is '^]'.

+OK QPOP (version 2.2) at Java starting. <21897.894789997@Java>

USER cdsheen

+OK please send PASS command

PASS mypass

+OK 12 messages ready for cdsheen in /usr/spool/mail/cdsheen

LIST

+OK 3 messages; msg# and size (in octets) for undeleted messages:

1 943

2 773

3 773

.

RETR 2

<message content of #2>

.

QUIT

+OK Pop server at Java signing off.

cdsheen ccsun1 [~] %

 

¨Ï¥ÎªÌ¦b¨ú«H¤§«e¡A©Ò¯à±o¨ìªº¸ê°T´N¥u¦³¤W­±®Ø°_¨Óªº³¡¥÷¡A¤]´N¬O¥u¦³«H¥ó¼Æ¶q»P¤j¤pªº¸ê°T¡A¨Ï¥ÎªÌ¨Ã¤£ª¾¸Ó«Ê«H¥óªº¤º®e¡Aª½¨ì§â«H¥ó¤U¸ü¤§«á¤~ª¾¹D¼ÐÃD»P¨Ó·½µ¥¸ê®Æ¡C

 

 

ÂÇ¥ÑPOP3¥Ñ»·ºÝ¦¬«H¤è¦¡ªºÀuÂI¬O¡A¨Ï¥ÎªÌ¥i¤@¦¸¤U¸ü©Ò¦³«H¥ó¡A¦Ó°£¤F«H¥ó¶Ç¿é©Ò»Ý³s½u¤§¥~¡A¨Ã¤£·|®ö¶OÃB¥~ªººô¸ôÀW¼e¡A¦P®É¨Ï¥ÎªÌ¤]¤£»Ý¬°¤F­n³B²z«H¥ó¡A¦Ó»Ý­nºû«ùªø®É¶¡¦Ó¥Bí©wªº³s½u¡C

 

¦ý¬O³oºØ¤è¦¡¤]¦³¤@­Ó¯ÊÂI¡A´N¬O«H¥óªº³B²z¨Æ¹ê¤W¬O¦b local ºÝ¶i¦æ¡A¦pªG¨Ï¥ÎªÌ¸g¥Ñ¤£¦Pªº¾÷¾¹¨ÓŪ¨ú«H¥ó®É¡A´N¦³¥i¯à·|¾É­P«H¥ó³B²z¤Wªº¤£¤@­P¡C¥t¥~¡A³oºØÅª¨ú«H¥ó¤è¦¡¤j³¡¤À³£¬O§â«H¥ó¥þ³¡¤U¸ü¡A¦pªG¨Ï¥ÎªÌ¥u·QŪ¨ú¥L³ßÅwªº¬Y¤@«Ê«Hªº¸Ü¡A¦¹ POP3¨ó©w¨Ã¥¼´£¨Ñ³oºØ¡u¿ï¾Ü©ÊŪ¨ú¡B¤U¸ü¡vªº¥\¯à¡C

 

¥t¥~¡AIMAP4«h¬O¤@­Ó¤ñ¸ûÁo©ú¤@ÂIªº¨ó©w¡A¦b¦p¦óÂ^¨ú°T®§¤è­±¡A¦¹¨ó©wµ¹¤F§A¤ñPOP3§ó¦hªº¿ï¾Ü¡C§A¥i¥H¹w¥ýª½±µ¦b¦øªA¾¹ºÝ¹ï«H¥ó§@°ò¥»ªºÀˬd»P­åªR¦Ó¤£»Ý­n¥ý¦æ¤U¸ü¡A±µµÛ¡A§A¥i¥H¿ï¾Ü§A¯u¥¿»Ý­nªº¡A§Y«K¥u¬O°T®§ªº¤@³¡¥÷¡A¤´µM¥i¥H±N³Ñ¾lªº³¡¤À¯d¦b¦øªA¾¹¤W¡F¦P®É IMAP4 ¤]´£¨Ñ¹ï»·ºÝ«H¥óªº°ò¥»¾Þ§@¡]¦p¡G§R°£¡B½s¿è¡BÀx¦sµ¥¡^¥\¯à¡C³o¨Ç¯S©Ê¤£¥u¬O¤è«K¦Ó¤w¡A¥t¥~¥i¥H¹F¨ì¹³¬O«K©ó³Æ¥÷¡B°T®§¤À¨Éµ¥¦n³B¡C

 

ÁöµMPOP3©MIMAP4¦b³\¦h¨t²Î¤W¦P®É¦s¦b¡A¦ý¬O¤@¯ë»{¬°¡AIMAP4²×±N¨ú¥NPOP3¡]¨Ò¦p¡GMicrosoft©MLotus¦b¥L­Ìªº°T®§¶Ç»¼²£«~¤¤¡A³£¤w¸g¤ä´©POP3»PIMAP4¡^¡C

 

IMAP4¥i¥H»¡¸Ñ¨M¤F POP3 µLªk¡u¿ï¾Ü©Ê¤U¸ü¡vªº¯ÊÂI¡A¨Ï¥ÎªÌ¾\Ū«H¥ó®É¥i¥H¥u¶Ç¿é¯S©wªº¬Y¤@¨Ç«H¥ó¡]¦p·sªº«H¥ó¡^¡A¤£»Ý¹³ POP3 ¤@¼Ë¥²¶·§â¾ã­Ó«H½c­«¶Ç¤@¦¸¡C¦ý¬O¹ï©ó§Ö¨ú¤Î¾ã¦X¦¬µo«H¥\¯à¤W­±¡AIMAP4¨Ã¥¼ª½±µ´£¨Ñ¤ä´©¡F°£¦¹¤§¥~¡A¹ï©óºô¸ô¤£Ã­©wªº±¡§Î¡A¨Ò¦p¦³Â_½uªº±¡ªp¡AIMAP4 ¤]¨S¦³´£¨Ñ¤@­Ó¨¬°÷í©wªºÀô¹Ò»Ý¨Dªº¸Ñ¨M¤è®×¡C

 

¤ñIMAP4§ó¦nªº¬OACAP¡]Application Configuration Access Protocol¡^[12]¡A¥¦ÂǵÛÅý§A¦w¸Ë¦ì§}ï¡B¨Ï¥ÎªÌ¿ï¶µ¥H¤Î¨ä¥L»P³q¥Î¦s¨ú¬ÛÃöªº¸ê®Æ¡A¨Ó¼W±jIMAP4ªº¥\¯à¡CµM¦ÓACAPªº³W®æ¤´µM¥¼¸g­t³dµo®iInternet¼Ð·Çªº²Õ´IETF¡]Internet Engineering Task Force¡^³q¹LÅçÃÒ¡A¥Ø«e¤]ÁÙ¨S¦³¤ä´©ªº³nÅé¥X²{¡C

 

 

2.1.4         «H¥ó³B²z¤è¦¡¤ñ¸û

 

¤U­±¤ñ¸û¥Ø«e²{¦³ªº¦U¦¡ E-Mail ³B²z¤è¦¡

 

u      µn¤J¨ì«H¥ó¦øªA¾¹¤W¡A§Q¥Î elm ©Î pineŪ«H

u      ¦b¨Ï¥ÎªÌºÝ§Q¥Î¤ä´© POP3 ªº«H¥ó³B²zµ{¦¡Åª«H

u      ¦b¨Ï¥ÎªÌºÝ§Q¥Î¤ä´© IMAP4 ªº«H¥ó³B²zµ{¦¡Åª«H

 

°ò¥»¤W¡A³o¤TªÌªº°e«H¤è¦¡³£¬OÂÇ¥Ñ SMTP ¨ó©w¡APOP3¡BIMAP4 ¨âºØ¨ó©w¥u©w¸qŪ«Hªº¥\¯à¡A¦]¦¹¤U¦C¤ñ¸û¥D­n°w¹ïŪ«H³¡¥÷¡G

 

 

¥\¯à¤ñ¸û

¦b«H¥ó¦øªA¾¹¤W§Q¥Î elm Ū«H

»·ºÝ§Q¥ÎPOP3¨ÓŪ¨ú«H¥ó

»·ºÝ§Q¥ÎIMAP4¨ÓŪ¨ú«H¥ó

³B²z¨t²Î¥H¥~ªº«H½c

¥i

¤£¥i

¥i

«H¥óºÞ²z

¶°¤¤

¤À´²

¤À´²/¶°¤¤

³s½u®É¶¡

ªø

µu

ªø

«H¥ó³B²z¤è¦¡

ª½±µ³B²z

¤U¸ü¾\Ū

»·ºÝ³B²z

¤ä´©«H¥ó¥H¥~ªºªA°È

¥i

µL

¦³

ºô¸ô«~½è¤§®e§Ô¯à¤O

§C

§C

§C

§Ö¨ú¥\¯à

µL

µL

µL

¦¬°e«H¾ã¦X

¥i

µL

µL

¦h´CÅé«H¥ó³B²z

Ãø

¥i

¥i

 

 

¤j­P¨ÓÁ¿¡A§Q¥Î»·ºÝñ¤J¦b«H¥ó¦øªA¾¹¤W¨Ï¥Î«H¥ó³B²zµ{¦¡¨Ó³B²z«H¥ó¡A¦³¶°¤¤³B²zªºÀuÂI¡A­Yºô¸ôÀW¼e¨¬°÷ªº¸Ü¡A³oºØ¤è¦¡¹ï©ó¤@¯ëªº«H¥ó³B²z¬O³Ì«ê·íªº¡C¦ý¬O¡A¹ï©ó¦h´CÅé«H¥óªº¤ä´©¡A¥H¤Î»P¨ä¥LÀ³¥Îµ{¦¡ªº¾ã¦X©Ê¡A¬Û¹ï¨ÓÁ¿¡A´N¤ñ¸û®z¤@ÂI¡C

 

POP3¬O¥Ø«e¨Ï¥Î¼Æ¾Ú¾÷¼·±µºô¸ôªº¨Ï¥ÎªÌ¤ñ¸û±`¥Îªº«H¥ó³B²z¤è¦¡¡A¦b­Ó¤H¹q¸£ºÝ¡A¦³¦U¦¡¦U¼ËªºPOP3«H¥ó³B²zµ{¦¡¥i¨Ñ¿ï¾Ü¡A¥L­Ìªº¥\¯à¤j¦h®t¤£¦h¡A¤]³£¦³¤@©wªº¦h´CÅé«H¥ó¤ä´©¯à¤O¡C¦ý¬O¨ü­­©óPOP3¥»¨­¨ó©wªº¦³­­¥\¯à¡A¤ñ¸ûÃø¹F¨ì«H¥óªº¶°¤¤ºÞ²z¥\¯à¡A¦Ó¥BµLªk¹ï«H¥ó§@¹LÂo¡A¤£ºÞ¬O§_¬°©U§£«H¥ó¡A§¡»Ý¥þ³¡¤U¸ü¡C

 

IMAP4¯à¸Ñ¨MPOP3ªº¤£¨¬¤§³B¡A¥¦ªº«H¥ó³B²z¥i¥H¬O¤À´²¦b¨Ï¥ÎªÌºÝ¡A¤]¥i¥H¶°¤¤¦b¦øªA¾¹ºÝ¡A«H¥ó¦b¤U¸ü¤§«e¡A¥i¥H¥ý¸g¹L¾A·íªº¹LÂo¡A¦Ó¥B¤wŪ¹Lªº«H¥ó¤]¥i¥HÀx¦s¦b¦øªA¾¹ºÝ¡A¦³§Q©ó«H¥óªº¶°¤¤ºÞ²z¡CIMAP4ªº¯ÊÂI¬O¡A¥i¯à·|¹ï¦øªA¾¹³y¦¨¤ñ¸û°ªªº­t²ü¡A¦Ó¥B¹ï©óºô¸ô¤£Ã­©w®Éªº®e§Ô¯à¤O¡A¤]¦³«Ý¦ÒÅç¡C

 

¦b§Ú­Ìªº¨t²Î¤¤¡A¹ï©ó¹q¤l¶l¥óªº³B²z¡A¥D­n¬O¦b©w¸q§¹¾ãªº©³¼h¨t²Î¤§¤W¬[ºc¥X¯à®e§Ôºô¸ô¶Ç¿é¤£Ã­©wªº¹q¤l¶l¥ó¨t²Î¡A³]ªk¹F¨ì§Ö¨ú¡B¹w¥ý¤U¸ü¡B°T®§«O¦sµ¥¥\¯à¡F¦P®É°Ñ¦ÒIMAP4ªº§@ªk¡A´£¨Ñ¤U¸ü«e¹LÂo¥H¤Î¦øªA¾¹ºÝ«H¥óÀx¦sªºªA°È¡C

 

2.2           ÀÉ®×¶Ç¿é¨t²Î¡]FTP¡^¤§Â²­z»P¤ÀªR

ÀÉ®×¶Ç¿é¨t²Îªº°_·½¥i¥H·¹·½¦Ü1971¦~¦bM.I.T©Ò«ØºcªºÀÉ®×¶Ç¿é¥\¯à¡]File Transfer Protocol¡^¡A¸g¹L¤@¤G¤Q¦~ªººt¶i¡AFTP¤w¸g¦¨¬°ºô¸ô¤WÀɮ׸귽¤À¨Éªº­«­nªA°È¡A¥Ñ©ó¨ä¬[ºc¥X§Ö³t¤Îí©wªºÀÉ®×¶Ç¿é¥\¯à¡A¨Ï±oFTPÅܦ¨ºô¸ô¤W³Ì«K§Qªº¸ê·½¦@¨É¤èªk¤§¤@¡C

 

³Ì·sªºFTP³q°T¨ó©w¬°RFC 959 [14]¡A©Ò©w¸qªºÀÉ®×¶Ç¿é¬O¥HTCP¬°°ò¥»ªº³q°TºÞ¹D¡A¾ã­ÓFTPªº¹B§@¤è¦¡¥i¥Î¤U¹Ï¨Ó»¡©ú¡G

 

¹Ï 7         FTP Transfer Model

 

­º¥ý¡A¨Ï¥ÎªÌÂǥѨϥΪ̤¶­±¹ï»·ºÝªº©R¥O¸Ñ;¹¡]protocol interpreter¡^µo¥X©R¥O¡A¦Ó©Ò»Ý­nªº¸ê®ÆÀɮ׶ǰe¡]Data transfer¡^¡A«h¸g¥Ñ¥t¥~¤@±ø³s½u¶Ç°e¡CFTP©R¥Oªº³s½u¤@¯ë¬OTCP port 21¡A¦Ó¸ê®Æ¶Ç°e³s½u«h¤£¤@©w¡C¸ê®Æ³s½u¬OÂù¦Vªº¡A¦Ó¥B¥i¥Ñ¥ô¤@¤è¶}±Ò¦¹³s½u¡]Passive/Active¡^¡C

 

©Ò¦³©R¥OFTP©R¥O»P¦^À³§¡¬°¤@¯ëªºASCII¤å¦r¡A§Q¥Î³o¨Ç©R¥O¡A¨Ï¥ÎªÌ¥i¥H¨ú±o¨­¥÷»{ÃÒ¡B¥Ø¿ý¯Á¤Þ¡B§ïÅܥؿý¡BÀɮפW¸ü¡BÀɮפU¸üµ¥ÀÉ®×¶Ç¿éªA°È°ò¥»¥\¯à¡C

 

³oºØ¸ê®Æ¶Ç°e¥t¥~¨Ï¥Î¤@­Ó³s½uªº§@ªk¡A¤]¨Ï±oFTP©Ò¯à¹F¨ìªº¥\¯à§ó¥[¨ã¦³¼u©Ê¡A¨Ò¦p¤U¦C³oºØÀɮ׶ǿ鱡§Î¡A¨Ï¥ÎªÌºÝ¬J«DÀɮרӷ½¡A¤]«DÀɮץتº¦a¡A¦ý¬O§Q¥Î©R¥O±±¨î¡A¯àÅý¨â­Ó»·ºÝªºFTP¦øªA¾¹§@Àɮץ洫ªº°Ê§@¡C

¹Ï 8         »·ºÝ±±¨î¨âFTP¤¬¶Ç¸ê®Æ

¤W­zªº¾ã­ÓFTP¹B§@¤è¦¡¡A°ò¥»¤W¬O¨S¤°»ò¤j°ÝÃD¡A¦b°Ï°ìºô¸ô¡A©ÎªÌºô¸ô³s½uí©wªº¦a¤è¡A³oºØÀÉ®×¶Ç¿é¬[ºc³£¯à¹B§@ªº«Ü¦n¡C¦ý¬O­Y¬Oºô¸ô³s½u¸ûºC©Î¤£Ã­©wªºª¬ªp¡AFTPªºConnection Oriented¶Ç¿é¤è¦¡¡A´N¥i¯à·|¾D¨üªº¤@¨Ç§xÃø¡C

 

¹Ï 9         ª½±µ»P¶¡±µ¶Ç°eÀÉ®×

¤W¹Ïªí¥Ü¥X¼Æ¾Ú¾÷¼·±µªº¨Ï¥ÎªÌ§Q¥ÎÀÉ®×¶Ç¿éªA°È¨Ó¨ú±oÀɮתº¤èªk¡F¶Ç²Î¤U¸üÀÉ®×¥²¶·ª½±µ»P»·ºÝFTP¦øªA¾¹«Ø¥ß³s½u¡A¦ý¦p¤W¹Ï©Ò¥Ü¡A­Y»·¤è¦øªA¾¹¦b°ê¥~¡A«h¦¹³s½u´N¥i¯à¥²¶·¸ó¹L¨â¬q³s½u¤£Ã­©wªº¦a°Ï¡A¼W¥[¤F¶Ç¿éªº¥¢±Ñ¾÷²v¡C­Y§Q¥Î¦b¼·±µ¦øªA¾¹¤Wªº¥N²z¦øªA¾¹·í§@¤¤Ä~¯¸¡A¥Ñ¨ä­t³d§âÀɮפU¸ü¦ÜÀɮרt²Î¤¤¡A«h¹ï©ó¼·±µ¥Î¥Î¤á¦Ó¨¥¡A©Ò»Ý¸ó¹Lªº´N¥u¦³¼·±µ©Ò»ÝªºPPP³s½u¦Ó¤w¡C²{¦³ªºWWW Proxy Server¤]¤j¦h¤ä´©FTP Proxy¡A¦ý¬O¨¤¦â¤j¦h©w¦ì¦b´£¨ÑÀÉ®×§Ö¨úªº¥\¯à¡A¹ï©ó¶¡±µ³s½u¥N²zªº¥\¯à¡A´N¥¼¯à©MÀ³¥Îµ{¦¡§@§¹¾ãªº¤¬°Ê¡C§Ú­Ìªº¨t²Î¡A¤]§Æ±æ¯à´£¨Ñ¤@­Ó«Ü²³æªº¤¶­±¡AÅýFTP¯à«Ü§Ö¨ã¦³³oºØ¥N²zªÌ¥\¯à¡C

 

2.3           ²{¦³¨t²Î¤§§ï¶i»Ý¨D

¹ï©ó²{¦³¹q¤l¶l¥ó¨t²Î¥H¤ÎÀÉ®×¶Ç¿é¨t²Îªº§ï¶i¡A¨Æ¹ê¤W¤w¸g¦³¦UºØ¤èªk¥X²{¡A§Ú­Ì«h¬O§Æ±æ§Q¥Î§Ú­Ì³]­pªº©³¼h°ò¥»¬[ºc¡A«Øºc¥X²{¦³ªº¦U¶µªA°È¡A¦P®É¤]§Æ±æ¹ïE-Mail¥H¤ÎFTP¨â¶µªA°È§@¤@¨Ç§ï¶i¡A¨Ó¶i¤@¨BÃÒ©ú¾ã­Ó¨t²Î¬[ºc¤§¥i¦æ©Ê¡C

 

¦b¹q¤l¶l¥ó¨t²Î¤è­±¡A§Ú­Ì«Ø¥ß¤@­Ó§¹¾ã¡A¥]§t¦UºØ°ò¥»¥\¯àªº¶l¥ó¨t²Î¡A¨Ã»P²{¦³¨t²Î§@³sµ²¡A§Æ±æ¹F¨ìªº§ï¶i¥\¯à¦³¤U¦C´X¶µ¡G

 

A. ¾ã¦X¦¬µo«H¥\¯à¡G¦P®É¤ä´©Ãþ¦ü POP3 ªº¦¬«H¥\¯à¡A¥H¤Î SMTP ªº°e«H¥\¯à¡A¨Ã±N¨âªÌ¾ã¦X°µ³Ì¨Î¤Æ¡A¨Ã³]ªk§Q¥Î¨âªÌªºÃö«Y¹F¦¨´î§C¶Ç¿é¶qªº­n¨D¡C

 

B. §Ö¨ú¡]Caching¡^¡G§Q¥Î©³¼hªº§Ö¨ú¥\¯à¡A¨Ï±o¤W¼hªº¶l¥ó³B²z§¹¥þ¯à¥H³z©ú¤Æªº¤è¦¡¹F¨ì§Ö¨úªº¥\¯à¡A¤]´N¬O¦b¾\Ū¤wŪ¹Lªº«H¥ó®É¡A¥i¥Hª½±µ¥Ñ§Ö¨ú¤¤¨ú±o¡A¤£»Ý¸g¥Ñºô¸ô¦A­«¶Ç¤@¦¸¡C³oÃä²o¯A¨ìªºÄ³ÃDÁÙ¥]¬A©R¦W³W«h¡]naming¡^»P¤@­P©Ê¡]consistency¡^ªº°ÝÃD¡C

 

C. ¦æ°Ê­pºâÀô¹Ò¤§¦Ò¶q¡G¥]§t¹w¥ý¤U¸ü¡B°T®§¹LÂo¡B°T®§À£ÁY¡A¥H¤Îºô¸ô¤£Ã­©w®Éªº®e¿ù¯à¤O¡C¦P®É¦bºô¸ôÂ_½u¨Ã¦^´_«á¡A¯à¦Û°Ê­«¶Ç¥¼¶Ç§¹ªº³¡¥÷¡A¦Ó¤£¥²¥þ³¡­«¶Ç¡A¦Ó¦bºô¸ôÂ_½u´Á¶¡ªº°Ê§@¡A¤]¥iÂǥѰT®§«O¦sªº¯à¤O¡A¦b³s½u«ì´_«á¡A¥Ñ¨t²Î¦Û°Ê§¹¦¨¡C

 

D. Åý¨Ï¥ÎªÌ¯à¹ï»·ºÝ¶l¥ó§@¦UºØ¾Þ§@¡G©Ò¦³«H¥óªº³B²z»P«O¦s§¡¶°¤¤¦b¦øªA¾¹¤W­±¡A¤£½×±q¦ó³B¤W½u¬d¬Ý«H½c¡A§¡¥i¥H¬Ý¨ì¬Û¦Pªº³B²zÀô¹Ò¡C

 

¦bÀÉ®×¶Ç¿é¨t²Î¤è­±¡A§Ú­Ì«h¥D­n¦b®i¥Ü¨t²Î¹ï©ó¶¡±µÀÉ®×¶Ç¿é¬[ºcªº¤ä´©¯à¤O¡A§Q¥Î¤@­Ó²³æªº¤¶­±¡A«Øºc¥X°ò¥»ªºÀÉ®×¶Ç¿é¤U¸ü¯à¤O¡C¹ï©ó§ó½ÆÂøªº¥\¯à¡A¨Ò¦p§Ö¨ú¡BÄò¶Çµ¥¡A«h©|¥¼¥[¤J¡C


²Ä¤T³¹                  ¨t²Î¬[ºc

 

3.1           ¨t²Î¥\¯à·§­z

¥»¨t²Îªº³Ì­«­n¥Øªº´N¬O§Æ±æ¯à«Øºc¥X¤@­Óºô¸ôÀ³¥Îµ{¦¡µo®i¥­¥x¡]framework¡^¡A¤×¨ä¬O°w¹ï©óºô¸ô¶Ç¿é«~½èªº®e§Ô¡A¥H¤Î¦æ°Ê­pºâÀô¹ÒªººØºØ»Ý¨D¡A³£¯à¦b¨t²Î¤¤§@¾A«×ªº¦Ò¶q¡FÅý¦UÃþºô¸ôÀ³¥Î¡A¯à«Ü§Öªº¸g¥Ñ¨t²Î©Ò´£¨ÑªºÀ³¥Îµ{¦¡¤¶­±¡]API¡^¡A¨Ó¨ú±o©Ò»Ý­nªºªA°È¡Cºî¦X¨ÓÁ¿¡A§Ú­Ìªºµo®i¥­¥x¦³¤U¦C´X¶µ¥\¯à¡G

 

1.    ºô¸ô³s½uÂà¤Æ¬°Àɮצs¨ú

©Ò¦³­ì¨Ó¹ïºô¸ô¤Wªº³s½u¦s¨ú°Ê§@¡A¦b§Ú­Ìªº¨t²Î¤¤¡A³£±N¤§Âà¤Æ¬°¹ïÀɮתº¦s¨ú¡A§Q¥Î¤@­P©Êªº¤¶­±¡A´£¨Ñ¾ã¦X©Êªººô¸ô¶Ç¿éªA°È¡C©Ò¦³ºô¸ôÀ³¥Î¥i¥H§¹¥þ¤£ºÞ©³¼hªººô¸ô¨t²Î¹B§@±¡§Î¡A¥u»ÝÁA¸Ñ¦p¦ó¦s¨úÀÉ®×§Y¥i¡C

 

2.    §Ö¨ú¥\¯à

©³¼hÀɮרt²Î¦Û°Ê´£¨Ñ§Ö¨ú¥\¯à¡A¤w¸g¦s¨ú¹LªºÀɮ׳£·|¦b¨Ï¥ÎªÌºÝªºÀɮרt²Î¤¤¦s¤@¥÷§Ö¨ú¡A©Ò¥H­YÀɮרt²Î°»´ú¨ì©Ò¦s¨úªºÀɮפw¸gŪ¨ú¹L¤F¡A·|ª½±µÅª¨ú§Ö¨ú¤¤ªºÀɮסA¤£·|¦A¸g¥Ñºô¸ô¦V»·ºÝÀɮרt²Î­n¨D¬Û¦PªºÀɮסC©³¼hÀɮרt²Î¦P®É·|¹ï§Ö¨úªºÀɮ׬O§_§ó·s¹L§@Àˬd¡A¨Ï¥ÎªÌ¤£¥Î¾á¤ß®³¨ìªºÀɮסC

 

3.    °T®§À£ÁY»P°»¿ù¥\¯à

¦b©³¼hÀɮרt²Î³B²zºô¸ô¶Ç¿é³¡¤À¡A©Ò¦³ªº°T®§³£·|¸g¹LÀ£ÁY¡A´î¤Ö¶Ç¿é¸ê®Æ¶q¡F¦P®É©Ò¦³¶Ç¿éªº°T®§³£·|¸g¹LCRC ­pºâchecksum¡A¹w¨¾°T®§¦b¶Ç¿é¹Lµ{¤¤µo¥Í¿ù»~¡C

 

4.    Â_½u³B²z»P­«¶Ç

¨t²Î¶¡ªººô¸ô°T®§¶Ç¿é¡A·|¦Û°Ê°»´úºô¸ôª¬ªp¡AÂ_½u®É¡A°T®§·|³QÀx¦s°_¨Ó¡F·í³s½u­«·s±µ¤W®É¡A°T®§·|³Q­«·s¶Ç°e¥X¥h¡C¨t²Î·|½T¹ê«OÃÒ°T®§¤£·|¿òº|¡A§¹§¹¾ã¾ãªº¶Ç°e¨ì¥Øªº¦a¡C

 

 

5.    ´£¨Ñ©ö©ó¨Ï¥ÎªºÀ³¥Îµ{¦¡¤¶­±

¦b©³¼hªºÀɮרt²Î¤§¤W¡A§Ú­Ì´£¨Ñ¤Q¤À²³æ¦Ó¥B©ö©ó¨Ï¥ÎªºÀ³¥Îµ{¦¡¤¶­±¡AÅý¦UÃþºô¸ôªA°È¯àÂǥѩI¥s³o¨Ç¨t²Î´£¨Ñªº¨ç¼Æ¨Ó¨ú±o¨t²Î©Ò´£¨ÑªººØºØ¥\¯à¡A§¹¥þ¤£»Ý¹ïºô¸ôªº¦s¨úªá¶O¥ô¦ó¤ß¤O¡C

 

©³¼hÀɮרt²Î©Ò´£¨Ñªº¥\¯à¡A¥D­n¬O§âºô¸ô¦s¨úªº³¡¤ÀÁôÂð_¨Ó¡Aºô¸ôÀ³¥Îµ{¦¡¶}µoªÌ¥u­nª¾¹D¦p¦ó¹ï§Ú­Ìªº¨t²Î§@¦s¨ú¡A¦p¦ó¼¶¼g¥i¥H±¾¨ì¨t²Î¤W­±ªºªA°È¥N²zªÌ¡]Service Proxy¡^¡A´N¥i¥H«Ü»´©öªº§¹¦¨¤@­Ó¨ã¦³°ª®Ä²vºô¸ô¦s¨ú¥\¯àªººô¸ôÀ³¥Îµ{¦¡¡C

 

3.2           ¨t²Î¬[ºc

¥Ñ©ó¥»¨t²Îªº¥Ø¼Ð¬O§Æ±æ¯à¤ä´©¦UÃþªººô¸ôªA°È¡A¦Ó¤£¬O³æ³æ¬°¤F¸Ñ¨M¹q¤l¶l¥ó¨t²Î¦Ó³]­pªº¡C¦]¦¹¡A¦b³]­p¾ã­Ó¨t²Î¬[ºc¤§®É¡A¯S§O§â»P¯S©wºô¸ôªA°ÈµLÃöªº³¡¥÷¿W¥ß¥X¨Ó¡A¨ÃÅý¹q¤l¶l¥ó¤l¨t²Î¥H¤ÎÀÉ®×¶Ç¿é¤l¨t²Î¡A¥HÃþ¦üªþ¥[¼Ò²Õªº¤è¦¡±¾¦b§Ú­Ìªº¨t²Î¤§¤W¡C

 

¦]¦¹¡A¾ã­Ó¨t²Î³¡¥÷¹ê»Ú¤À¦¨¨â¼h¡A³Ì©³¤Uªº¤@¼h¬O»P¯S©wªA°ÈµLÃöªº³¡¥÷¡A¦b¨ä¤W­±«h»Î±µµÛ¤@¼h¦UÃþºô¸ôªº¤l¨t²Î¡A¦Ó¦¹¨â¼h©Ò²Õ¦¨ªº¨t²Î¤§¤W¡A«h¬O¯u¥¿»P¨Ï¥ÎªÌ±µÄ²ªºÀ³¥Îµ{¦¡»P¯u¥¿ªA°Èªº³sµ²¡A¨t²Î³¡¤Àªº¬[ºc¦p¤U¹Ï©Ò¥Ü¡G

 

¹Ï 10       ¨t²Î¤À¼h¬[ºc¹Ï

 

¹Ï 11       GFS¨t²Î¬[ºc¹Ï

³o¼Ëªº³]­p¨Ï±o¦U¦¡¦U¼Ëªººô¸ôªA°È§¡¥iÂǥѼҲդƪº¤è¦¡¨Ó¾ã¦X¶i¨t²Î·í¤¤¡F¤W¹Ï¥D­n¬O¥H¹q¤l¶l¥ó¨t²Î¬°¨Ò¡A¥t¥~¤]¥iÂǥѳ]­p¨ä¥Lªººô¸ôªA°Èªº²Ä¤G¼h³¡¥÷¡]¦pFTP Proxy¡^¡A¨Óª½±µ¦@¥Î©³¼hªº¨t²Î¡C

 

¨Æ¹ê¤W¡A»P¯S©wªA°ÈµLÃöªº³¡¤À¨Æ¹ê¤W¬O¤@­ÓµêÀÀªºÀɮרt²Î¡A§Ú­ÌºÙ¤§¬°General File System¡A²ºÙGFS¡C¦Ó¦b¹ê»Ú°õ¦æªº®É­Ô¡AGFS¤§¤U«hÁÙ¦³Java Virtual Machine¡BNative File System¥H¤ÎOperation System¤T¼h¡C

 

³Ì©³¤U¤T¼h¬OÄÝ©ó¨t²Î°õ¦æÀô¹Ò³¡¤À¡A¤¤¶¡ªº¨â¼h«h¬O§Ú­Ì¨t²Î³Ì¥D­n®Ö¤ß©Ò¦b¡A¦Ó³Ì¤W¼h¡A«h¬O»P¨Ï¥ÎªÌª½±µ·¾³qªºÀ³¥Îµ{¦¡³¡¤À¡C¤U­±§Ú­Ì°w¹ï§Ú­Ì¥D¨t²Îªº¨â¼h¬[ºc§@²`¤Jªº»¡©ú¡A¦Ó¦b«á­±ªº³¹¸`¤¤¡A§Ú­Ì¤]·|¹ï¦U¼h©Ò­t³dªº¥\¯à¥H¤Î¦U¼h¶¡ªº©I¥s¤¶­±§@¸Ô²Óªº­åªR¡C

 

3.2.1   ²Ä¤@¼h ¡V µêÀÀÀɮרt²Î (GFS)

 

¾ã­Ó¨t²Î³Ì©³¼hªº¤@¼h¬OÄÝ©ó¦U¶µºô¸ôªA°È³q¥Îªº³¡¤À¡A³o¤@³¡¥÷¥D­n¥Ñ¤@­ÓµêÀÀÀɮרt²Î²Õ¦¨¡A¦¹§YGFS¡CGFS¬O¤@­Ó¾ã¦X¦UÃþºô¸ôªA°ÈªºÀɮרt²Î¡F¤]´N¬O»¡¡A¥»¨t²Î§â©Ò¦³ªA°È©Ò»Ý­nªººô¸ô³q°T³¡¤À¡A³£¾ã¦X¶iÀɮרt²Î¤§¤¤¡F©Ò¦³¸ê°Tªº¶Ç¿é»PÀò¨ú¡A³£Âର¹ïÀɮרt²Îªº¦s¨ú¡A¦p¦¹¤@¨Ó¤W¼h¦U­ÓÀ³¥Îµ{¦¡´N¥u»Ý­nª¾¹D¦p¦ó¾Þ§@GFSÀɮרt²Î¡A§Y¥i±o¨ì©Ò»Ý­nªººô¸ôªA°È¡C°£¦¹¤§¥~¡AGFS¥i¥H´x´¤ºô¸ôªº¶Ç¿éª¬ªp¡A°w¹ï°T®§ªº¶Ç¿é°µ¾A·íªº±±¨î»P«O¦s¡C

 

¹Ï 12       GFS¨t²Î¥\¯à¥Ü·N

§Ö¨ú¡]caching¡^¥D­n¬OÂÇ¥ÑÃþ¦üAndrew File SystemªºÆ[©À°t¦X¤W¼hºô¸ôªA°È©Ò´£¨Ñªº°T®§©R¦W³W«h¨Ó§¹¦¨¡A¥Øªº¬O¬°¤F´£¨Ñ¤@­Ó§¹¥þ¦Û°Ê¤Æªº§Ö¨ú¥\¯à¡AÅý©Ò¦³ªººô¸ôªA°È³£¯à«Ü®e©ö¨É¨ü¨ì§Ö¨úªºÀuÂI¡C

 

¤W¹ÏªºMessage Queue¥D­n¬O¬°¤F¸Ñ¨M¬Y¨ÇÀô¹Ò¤U¡]¦p¡G¦æ°Ê­pºâ¡^ºô¸ô¤£Ã­©wªº°ÝÃD¡C·íºô¸ôÂ_½u©Î¤£Ã­©w®É¡A¦¹Message Queueªº§@¥Î´N¬O§â¤W¼hªº°T®§«ü¥O¥H§å¦¸¤è¦¡Àx¦s¤U¨Ó¡Aµ¥¨ì³s½u«ì´_«á¡A¦A±N©Ò¦³¥¼°e¥Xªº°T®§¦Û°Ê°e¥X¡A§¹¥þ¤£»Ý¤W¼hªººô¸ôªA°È©ÎÀ³¥Îµ{¦¡¾Þ¤ß¡C¬Æ¦Ü§Y¨Ïµ{¦¡©Î¹q¸£·í±¼¤F¡A³o¨Ç°T®§¤]·|³Q¥HÀx¦s¦bµwºÐ¡]persistent¡^ªº¤è¦¡¡A«O¯d¤U¨Ó¡A¤U¦¸­«·s±Ò°Ê®É¡A©Ò¦³¥¼°e¥Xªº°T®§¤]·Ó¼Ë¤£·|¿òº|¡C

 

GFS°£¤F­t³dÀɮ׳B²z»P§Ö¨ú¤§¥~¡AÁÙ¥i­t³d¶Ç°e¤W¼hlayer¤§¶¡ªº³q°T¨ó©w©Î¯S®í°T®§¡A¦bGFS¤§¶¡¡A³o¨Ç°T®§©MÀɮתº¶Ç¿é¤@¼Ë¡A·|³Q©ñ¶iMessage Queue¤¤«O¦s¡A½T«O¸ê®Æ¥¿½T¶Ç°e¨ì¥Øªº¦a¡C

 

¥H¹q¤l¶l¥ó¨t²Î¬°¨Ò¡AGFSªº§Ö¨ú¥\¯à¥D­n´N¬O§â¤wŪ¹Lªº«H¥ó¥HÀɮתº§Î¦¡Àx¦s¤U¨Ó¡A«h¥H«á­Y¦³­nŪ¦P¼Ëªº«H¥ó®É¡A´N¥i¥H¤£¥²¦A¸g¥Ñºô¸ô¶Ç°e¤@¦¸¡C¥t¥~´N¬O·í¶Ç°e«H¥ó©Î³B²z«H¥ó®É¡A­Yºô¸ôÂ_±¼¬Æ¦Ü©Î¾÷¾¹·í±¼¡A«hGFS·|­t³d§â¤w°µ¹Lªº°Ê§@«O¦s¦bµwºÐ¤¤¡Aª½¨ì°Ê§@§¹¦¨¬°¤î¡C¦P®É¡AGFS¨t²ÎÁÙ­t³dÂà°e¤W¼hE-Mail¨t²Î¤§¶¡¬Û¤¬·¾³qªº©R¥O¡C

 

©³¼hªºGFS¨t²Î¨Æ¹ê¤W¨Ã¤£¾å±o¥¦©Ò³B²zªº¬O­þ¤@ºØºô¸ôªA°È¡AGFS¨t²Î¥»¨­¥u»{±oÀɦW¡A¦Ó¦¹ÀɦW¬O¥Ñ¤W¼hlayer¡]¦pE-Mail©ÎFTP¡^«ü©wªº¡C¹ï©ó¹q¤l¶l¥ó¨t²Î¤§¶¡ªº³q°T¨ó©w¡AGFS¥u­t³dÂà°e³o¨Ç°T®§¡A¨Ã¤£­t³d³B²z¨ä¤º®e¡C

ºî¦X¤W­±©Ò­z¡AGFS¬O¤@­Ó¡u»Pºô¸ôªA°ÈµLÃö¡vªº©³¼h¨t²Î¡A¨ä¤W­±¥i¥H»Î±µ¦U¦¡¦U¼Ëªººô¸ôªA°È¡A¦P®ÉGFS¨Ã´£¨Ñ¤F°ò¥»ªººô¸ô¶Ç¿é±±¨î¡A¨Ò¦p§Ö¨ú©M­«¶Çµ¥¥\¯à¡C

 

3.2.2         ²Ä¤G¼h ¡V ¯S©wºô¸ôªA°È¥N²zªÌ (Service Proxy)

³s±µ¦bGFS¤W­±ªº¬O°w¹ï¦U¶µºô¸ôªA°È§@¯S®í³B²zªº³¡¥÷¡A¦U¶µªA°È¨Ì¾Ú¨ä©Ê½è¡A»s§@¥X¾A¦X¯S©wºô¸ôÀô¹Ò¡]¦p¡G¦æ°Ê­pºâ¡^ªººô¸ôªA°È¥N²zªÌ¡]Service Proxy¡^¡C°£¦¹¤§¥~¡A¦¹¼hÁٻݭt³d´£¨Ñ¸Ó¶µºô¸ôªA°Èªº¸ê°T©R¦W³W«hµ¹GFS¡A¥H«KGFS§Q¥Î¦¹©R¦W³W«h¨Ó§@¾A·íªº§Ö¨ú³B²z»P°T®§«O¦s¡C

 

¹Ï 13       ¯S©wªA°È»PGFS¤§³s±µ

¥H¹q¤l¶l¥ó¨t²Î¬°¨Ò¡A³o­ÓService Proxy³¡¥÷´NºÙ¬°E-Mail Proxy¡M¥D­n¦b´£¨ÑÀ³¥Îµ{¦¡Åª«H©M°e«Hªº¥\¯à¡A¨Ã¥Bª¾¹D¦p¦ó¸g¥ÑSMTP¦øªA¾¹¨Ó°e«H¥H¤Î¦p¦ó¨ì¶l¥ó¦øªA¾¹¤W¨ú«H¡C

 

Service Proxy¤À¬°client»Pserver¨âºØ¡G¥H¦¹¹q¤l¶l¥ó¨t²Î¬°¨Ò¡A¦bclientºÝ¦³Mail Client Proxy¡A¦bserverºÝ¦³Mail Server Proxy¡FMail Client Proxy­t³d±µ¦¬¨Ó¦Û¨Ï¥ÎªÌºÝªºÀ³¥Îµ{¦¡¦UºØ«H¥ó³B²z­n¨D¡A¦ÓMail Server Proxy«h­t³d¥N¬°¨ú«H»P°e«H¡C

 

¹ï©óGFS¦Ó¨¥¡AE-Mail Proxy©Ò§êºtªº¨¤¦â´N¬O´£¨Ñ©Ò¦³«H¥óµ¥°T®§¤@­Ó¯S©wªº©R¦W³W«h¡AGFS¤~¥i¥H¥Ñ¦¹naming¨Ó¦V»·¤èGFS´£¥XŪ¨úÀɮתº­n¨D¡A¦P®É¹ïÀɮצs¨ú§@§Ö¨ú³B²z¡C¦¹©R¦W³W«h¬O¥Ñ¸Ó¶µºô¸ôªA°È´£¨ÑªÌ©Ò¦Û¦æ©w¸q¡A¹ï©ó¦¨¹ïªºServer Proxy»PClient Proxy¡A¨âªÌ¥²¶·¿í¦u¤@¼Ëªº©R¦W³W«h¡A³o¼Ëºô¸ôªA°È¤~¥i¥H±o¨ì¥¿½Tªº¸ê°T¡C

3.3           ¹q¤l¶l¥ó¤l¨t²Î

¦b¤@­Óºô¸ô¤£Ã­©wªºÀô¹Ò¤¤¡AGFS©Ò¯à´£¨Ñ³Ì¦³¥Îªº¥\¯à´N¬O§Ö¨ú¡C¦b¥»¨t²Î¤¤¡A§Ú­Ì¥H¹q¤l¶l¥ó¡]E-Mail¡^¤l¨t²Î¨Ó®i¥ÜGFS¨t²Î©Ò¨ã¦³ªº§Ö¨ú¥\¯à¡A§Ú­Ì³]ªk§Q¥ÎGFSªº§Ö¨ú¥\¯à¨Ó§ï¨}¥Ø«e¼sªx¨Ï¥ÎªºPOP3©Ò¦s¦bªº¤@¨Ç°ÝÃD¡A¨Ï¤§¯àµ½¥Î§Ö¨úªº¥\¯à¨Ó¹F¨ì­°§Cºô¸ô¶Ç¿éÀW²vªº®ÄªG¡C

 

¦P®É¡A°w¹ï²{¦³ªº¹q¤l¶l¥ó¨t²Î¡A§Ú­Ì¥Ñ«e¤@³¹ªº¤ÀªR¤¤¡Aª¾¹DPOP3³Ì­«­nªº¤@­Ó¯ÊÂI¬OµLªk¹w¥ý¹ï¹q¤l¶l¥óªº¤º®e§@¤ÀªR¡AÅý¨Ï¥ÎªÌ¦Û¦æ¿ï¾Ü·Q­nÆ[¬Ýªº«H¥ó¡F¨Ï¥ÎªÌ¥²¶·¤U¸ü¥þ³¡ªº«H¥ó¤º®e¡A¤~¯à±oª¾©Ò­nÆ[¬Ýªº«H¥ó¸ê°T¡C¦P®É¡A¥Ñ©óPOP3³q°T¨ó©w¥ý¤Ñ¤Wªº­­¨î¡A¨Ï±o§Ö¨úªº¥\¯à«ÜÃø¹F¦¨¡C¦]¦¹¡A¹q¤l¶l¥ó¤l¨t²Î°t¦X©³¼hGFS§Ö¨ú¥\¯àªº¹B§@¡A³Ì¥D­n¦³¤U¦C¨â¤j§ï¶i¡G

 

1.    ¨Ï¥ÎªÌ¥i¥H¹w¥ý±oª¾«H½c¤¤©Ò¦³«H¥óªº¸ê°T¡A¦Ó¤£¥²¥ý¦æ¤U¸ü«H¥ó¥»Åé¡C¨Ï¥ÎªÌ¹ï©ó¦³¿³½ìªº«H¥ó¡A¥i¥H¿ï¾Ü©Ê¤U¶Ç¡F¦Ó¤£¥²¹³POP3¤@¼Ë»Ý¥þ³¡¤U¶Ç¡C

 

2.    ¨Ï¥ÎªÌ¤w¸g¾\Ū¹Lªº«H¥ó©Î¼ÐÃD¡A¦b¨Ï¥ÎªÌ¤U¦¸­n¨D¦P¼Ëªº¤º®e®É¡A¥iª½±µ¥Ñ¦s¦b©ó¨Ï¥ÎªÌºÝªº§Ö¨ú¤¤¨ú±o¡A¦Ó¤£»Ý¸g¥Ñºô¸ô¦A­«¶Ç¤@¦¸¡AGFS·|¦Û°ÊÀˬd¸ÓÀɮ׬O§_§ó·s¹L¡C

 

GFS¨t²Î¤Uªº§Ö¨ú¹B§@¹Lµ{¬ù¦p¤U¹Ï©Ò¥Ü¡G

 

¹Ï 14       GFS¨t²Îªº§Ö¨ú¥\¯à

 

 

§Ö¨ú¥\¯à¥D­n¬O¥Ñ§Ú­Ì¨t²Î¤¤ªº¨â¼hlayer¤§¶¡¤¬¬Û°t¦X¨Ó¹F¦¨¡C©³¼hªºGFS­t³d§Ö¨úª«¥óªºÀx¦s¡A¦P®É·|§P§O©Ò­n¨Dªºª«¥ó¬O§_¤w¸g¦s¦b§Ö¨ú¤§¤¤¡A¥H¤Î³Q§Ö¨úªºª«¥ó¤º®e¬O§_»P¦øªA¾¹ºÝª«¥ó¦P¨B¡A¤W¤@¼hªººô¸ôªA°È¥u»Ý¤U¤@­ÓÀÉ®×Ū¨ú«ü¥O¡A§Y·|¤ÞµoGFS¤@³s¦ê§PÂ_§Ö¨úª«¥óªºµ{§Ç¡C

 

¦b¥»¨t²Î¤¤¡A§Ú­Ì§Q¥Î¤W¼hªºService Proxy¨Ó´£¨Ñ¦UÃþ¸ê°Tªº©R¦W³W«h¡]naming¡^¡A©³¼h¨t²Î«h§Q¥Î¦¹naming¨ÓÀx¦s©Î´M§ä§Ö¨ú¤¤ªº¤º®e¡A¦Ó©³¼h¨t²Î¨Ã¤£ª¾¹D¥¦©Ò³B²zªºÀɮפº®eªº¬O¤°»ò¡C

 

Á|¨Ò¨Ó»¡¡A°²³]¬Y¸ê°T¡]¨Ò¦p¤@«Ê«H¡^³QMail Proxy¨ú¦W¬°¡ufoo¡v¡A«h·í¨Ï¥ÎªÌ­n¨D¨ú±o¦¹¸ê°T®É¡AMail Proxy´Nª½±µ§â¦s¨ú¡ufoo¡vªº­n¨D¦V©³¼hªºGFS´£¥X¡C

 

©³¼hªºGFS±µ¨ì¦s¨ú¦¹Àɮתº­n¨D«á¡A·|¥ý¬Ý¬Ý§Ö¨ú¤¤¬O§_¦s¦b¡ufoo¡v³o­ÓÀɮסA­YµL«h§â¦¹¦s¨ú­n¨DÂà°eµ¹»·ºÝªºGFS¡A¨Ï¥ÎªÌºÝªºGFS¦b¨ú±oÀɮ׫á¡A§Y·|¦bGFS¤¤¦s©ñ¤@¥÷¡AµM«á¦A§â¸ê°T©¹¤W¶Çµ¹Mail Proxy¡C­Y§Ö¨ú¤¤¤w¸g¦s¦b¦¹ÀɮסA«h¬°¤F¸ê°Tªº¦P¨B¡AGFSÁÙ·|À°¦£Àˬd¨Ï¥ÎªÌºÝ§Ö¨úªº¸ê®Æ¬O§_¹L´Á¤F¡A­Y¹L´Á¤F¡AGFS·|¦Û°ÊÀ°¦£§ó·s¡CMail Proxy¦P®É¥i¥H®Ú¾Ú»Ý­n¿ï¾Ü­n¤£­nGFS§@³o¶µÀˬd¡C

 

¦b»·ºÝªºGFS³¡¤À¡A±µ¦¬¨ìÀɮצs¨úªº­n¨D«á¡A·|¥ý§PÂ_¦¹Àɮ׬O¥Ñ¨º­ÓService Proxy­t³dªº¡A¨Ò¦p¡GMail Proxy¡AµM«á±N¦s¨ú­n¨DÂର¦VMail Proxy´£¥X¡AMail Proxy»Ý®Ú¾Ú¦Û¤v©wªº©R¦W³W«h¡A­t³d±N¦¹ÀÉ®×¥Nªíªº¸ê°T¶Ç¦^µ¹GFS¡AÅýGFS§âÀɮ׶Ǧ^µ¹¨Ï¥ÎªÌºÝ¡C¨Ò¦p¦¹®ÉªºMail Proxy±µ¦¬¨ì¦s¨ú¡ufoo¡vÀɮתº­n¨D¡A´N»Ý­t³d§â¥Nªí¸ÓÀɮתº«H¥ó¤º®e¶Ç¦^µ¹GFS¡C

 

 

3.4           ºô¸ô¶Ç¿éªº§å¦¸³B²z»P°»¿ù¯à¤O

¦bºô¸ô¤£Ã­©wªºÀô¹Ò¤¤¡A¥t¤@­Ó­«­nªºÄ³ÃD´N¬O¦p¦ó¨Ï±o©Ò¦³ªº³q°T¶Ç¿é³£¯à¥¿½TµL»~ªº§¹¦¨¡A¤£·|¨üºô¸ô¬O§_¶¶ºZªº¼vÅT¡A³o´N¬O¥»¨t²Î©Ò±j½Õªººô¸ô¿ù»~®e§Ô¡]fault-tolerant¡^¯à¤O¡C¦b¥»¨t²Î¤¤¡A¿ù»~§ó¥¿ªº¥\¯à§¹¥þ¥Ñ©³¼hªºGFS¨Ó¹F¦¨¡A¤W¼hªº©R¥O©Î°Ê§@§¡·|¥Ñ¤U¼hªºGFS§@¾A·íªº«O¦s¡Aª½¨ì³q°T¥¿½TµL»~ªº§¹¦¨¬°¤î¡C

 

GFS§@°T®§«O¦sªº¤è¦¡¬O§â¤W¼hªº©R¥O¥H§å¦¸¡]batch¡^¤è¦¡©ñ¦b¦î¦C¡]queue¡^¤§¤¤¡A¦bºô¸ô¶¶ºZ®É¡A¦ø¾÷°e¥X¡C¦p¦¹¤@¨Ó¡A¤£¦ýÁ×§K¦]ºô¸ôÂ_½u³y¦¨¸ê®Æ¬y¥¢¡A¦P®É¤]¥i¥H´î§Cclient»Pserver¶¡ºô¸ô¶Ç¿éªºÀW²v¡A¦³®Ä´£ª@ºô¸ôªº¨Ï¥Î²v¡C

 

¹Ï 15       GFS°T®§¶Ç¿é¬[ºc

 

¦p¤W¹Ï©Ò¥Ü¡AGFS¹ï©ó¥²¶·Âà°e¨ì»·ºÝªº°T®§©Î¸ê®Æ¡A³£·|¥ý©ñ¸m¨ì¤@­Ó¦î¦C¡]queue¡^¤¤¡A¦Ó¦¹¦î¦C«h·|¦Û°Ê¦s©ñ¤@¥÷¦b¥Ã¤[©ÊªºÀx¦s´CÅé¡]¦pµwºÐ¡^¤W¡]persistent storage¡^¡A©Ò¥H§Y¨Ï¦]»~IJ¹q·½¶}Ãö¦ÓÃö¾÷©Î¦]¨t²Î·í¾÷¦Ó­«·s±Ò°Ê¡A¦¹¦î¦C¤´µM¦s¦b¤£·|®ø¥¢¡A¦p¦¹¤@¨Ó¡A´£¨Ñ¤F¨Ï¥ÎªÌ¤@­Ó°T®§¶Ç¿éªºµ´¹ï«OÃÒ¡F¨Ï¥ÎªÌ¤£¥²¾á¤ß¸ê®Æ·|¦]¨t²Î©Îºô¸ô¤£Ã­¦Ó¬y¥¢¡C

 

¦b°T®§¶Ç°e¦Ü¥Øªº¦a«á¡A»·ºÝGFS¦P®É·|¹ï¦¹°T®§«Ê¥]§@CRCªºÀˬd¡A¬Ý¬Ý¶Ç¿é¹Lµ{¬O§_¿ù»~¡C¥u¦³·í°T®§³Q»·ºÝGFS¥¿½TµL»~ªº±µ¦¬¡A¨Ï¥ÎªÌºÝªºGFS±µ¨ü¨ì¨Ó¦Û»·ºÝGFSªºACK°T®§«á¡A¤~·|±N¸Ó°T®§¦Û¦î¦C¤¤§R°£¡]dequeue¡^¡A§_«h°T®§ÁÙ·|³Q¶Ç°e¤@¦¸¡Aª½¨ì¦¨¥\¬°¤î¡C

 

¦P®É¡A©Ò¦³¶Ç¿éªº°T®§¡A³£·|¸g¹LÀ£ÁY¡A¦³®Ä­°§C¶Ç¿é©Ò»Ý¸ê®Æ¶q¡C¥H¹q¤l¶l¥ó¤l¨t²Î¬°¨Ò¡A¥Ñ©ó¶Ç¿éªº¸ê®Æ¦h¬°¤å¦r«¬ºA¸ê®Æ¡A¥iÀ£ÁY²v·¥°ª¡A¸g¹LÀ£ÁY«áªº¶Ç¿é¶q¤j¬ù¥i´î¤Ö50%¥H¤W¡C

 

¹ï©óGFS¦Ó¨¥¡A©Ò³B²zªº¤u§@´N¬O½T«O°T®§¥¿½T¥B§Ö³tªº¶Ç°e¨ì¥Øªº¦a¡A¤]´N¬O§âºô¸ô¶Ç¿é³¡¤À§¹¥þ¹ï¤W¼hªººô¸ôªA°ÈÁôÂð_¨Ó¡A¥ÑGFS§¹¥þ´x±±¡C¥t¥~¡A«e¤@¸`©Ò­zÀɮרt²Îªº§Ö¨ú³¡¤À¡A¤]¬OGFSªº¥\¯à¤§¤@¡C

 

 

3.5           ÀÉ®×¶Ç¿é¤l¨t²Î¡]FTP Proxy¡^

 

°£¤F«e­zªº¹q¤l¶l¥ó¤l¨t²Î¤§¥~¡A§Ú­Ì¤]¦bGFS¤W­±¥t¥~¬[³]¤@­ÓÀÉ®×¶Ç¿é¤l¨t²Î¡]FTP Service Proxy¡^¡C¬[³]³o¤@­Ó¤l¨t²Îªº¥Øªº¦³¨â­Ó¡G¤@¬O®i¥ÜGFS¥­¥x¤§¥iÂX¥R©Ê¡A¤G¬O»¡©ú¤À¼h¬[ºcªº°ª«×¼u©Ê¡C

 

§Ú­ÌªºÀÉ®×¶Ç¿é¤l¨t²Î¥Ø«e¤´¥¼¨ã¦³¶Ç²ÎFTP©Ò¦³ªº¥\¯à¡AµM¦Ó¨ä³Ì¥D­nªº§ï¶i¬O¼W¥[FTP¨t²Îªº¥N²z¶Ç¿é¯à¤O¡]proxy-ftp¡^¡A§Æ±æ¯à¬°ºô¸ô¶Ç¿é¤£Ã­ªº¦a°Ï¡A´£¨Ñ¦³®Ä²vªºÀɮפU¸ü¥\¯à¡C

 

¦p¦P§Ú­Ì¦b²Ä¤G³¹¤¤ªº»¡©ú¡A¦b¬Y¨Çºô¸ôª¬ªp¤§¤U¡AÀÉ®×¶Ç¿é±`±`·|¦]¬°¸ó¹L³\¦h¬qºô¸ô¦Ó³y¦¨·¥°ªªº¤£Ã­©w©Ê¡C¦]¦¹¡A±Ä¥Î¶¡±µ¦¡ªººô¸ô¶Ç¿é¡]Indirect FTP¡^¡AÅý¨Ï¥ÎªÌ¯à¶¶§Qªº¤U¸ü©Ò»ÝªºÀÉ®×´N¦¨¬°¸Ñ¨M³o­Ó°ÝÃDªº³Ì¦n¤è¦¡¡C¦ÓÂǥѧڭ̩³¼hGFS¨t²Î©Ò´£¨Ñªº¼u©Ê¡A§Ú­Ì«Ü»´©öªº¥i¥H°w¹ï¶¡±µ¦¡¶Ç¿é³]­p¥X¤@­Ó¯u¥¿¥i¥H¹ê»Ú¹B¥ÎªºFTP¨t²Î¡C

 

 

¹Ï 16       ¶¡±µÀÉ®×¶Ç¿é¬[ºc

 

¦p¦P¹q¤l¶l¥ó¤l¨t²Î¤@¼Ë¡AÀÉ®×¶Ç¿é¤l¨t²Î¤À¬°FTP Client Proxy¡BFTP Server Proxy¨â³¡¤À¡A¦P®É§Ú­Ì¤]³]­p¤F¤@­Ó²³æªºFTPÀ³¥Îµ{¦¡¨Ï¥ÎªÌ¤¶­±¡A¨Ó¯u¥¿±±¨îFTPªº¹B§@¡C

 

¨Ï¥ÎªÌ¥i¥H­n¨D»·ºÝFTP Server Proxy¥N¬°³s±µ­þ¤@¥xFTP¦øªA¾¹¡A¤§«á¦b¨Ï¥ÎªÌºÝ©Ò¬Ý¨ì¡B©Ò·Pı¨ìªºÀɮ׶ǿ鱡ªp³£·|¸ò¨Ï¥Î¤@¯ëªºFTPµ{¦¡¤@¼Ë¡C¦Ó¨Æ¹ê¤W¡A©Ò¦³¨Ï¥ÎªÌªºÀÉ®×¶Ç¿é­n¨D¡AFTP Server Proxy³£·|¥N¬°Âର¦V©Ò«ü©wªºFTP¦øªA¾¹´£¥X¬Û¦Pªº­n¨D¡AÀɮתº¶Ç¿é·|¥ý¤U¸ü¨ì»·ºÝGFSªºÀɮרt²Î¤¤¡A¦A¶Ç¦^¨Ï¥ÎªÌºÝªºGFS¨t²Î¤§¤¤¡A³Ì«á¦A¥ÑFTP Client Proxy§âÀɮ׶Ǧ^µ¹À³¥Îµ{¦¡ºÝ¡C

 

§Ú­Ì§Q¥Î¨t²Î©Ò´£¨Ñªº©R¦W³W«h¡A¥HÃþ¦üAFSªº¤è¦¡¡A§i¶D»·ºÝªºFTP Server Proxy©Ò»Ý­nªºÀɮצì¸m¡A¥Ñ»·ºÝªºFTP Server Proxy¥N¬°¨ú±o©Ò»Ý­nªºÀɮסC¦b³o¤§¤¤¡AGFS¦P¼Ë¤w¸g¥N¬°³B²z±¼¤j³¡¤Àªººô¸ô¶Ç¿é°ÝÃD¡A¦P®É¹ï©óÀɮתº§Ö¨ú¥H¤Î¿ù»~§ó¥¿µ¥°ÝÃD¡A¤]³£´£¨Ñ¤F§¹¾ãªº¸Ñ¨M¤èªk¡C

 

¦b¼¶¼gFTPºô¸ô¶Ç¿éªA°È¤§®É¡A¥u­n³z¹L¨t²Î©Ò´£¨ÑªºÀ³¥Îµ{¦¡¤¶­±¡]API¡^¡A®M¥Î¬J¦³ªºµ{¦¡®Ø¬[¡A´N¯à«Ü§Öªº³]­p¥X¤@­Ó¨ã¦³°ª®Ä²v»P°ª«×ºô¸ô¶Ç¿é®e§Ô¯à¤OªºÀ³¥Îµ{¦¡¡C


²Ä¥|³¹                  ¹ê§@

4.1           ¨t²Î¹ê§@Àô¹Ò

¨t²Î¥D­nªº¹ê§@Àô¹Ò¦p¤U

 

¦øªA¾¹³¡¤À    Solaris 2.6, SUN JDK 1.1.6

«È¤áºÝ³¡¤À    Microsoft Windows 95, SUN JDK 1.1.6

 

¦øªA¾¹³¡¤À¥Ñ©ó¥Ø«e¤j³¡¤Àªº«H¥ó¦øªA¾¹³£¥HUNIX¬°¥D¡A¦]¦¹¬°¤F¯à¨Ï¥»¨t²Î¤¤ªº¹q¤l¶l¥ó¤l¨t²Î¯à¥¿±`¹B§@¡A¦]¦¹¦øªA¾¹¥²¶·«Ø¸m¦bUNIXªº¾÷¾¹¤W¡A¥t¥~¤]¥Ñ©ó¨t²Î³\¦h¥\¯à¤Wªº»Ý­n¡AJava¥²¶·¨Ï¥ÎJDK 1.1 [22]¥H¤Wªºª©¥»¡C¦]¦¹§Ú­Ì¿ï©wªºµ{¦¡µo®iÀô¹Ò´N¥ÑSolaris·f°tWindows 95§@¬°Server/Clientªº§@·~¥­¥x¡C

 

¥»¨t²Î¥ç´¿¸g©óSolaris/Solaris»PLinux/Win95ªºServer/ClientÀô¹Ò´ú¸ÕµL»~¡A©Ò¨Ï¥ÎªºJava¥ç§¡¬°JDK 1.1¥H¤Wªºª©¥»¡ASolarisªºclientÀô¹Ò¥²¶·¦bX-window¤U¨Ï¥Î¡C

 

¦b¨Ï¥ÎJava¶}µo¥»¨t²Î®É¡A©Ò¨Ï¥Î¨ì¤ñ¸û¯S§OªºJDK API¥D­n¥]§t¤U¦C´X­Ó­«ÂI¡A¦³¤@¨Ç¬OÄÝ©óJDK 1.1©Ò¿W¦³ªº³¡¤À¡G

 

1.     Object Serialization

¥D­n¬O¥Î¦bGFS¤§¶¡°T®§ªº¶Ç¿é¡A¥H¤Î§Q¥Î¦¹¾÷¨î±N¼È®É¥¼¯à¶Ç¿é¥X¥hªº°T®§Àx¦s¦bµwºÐ¤¤¡C

2.     Compression API

ÂǧU©óJDK 1.1©Ò´£¨ÑªºCompression API¡A¨t²Î¥i¥H«Ü»´©öªº¹ï°T®§¤§¶Ç»¼°µÀ£ÁY¡A¦³®Ä­°§C¶Ç¿é¶q¡C

3.     CRC Checking

¨t²Î¨Ï¥ÎJDK 1.1ªºCRC32 checksum¨Ó½T«O¶Ç¿éªº¸ê®Æ¯à¥¿½T¶Ç¿é¨ì¥Øªº¦a¡C

4.     AWT delegation model

¦bÀ³¥Îµ{¦¡ºÝ¡A§Ú­Ì¨Ï¥ÎAWT 1.1ªºdelegation event model¡A¨Ï±oµ{¦¡µe­±³¡¤À©ö©ó³]­p¡A¦P®É¼W±j¨ä°õ¦æ®Ä²v¡C

 

 

4.2           µ{¦¡¬[ºc»¡©ú

¹q¤l¶l¥ó¤l¨t²Î¤è­±¡Aµ{¦¡Á`¦@¤À¬°¥|¤j³¡¤À¡AGFS¡BMail Client Proxy¡BMail Server Proxy¥H¤ÎÀ³¥Îµ{¦¡ºÝªºMail Explorer¡C¥t¥~ÀÉ®×¶Ç¿é¤l¨t²Î¤è­±¡A«h¦³FTP Server Proxy¡BFTP Client Proxy¥H¤Î¨äÀ³¥Îµ{¦¡ºÝ¨Ï¥ÎªÌ¤¶­±Proxy FTP¡C

 

GFS¬°¨t²Î³Ì¥D­nªº©³¼h¬[ºc¡A­t³d¤j³¡¤Àªººô¸ô¶Ç¿é¤u§@¡F¦b¨t²Î±Ò°Ê¤§ªì¡AGFS·|¬°¨C¤@¶µºô¸ôªA°È¤À§O¶}¤@­Ó°õ¦æºü¡]Thread¡^¡A¥]§tMail Client/Server Proxy¥H¤ÎFTP Client/Server Proxy¡C

 

Mail Server Proxy«h­t³d¯u¥¿¹ïmail spool»P¨Ï¥ÎªÌ¦Û¤vªº«H½c§@°Ê§@¡AMail Client Proxy«h­t³d±µ¨üMail Explorerªº³s½u­n¨D¡A¤@¯ë¨Ï¥ÎªÌ¬Ý¨ìªº´N¬O³o­ÓMail Explorer¤¶­±¡C¤U­±¤À¬q¸Ô²Ó¤¶²Ð¦U³¡¤À¡G

 

A.  GFS

 

GFS¥iµø§@¤@­Ó©³¼hªººô¸ôÀɮרt²Î¡AÀ³¥Îµ{¦¡¥i±N­ì¥ýªº³\¦h¥²¶·¸g¥Ñºô¸ô¶Ç¿éªº­n¨DÂà¤Æ¦¨¹ïGFSÀɮתº¦s¨ú¡A¥ÑGFS¥N¬°³B²zºô¸ô¶Ç¿é³¡¤À¡A¦P®ÉGFS·|¹ï³o¨ÇÀÉ®×°µ¾A·íªº§Ö¨ú¥H¤ÎºûÅ@§Ö¨úªº¤@­P©Ê¡F¥t¥~¡AGFS¤]¥i¥N¤W¼hªººô¸ôªA°È¶Ç»¼°T®§¡C

 

¦ÓGFS»PGFS¤§¶¡³o¨Ç¸g¥Ñºô¸ô¶Ç»¼ªº°T®§¡A³£·|¥ÑGFSªº¦î¦C¾÷¨î½T«O°T®§¤£·|¿ò¥¢¡A¦P®É¹ï©ó©|¥¼³B²zªº°T®§¡A¤]·|Àx¦s©óµwºÐ¤§¤¤¡Aª½¨ì°T®§³Q³B²z§¹¬°¤î¡C

 

GFS¨t²Î¦bªì©l¤Æ¤§®É¡A·|¦P®É±Ò°Ê±¾¦b¨ä¤Wªº¦U­Óºô¸ôªA°È¡A¨Ò¦pMail Proxy»PFTP Proxy¡A¨Ã¶}©l±µ¨üproxy¹ïGFSªº©I¥s¥H¤Î»·¤èGFSªº³s±µ¡CGFS·|¦b©Ò«ü©wªº¥Ø¿ý¤UºûÅ@¤@¥÷¡uGeneral File System¡v¡A¦¹µêÀÀÀɮרt²Î°£¤F´£¨Ñ¤W¼hºô¸ôªA°È¸m©ñ¬ÛÃöªºÀÉ®×¥H¤Î§Ö¨ú¤§¥~¡A¤]¬O¨t²Î¥¼°e¥X°T®§¥Ã¤[Àx¦sªº¦a¤è¡C

 

B.  Mail Server Proxy

 

Mail Server Proxy ­t³d¨ú«H»P°e«Hªº¯u¥¿°Ê§@¡F¨ú«H®Éª½±µ¦Ûmail spool¤¤¦s¨ú¡A°e«H®Éª½±µ¸g¥ÑSMTP³q°T¨ó©w»P«H¥ó¦øªA¾¹·¾³q¡CMail Server Proxy¥D­n¬O±µ¨üGFSªº©I¥s¡A³B²z»·ºÝMail Client Proxy¹ïGFSªº¦s¨ú°Ê§@¡C

 

C. Mail Client Proxy

 

Mail Client Proxy­t³d±µ¦¬»P³B²zÀ³¥Îµ{¦¡¡]Mail Explorer¡^ªº°T®§»P©R¥O¡A¨Ã±N¤§Âà¤Æ¬°¹ïGFSÀɮרt²Îªº¦s¨ú¡A¦b¨ú±o©Ò»Ý­nªº°T®§«á¡A¦A¶Ç¦^µ¹À³¥Îµ{¦¡ºÝ¡C

 

D. Mail Explorer

 

Mail Explorer¬O¨Ï¥ÎªÌ±µ¨ú¤Îµo°e«H¥óªºGUI¤¶­±¡AMail Explorer¸g¥Ñ§Ú­Ì©Ò©w¸qªº¤@®MMobile Mail Protocol ¡]«á¸Ô­z¡^¹ï¦ì©ó¨Ï¥ÎªÌºÝªºMail Client Proxyµo°e©Ò»Ý­nªº©R¥O¡C

 

GFSªº°õ¦æµe­±¦p¤U©Ò¥Ü¡G

¹Ï 17       GFS°õ¦æµe­±

 

±Ò°ÊGFS»Ý«ü©w¤@­Ó¥Ø¿ý¨Ó·í§@GFSªºµêÀÀÀɮרt²Î¡A¤W¹Ïªº¨Ò¤l¬Ofile-system/ ¤l¥Ø¿ý¡A¦bGFS±Ò°Ê¤§«á¡A·|¶}±Ò¦UÃþService Proxy¡A¨Ò¦pMail¤ÎFTP Proxy¡A¦P®É¶}©l±µ¨ü»·ºÝGFSªº³s±µ¥H¤Î¤W¼hºô¸ôªA°Èªº©I¥s¡C

 

 

 

 

 

4.3           GFS¤§Àɮצs¨ú¥\¯à

¦p«e©Ò­z¡AGFS¬°¤@µêÀÀªºÀɮרt²Î¡A¥Ø«e´£¨Ñ¤W¼hºô¸ôªA°È¤@¨Ç°ò¥»ªºÀɮצs¨ú»P°T®§µo°eªº¥\¯à¡AGFS©Ò´£¨Ñªº¨ç¼Æ©Ò±µ¨üªºÀɦW§¡¬°¦bGFS¨t²Î¤¤ªºÀɦW¡A¨Ã¤£¬O¯u¥¿§@·~¨t²Î±µ¨üªºÀɦW¡C¥Ø«eGFS¶È´£¨Ñ¤»¤j¥\¯à¨ÑService Proxy©I¥s¤§¥Î¡A¥]§t¦p¤U¡G

 

1.      gfsFile()

¦¹¨ç¼Æ¥Î¥H¨ú±oGFS¨t²Î¤¤¬Y¤@Àɮתº¸ê°T¡C

2.      gfsRead()

¦¹¨ç¼Æ¥Î¥HŪ¨úGFS¨t²Î¤¤ªºÀɮסC

¨         ¦pªG¸ÓÀɮצb«È¤áºÝ¤w¦s¦b¡A«hª½±µ±N¸ÓÀɶ}±Ò«á¦^¶Ç¡C

¨         ¦pªG¸ÓÀÉ®×Äݩ󻷺ݩҦ³¡A«h¦³¨âºØ¿ï¾Ü¡G

a.    ¤£»ÝÅçÃÒ§Ö¨ú¬O§_³Ì·s

¦¹®É­Y§Ö¨ú¤¤¤w¦³¸ÓÀɮצs¦b¡A«hª½±µ¶}±Ò¦^¶Ç¡C

­Y¤£¦s¦b¡A«h¦A¦V»·ºÝGFS´£¥X­n¨D¡C

b.    ÅçÃÒ§Ö¨ú¤§¥¿½T»P§_

¦¹®É·|¦V»·ºÝªºGFSÅçÃÒ¦¹ÀɬO§_¦³§ó·s¹L¡A­Y¦³§ó·s¡A«h±N·sªºÀɮ׶Ǧ^¡A­Y¥¼§ó·s¡A«h±N§Ö¨ú¤¤ªºÀɮת½±µ¶Ç¦^µ¹¤W¼hproxy¡C

3.      gfsWrite()

¦¹¨ç¼Æ¥Î¥H¶}±ÒGFS¨t²Î¤¤ªºÀɮרѼg¤J¤§¥Î¡C

¦¹¨ç¼Æ¶Ç¦^OutputStream¡A¦b¼g¤J§¹¦¨«á»Ý¦Û¦æ±N¨äÃö³¬¡A¦Ü©ó¼g¤J¸ÓÀɪº¥Î·N¬°¦ó¡A¦¹¨ç¼Æ¨Ã¤£§@³B²z¡C

4.      gfsSave()

¦¹¨ç¼Æ¥Î¥H±NGFS¨t²Î¤¤ªº¤@­Ó·sÀɮ׸ê°T§iª¾»·¤èªºGFS¡A¸ÓÀÉ®×¥i¯à¬O¸g¥ÑgfsWrite() ¼g¤JGFS¤¤ªº¡C¨Ò¦p¦b¥»¨t²ÎªºMail Client Proxy¡A§Y¬O§Q¥Î¦¹¨ç¼Æ¨Ó³qª¾»·ºÝªºMail Server Proxy¦³·s«H¥ó­n°e¥X¥h¡C

5.      gfsFetch()

¦¹¨ç¼Æªº°Ê§@²¤¦P©ógfsRead()¡A¦ý¦¹¨ç¼Æ·|¥ß§Yreturn¡AŪ¨úÀɮתº°Ê§@·|©ñ¦b­I´º³B²z¡C¦¹¨ç¼Æªº³Ì¥D­n¥Î³~¬O´£¨Ñ¦æ°Ê­pºâÀô¹Ò¤U¡A¦bÂ÷½u«e¡A§iª¾¨t²Î¹w¥ý¤U¸ü¬Y¨Ç±N¨Ó¥i¯à·|Ū¨úªºÀɮפ§¥Î¡C

6.      sendMessage()

¦¹¨ç¼Æ¥i´£¨Ñ¤W¼hªººô¸ôªA°Èµo°e°T®§¤§¥Î¡Aµo°e°T®§ªº®æ¦¡¥i¥Ñ¤W¼hºô¸ôªA°È¦Û©w¡AGFS¶È±N¤§µø¬°¤@­Óª«¥ó¡A§Q¥ÎJDK 1.1©Ò´£¨ÑªºObject Serialization±N°T®§¶Ç»¼¥X¥h¶Ç»¼¥X¥h¡C

¤W­±³o¨Ç¨ç¼Æ¥D­n¤j¦h¥Ñ«È¤áºÝªºproxy©I¥s¨Ï¥Î¡A¥Ñclient proxyÂǥѩI¥s¨Ï¥Î¾A·íªº¨ç¼Æ¨Ó¨ú±o©Ò»Ý­nªººô¸ôªA°È¡C

 

¦Ó³o¨Ç©R¥O­n¨D§¡·|¤ÏÀ³¨ì¦øªA¾¹ºÝªºserver proxy¡A»·ºÝªºGFS·|ÂǥѩI¥sserver proxyªº¤T­Ócall back function¡A¨Ó¹F¦¨client proxy©Ò­n¨Dªº°Ê§@¡C¦]¦¹server proxy¥²¶·­n¹ê§@¡]implement¡^¤U¦C¤T­Óabstract function¡G

 

1.      refresh_file()

 

¦¹¨ç¼Æ¬O¥ÑGFS¸ß°Ýserver proxy¬Y­ÓÀɮ׬O§_»Ý­n§ó·s¡A­Y»Ý§ó·s¡A«h¥Ñserver proxy­t³d§ó·sÀɮרt²Î¤¤ªºÀɮסF­Y¤£»Ý§ó·s¡A«hª½±µ¦^¶ÇÀɮץثeª¬ºA¡C

 

¦¹¨ç¼Æªº§@¥Î¬O¦bserverºÝ¹ï©óclientºÝªºgfsRead()¡BgfsFetch() µ¥©I¥s¡A´£¨Ñ¥¿½TªºÀɮ׸ê°T¡C¨Ò¦p¦b¹q¤l¶l¥ó¤l¨t²Î¤¤¡AŪ¨ú«H¥ó¦Cªí¡BŪ¨ú«H¥óµ¥¥\¯à¡A§¡¬OÂǥѩI¥smail server proxy¦¹¨ç¼Æ¨Ó¨ú±o»Ý­nªº¸ê°T¡C

 

2.      notify_file()

 

¦¹¨ç¼Æ¬O¥ÑGFS³qª¾server proxy¡A»·ºÝªºGFS¤wÀx¦s¤@­ÓÀɮרìGFSÀɮרt²Î¤§¤¤¡Aserver proxy¥i¦b¦¹¨ç¼Æ¤¤°µ¬Û¹ïÀ³ªº°Ê§@¡C

 

¦¹¨ç¼Æ§@¥Î¬O¦b¦øªA¾¹ºÝ¹ï©ó«È¤áºÝªºgfsSave() ©I¥s¡A°w¹ï¸Ó¶µºô¸ôªA°È©Ê½è°µ¥X¬Û¹ïÀ³ªº°Ê§@¡C¨Ò¦p¦b¥»¨t²Î¤¤ªºmail client proxy·|§â°e¥Xªº«H¥ó¥ý¦s¨ìGFS¤¤¡A¦A³qª¾»·ºÝªºmail server proxy¦³·sªºÀɮצs¤JGFS¡AµM«á¥Ñ»·ºÝªºproxy±N«H¥óÂÇ¥ÑSMTP¯u¥¿±N«H¥ó°e¥X¡C

 

3.      notify_msg()

 

¦¹¨ç¼Æ¬O¥ÑGFS³qª¾server proxy¡A»·¤èªºclient proxyÂÇ¥ÑGFS°e¹F¤@­Ó°T®§ª«¥ó¡C¸Ó°T®§ª«¥ó®æ¦¡¥Ñclient proxy»Pserver proxy¦@¦P¨M©w¡A¦]¦¹server proxy§Y¥i®Ú¾Ú¸Ó°T®§ª«¥ó¤º®e°õ¦æ¨ä¹w¥ý»Pclient proxy¨ó©w¦nªº°Ê§@¡C

 

¦¹¨ç¼Æ¥Øªº¬O¦b¦øªA¾¹ºÝ¹ï©ó«È¤áºÝªºsendMessage()©I¥s°µ¥X¾A·íªº¤ÏÀ³¡C¨Ò¦p¦b¥»¨t²Î¤¤¡Amail client proxy­n¨D«Ø¥ß·sªº«H¥ó§¨¡B§R°£¬Y«Ê«H¡B¥H¤ÎÀx¦s«H¥óªº°Ê§@¡A³£¬OÂǥѰT®§ª«¥ó¦V»·ºÝªºmail server proxy´£¥X­n¨Dªº¡C

 

¦]¦¹¡A¬°¤FÅý¨C¤@­Óserver proxy³£¯à¹ïclient proxyªº©I¥s§@¥X¤ÏÀ³¡AServer Proxy¥²¶·Ä~©Ó¤U¦CªºÃþ§O¡A¦P®Éoverride¤T­Ó¨ç¼Æ¡G

 

abstract public class ServerProxy extends Proxy {

    abstract public FileStatus refresh_file( String filename );

    abstract public boolean notify_file( String filename );

    abstract public Object notify_msg( Object msg );

}

 

¤W­zªº©Ò¦³¨ç¼Æ¤§¤¤¡A§Ú­Ì¤]¦³´£¨Ñ¤@­Ó¿ï¶µ¡A¥i¥H¬°©Ò·Q­nŪ¨úªºÀÉ®×¥[¤W±K½XºÞ¨î¡A¨Ò¦p§Ú­ÌªºÀÉ®×¶Ç¿é¤l¨t²Î´N¬O§Q¥Î³o­Ó¤èªk¨Ó¹ï¨Ï¥ÎªÌªº¨­¥÷§@»{ÃÒ¡A¨Ó¨ú±oµn¤J¦Ü»·ºÝ¨t²ÎªºÅv§Q¡C

 

¹Ï 18      Service Proxy»PGFS¤§¶¡ªº¤¶­±

 

4.4           GFS¤§°T®§¶Ç»¼¥\¯à

GFS»PGFS¤§¶¡ªº³q°T¡A§¡¬O¥H¤@­Ó¤@­Óªº ¡¨Message Block¡¨ ¬°³æ¦ì¡AMessage Block¥i¶Ç°eGFS¤§¶¡ªº©Ò¦³©R¥O­n¨D¡B¦UÃþÀɮסB¤Î°T®§µ¥¡CGFS¶Ç»¼Message Blockªº¤è¦¡¬O±Ä¥ÎJDK 1.1´£¨ÑªºObject Serialization±N¤§¥HObject¤è¦¡ª½±µ³z¹Lºô¸ô¸ê®Æ¬y¶Ç°e¡C

 

¹ï©ó¤£»Ý§Y®É°e¥X¡A©ÎªÌ¦]ºô¸ô°ÝÃD¡A¼È®ÉµLªk°e¥XªºMessage Block¡A§¡·|³QÀx¦s¦bµwºÐ·í¤¤¡]persistent¡^¡C¹ï©ó¦¬¨ì¨Ó¦Û»·ºÝGFSªº Message Block¡A©|¥¼³B²zªº³¡¤À¤]¦P¼Ë·|³Q«O¦s©óµwºÐ¤§¤¤¡C

 

³o¨Ç¥¼¦¨¥\°e¥X©Î¥¼³B²zªºMessage Block·|¥Ñ¨t²Î©w®ÉÀˬd¬O§_¤w¥i³B²z¡A­Y¨t²Î·í±¼¡A¦b¨t²Î­«·s±Ò°Ê®É¡A¤]·|±NµwºÐ¤¤©|¥¼§¹¦¨ªº«ü¥OŪ¤J¡Aª½¨ì³B²z§¹©Ò¦³°T®§¬°¤î¡C

 

¦bGFS¶¡¶Ç»¼ªºMessage Block¡A§¡·|§Q¥ÎCRC32 checksum§@¿ù»~Àˬd¡A¦P®É¤¬¬Û§@½T»{¡]acknowledgement¡^¡A½T«O°T®§¥¿½TµL»~ªº°e¨ì¹ï¤è¡C¦Ó¶Ç°e°T®§®É¡AGFS¤]·|³]ªk¨Ì¾Ú­ì¨Óµo°eªº¶¶§Ç³B²z¡A¥Hºû«ù°T®§¶Ç¿éªº¥ý«áÃö«Y¡C

 

¦pªG¶Ç°eªº¬O¤@­ÓÀɮסAGFS¦P®É·|¹ï¸ÓÀÉ®×§@À£ÁY¡A´î§C¶Ç¿éªº°T®§¶q«á¦A°e¥X¡C¤@¯ë¦Ó¨¥¡AÀ£ÁYªº°Ê§@¥i¥H¤j´T­°§C³q°T¶q¦Ü50%¥ª¥k¡C

 

¹ï©óÀɮתºÅª¨ú°Ê§@¡AGFS·|¦Û°Ê½T»{§Ö¨ú¤¤ªº¸ê®Æ¬O§_»Ý­n§ó·s¡A«D¥²­n¤£®ö¶OÃB¥~ªººô¸ôÀW¼e¡C¦P®É¥Ñ©ó¦U­Ó¨t²Îªº®É¶¡¥i¯à¤£¬O¦P¨Bªº¡A¦]¦¹¦p¦ó§PÂ_Àɮ׬O§_§ó·sÅܱo«Ü³Â·Ð¡C¦]¦¹¡AGFS·|¦b«È¤áºÝªºÀɮרt²Î¤¤ªº¨C¤@­Ó¥Ø¿ý¡AÀx¦s¤@­ÓÀÉ®× .dir ¬ö¿ý¸Ó¥Ø¿ý¤UÀÉ®×©ó¦øªA¾¹¤WªºLast Modified Time¡AGFS§Y·|ÂǦ¹°O¿ý¨Ó»P¦øªA¾¹¦@¦PÀ˵øÀɮ׬O§_§ó·s¡A¶i¦Ó¨Ó¹F¨ì®É¶¡¦P¨B¡]Time synchronization¡^ªº»Ý¨D¡C

 

4.5           Mail Client Proxy»PÀ³¥Îµ{¦¡¶¡ªº¤¶­±

¦bÀ³¥Îµ{¦¡»PMail Client Proxy ¤§¶¡ªº¤¶­±³¡¤À¥Ñ©ó»Ý­n¦Ò¼{¯S®íºô¸ôÀô¹Ò¡]¦pmobile¡^ªº¯S©Ê¡A¥H§@§ó¦³®Ä²vªº¦s¨ú¡A¦]¦¹ª½±µ¨Ï¥Î¦³ªºPOP3 protocol¨Ã¤£¾A¦X¡A¦]¦¹¦b³o³¡¤À¡A§Ú­Ì³]­p¤F¤@­Ó²³æªº³q°T¤¶­±¡A¥Î¥H¹ï¯S®íºô¸ôÀô¹Ò¦³§ó¨Îªº¾AÀ³¤O¡A¦P®É¤]°w¹ïPOP3¨S¦³¦Ò¼{¨ìªº°e«H³¡¤À´£¨Ñ¤ä´©¡C

 

¦¹³q°T¨ó©w¦b¥»¨t²Î¤¤ºÙ¤§¬°Mobile Mail Protocol¡A¨Ï¥ÎªºTCP port¬° 5510¡C¦b¦¹³q°T¨ó©w¤¤¡Aclient proxy¬°³Q°Êªºµ¥«Ý¨Ó¦ÛÀ³¥Îµ{¦¡ªº³s½u½Ð¨D¡C¥Ñ©óÀ³¥Îµ{¦¡»Pclient proxy §¡¦b¦P¤@¥x¾÷¾¹¤W¡A¦]¦¹¨âªÌ¤§¶¡ªº³s½u¥i¯à·|¤@ª½ºû«ù¡C

 

©R¥O»P¦^À³¤§°T®§®æ¦¡§¡¬°¥H \r \n µ²§À¤§ ASCII ¦r¦ê

¦bÀ³¥Îµ{¦¡ºÝ±o¨ìªº¦^À³¬O¥H¤@­Ó 3 ¦ì¼Æªº¼Æ¦r¥N½X¬°­º¡A¥N½Xªº·N¸q±Ä¥ÎÃþ¦üSMTP/NNTP [6]ªº¤ÀÃþ¦p¤U¡G

 

1xx - °T®§¸ê®Æ

2xx - «ü¥O¥¿½T

3xx - «ü¥O©|¥¼§¹¦¨¡A»ÝÄ~Äò¶Ç°e¨ä¥¦¸ê®Æ

4xx - «ü¥O¥¿½T¡A¦ý¦]¬Y¨Ç­ì¦]¦ÓµL®Ä

5xx - «ü¥O¥¼´£¨Ñ¡B¿ù»~©Î¬OÄY­«ªºµ{¦¡¿ù»~µo¥Í

6xx - «ü¥O¥¿½T¡A¦ý¸ê®Æ¥i¯à¿ù»~

 

x0x - ¥¼³q¹L¨­¥÷½T»{¡A³s½u¥¿±`

x1x - ¤w³q¹L¨­¥÷½T»{¡A³s½u¥¿±`

x2x - ³s½u±N­n¤ÁÂ_

 

xx0 - ¶È¦³¤@¦æ¦^À³

xx1 - «á©|¦³¤@¦æ¤§¦^À³

xx2 - «á¦³¦h¦æ¦^À³¡A¥H '.' ¤@¦æµ²§ô

 

¦b¦¹¥N½X«á·|¸òÀHµÛ¤@¨Ç¤å¦r¸ê°T¡A¨Ì¦^À³ªºª¬ºA¦Ó¦³©Ò¤£¦P¡C

 

©R¥O³¡¥÷¡A«h¥H POP3 ¬°°ò¦¡A¨Ã¦b¦Ò¶q¯S®íºô¸ôÀô¹Ò¤U¡A§@¤@¨ÇÂX¥R¡C·í©R¥O©Î¦^À³»Ý­n¦h¦æªº°T®§®É¡A«h¥H¶È¦³¤@­Ó . ¤§¤@¦æ§@¬°°T®§¤§µ²§ô¡C­º¥ý·íÀ³¥Îµ{¦¡³s±µ¤WMail Client Proxy®É¡]TCP port 5510¡^¡Aproxy·|¦^À³¤U¦C³s±µ¥¿½Tªº°T®§¡G

 

100 java.csie.nctu.edu.tw E-Mail Proxy Ready

 

±µ¤U¨Ó¡A¤À¬°¨â­Ó¶¥¬q¡A­º¥ý¥²¶·³q¹L¨­¥÷½T»{¡A¦¹¬°»{ÃÒ¶¥¬q¡]authentication phase¡^¡A±µ¤U¨Ó´N¥i¥H§@¦UÃþªºÅª«H¡B¨ú«Hµ¥°Ê§@¡A§Y°Ê§@¶¥¬q¡]communication phase¡^¡C¥H¤U¡A§Ú­Ì´N°w¹ï³o¨â­Ó¶¥¬qªº¦UºØ©R¥O§@¤@¨Ç»¡©ú¡C

 

Authentication Phase

 

<©R¥O> SERV [hostname]

<¥\¥Î> ¿ï¾Ü Mail server¡A§iª¾proxy¥N¬°³s±µ­þ¥xªºmail server

<¦^À³> 200 set mail server to [hostname]

<©R¥O> AUTH [username] [password]

<¥\¥Î> ¶i¦æ¨­¥÷½T»{

<¦^À³> 210 [username] login on [hostname]

 

Communication Phase

 

<©R¥O> INDEX

<¥\¥Î> ¨ú±o©Ò¦³«H½c¦Cªí

<¦^À³> 212 mailboxes follows

<¦^À³> inbox

<¦^À³> outbox

<¦^À³> .

 

<©R¥O> SELECT [mail-box]

<¥\¥Î> «ü©w§@¥Îªº«H½c

<¦^À³> 210 [mail-box] selected.

 

<©R¥O> LIST

<¥\¥Î> ¦C¥X«H½c¤¤¤§«H¥ó¸ê°T

<¦^À³> 212 mails in [mail-box] follows.

<¦^À³> C  msg-id  date  email-from  email-to  lines  size  subject

<¦^À³> C  msg-id  date  email-from  email-to  lines  size  subject

<¦^À³> .

¡]¸g¥ÑLIST©R¥O¦^À³µ¹À³¥Îµ{¦¡ªº¸ê°T¥]¬A¤U¦C¤K¶µ¡^

1.       ¦¹«Ê«H¬O§_¦³§Ö¨ú¤§¦s¦b¡]C / U¡^

2.       ¦¹«Ê«Hªº¥N¸¹

3.       ¦¹«Ê«Hªº¤é´Á

4.       ±H«HªÌªºE-Mail address

5.       ¦¬«HªÌªºE-Mail address

6.       «H¥ó¦æ¼Æ

7.       «H¥ó¤j¤p

8.       «H¥ó¼ÐÃD

 

<©R¥O> RETR [msg-id]

<¥\¥Î> ¨ú±o«H¥ó

<¦^À³> 212 content of [msg-id] in [mail-box] follows

<¦^À³> <RFC 822 mail content>

<¦^À³> .

 

<©R¥O> PREFETCH

<¥\¥Î> ¹w¥ý¨ú±o«H¥ó

<¦^À³> 310 send the msgid to be prefetched, ends with '.'

<©R¥O> msg-id-1

<©R¥O> msg-id-2

<©R¥O> .

<¦^À³> 210 total 2 prefetch requests sent.

 

<©R¥O> DEL [msg-id]

<¥\¥Î> §R°£«H¥ó

<¦^À³> 210 [msg-id] deleted in [mail-box]

 

<©R¥O> SEND [email-addr]

<¥\¥Î> °e¥X«H¥ó

<¦^À³> 310 send your message in RFC 822 format

<©R¥O> <RFC 822 mail content>

<©R¥O> .

<¦^À³> 210 message sending.

 

<©R¥O> SAVE [msg-id] [mail-box]

<¥\¥Î> ¦s¤J«H¥ó

<¦^À³> 210 saved [msg-id] in [mail-box] into [mail-box]

 

<©R¥O> NEW [folder-name]

<¥\¥Î> ·s¼W«H¥ó§¨(«H½c)

<¦^À³> 210 [folder-name] created

 

<©R¥O> HELP

<¥\¥Î> ¨ú±o©R¥O»¡©ú

<¦^À³> 212 useful commands follows

<¦^À³> <help message>

<¦^À³> .

 

<©R¥O> QUIT

<¥\¥Î> µ²§ô³s½u

<¦^À³> 120 Bye!

 

¥H¤W©Ò­zªºMobile Mail Protocol¾ã²z¦p¤U¡G

 

¡· Authentication phase

 

SERV [hostname]                               select a mail server

AUTH [username] [passwd]               authentication phase login

 

 

¡· Communication phase

 

INDEX                                          list mailboxes in this account

SELECT [mailbox]                      select an active mailbox

LIST                                              information of the mails in mailbox

RETR [msg-id]                             retrieve the mail with msg-id

DEL [msg-id]                               delete the mail with msg-id

SEND [email-addr]                     send the mail to an email address

SAVE [msg-id] [mail-box]           save the mail in mailbox

NEW [folder]                                create a new mail folder

PREFETCH                                 prefetch mails

HELP                                            available commands

QUIT                                             say goodbye

 

 

²¨¥¤§¡A§Ú­Ì©Ò³]­pªº¶l¥ó¶Ç¿é¨ó©w¤ñ¶Ç²ÎªºPOP3 ¥[±j¤F´X­Ó¥\¯à¡G

 

1.       ¦h­««H½c³B²z¥\¯à (INDEX, SELECT)

2.       §ó¸Ô²Óªº«H¥ó¸ê°T (LIST)

3.       °e«H¥\¯à (SEND)

4.       ¹w¥ý¤U¸ü¥\¯à (PREFETCH)

5.       ¦b¦øªA¾¹¤Wªº«H¥ó³B²z (SAVE, NEW, DEL)

 


 

4.6           Mail Proxy¤§ÀɮשR¦W³W«h

 

Mail Client Proxy¦b±µ¨ìMail Explorerªº½Ð¨D¤§«á¡A¥²¶·±N¤§Âà¤Æ¬°¹ïGFSÀɮרt²Îªº¦s¨ú¡C¦]¦¹¡A¦b³o­Ó¦a¤è¡A¾A·íªº©R¦W³W«h´NÅܦ¨¤@­Ó«Ü­«­nªº½ÒÃD¡F¦b³o¤@¤p¸`¡A§Ú­Ì±N°w¹ï¶l¥óªA°È¦bÀɮרt²Î¤¤ªº©R¦W¤è¦¡°µ¤@¨Ç©w¸q¡C

 

­º¥ý¡A¦b½Í¨ìMail Proxyªº©R¦W¤è¦¡¤§«e¡A¥ý¨Ó¬Ý¬ÝGFS¥»¨­¤º©wªº©R¦W³W«h¡G

 

/ IP-Address / service /

 

©Ò¦³proxy service¦bGFS¨t²Î¤ºªºÀɮ׳£¥²¶·¦ì©ó¤W­z³W©wªº©R¦W¥Ø¿ý¤§¤U¡AIP-Addressªí¥Ü¦øªA¾¹ºÝªº¦ì§}¡A¦Óserviceªí¥Ü¸Óproxyªº¦W¦r¡]¦p¡¨mail¡¨©Î¡¨ftp¡¨¡^¡C

 

¦b¦¹¥Ø¿ý¤Uªº©Ò¦³ÀÉ®×§¡¬°¸Óproxy service©Ò¾Ö¦³¡A¨ä¤UÀɮתº©R¦W¤è¦¡¤]¥Ñproxy service¦Û­q¡AGFS¥u»{±o¤W­z³o«e¨â¼hªº¥Ø¿ý¡A¦Ó¨ä«áªº¥Ø¿ý«h¥æ¥Ñ¸Ó¶µproxy³B²z¡C

 

±µ¤U¨Ó¡A°w¹ïMail Proxyªº©R¦W³W«h¡A©w¸q¦p¤U¡G

 

¨Ï¥ÎªÌªº¥Ø¿ý                         / IP-Address / mail / username /

¨Ï¥ÎªÌªº«H½c¦Cªí                 / IP-Address / mail / username / index

¨Ï¥ÎªÌªºinbox«H½c               / IP-Address / mail / username / inbox /

¨Ï¥ÎªÌinbox«H½c¤§¸ê°T       / IP-Address / mail / username / inbox / index

¨Ï¥ÎªÌinbox«H½c¤ºªº«H¥ó   / IP-Address / mail / username / inbox / msgid

¨Ï¥ÎªÌªºoutbox«H½c             / IP-Address / mail / username / outbox /

¨Ï¥ÎªÌoutbox«H½c¤§¸ê°T     / IP-Address / mail / username / outbox / index

¨Ï¥ÎªÌoutbox«H½c¤ºªº«H¥ó / IP-Address / mail / username / outbox / msgid

 

¦]¦¹¡AMail Client Proxy·|±N©Ò¦³°e«H¡BŪ«Hªº°Ê§@¨Ì¾Ú¤W­zªº©R¦W¤è¦¡¡AÂন¹ïGFS¨t²ÎªºÀɮצs¨ú°Ê§@¡AµM«á¥ÑGFS±N¦¹¦s¨ú°Ê§@§iª¾»·ºÝªºGFS¡C

 

»·ºÝªºGFS¦¬¨ì¦¹°T®§«á¡A¦AÂાMail Server Proxy¡FMail Server Proxy¤]¬O®Ú¾Ú¤W­z¦P¼Ëªº©R¦W³W«h¡A´£¨Ñ¾A·íªºÀɮ׸ê°Tµ¹GFS¡C¤§«á¦A´`¦P¼Ë¸ô®|±N©Ò»Ý­nªº°T®§¶Ç¦^¨Ï¥ÎªÌºÝ¡C¤U­±¬O¤@­Ó¦b«È¤áºÝªºGFSÀɮרt²Îªº¤j·§¬[ºc¡G

 

¹Ï 19       ¶l¥ó¤l¨t²Î¥Ø¿ý¬[ºc

 

¦p¤W¹Ï©Ò¥Ü¡A¨Ï¥ÎªÌcdsheenªºinbox«H½c¤º¡A¨C¤@«ÊŪ¹Lªº«H¥ó¡A³£·|¥Hmsgid·í§@ÀɦW¡A¦s©ñ¤@¥÷¦b§Ö¨úÀɮרt²Î¤§¤¤¡C¦Ó³o¨ÇÀɮץѩ󳣦bmailªº¥Ø¿ý¤§¤U¡A©Ò¥H¤@¤Á°Ê§@³£·|¥ÑGFS¸ß°ÝMail Proxy¦p¦ó¹ï¦s¨ú¸ÓÀɮתº½Ð¨D§@¥X¾A·íªº¦^À³¡C

 

¨Ï¥ÎªÌ¥i¥H¨Ï¥Î¦h­ÓGFS¤Wªº«H½c¡A³o®É¾¨ºÞ¨Ï¥ÎªÌ±b¸¹¦WºÙ¤@¼Ë¡A¤]¤£·|²£¥Í²V²c¡A¦]¬°Àɮ׬O¥HGFSªºIP Address¨Ó·í§@¬°³Ì¤W¼hªº¥Ø¿ý¦WºÙ¡C


 

4.7           FTP Proxy¤§ÀɮשR¦W³W«h

¹ï©óÀÉ®×¶Ç¿é¤l¨t²Î¦Ó¨¥¡A©R¦W³W«h¥D­n¬O¼W¥[¤F¶¡±µ¶Ç¿éªº¥\¯à¡AÅýFTP Proxy¥i¥N¬°³s±µ©Ò«ü©wªºFTP¦øªA¾¹¡C¦b§Ú­Ìªº¹ê§@¤¤¡A§Ú­Ì±NÀɮשR¦W¬°¤U¦C§Î¦¡¡G

 

/ IP-Address / ftp / FTP-Address / username /

 

²Ä¤@­ÓIP-Addressªí¥Ü»·ºÝGFSªº¦ì¸m¡A¤]´N¬OFTP¥N²z¦øªA¾¹¡]FTP Server Proxy¡^©Ò¦bªº¦ì§}¡C±µ¤U¨Óªº¡uftp¡v«h¬Oªí¥ÜÀÉ®×¶Ç¿é¤l¨t²Î¡CFTP-Address«h¬O­n¨DFTP Proxy¥N¬°³s±µªº¯u¥¿FTP¯¸¦ì§}¡C³Ì«áªºusername«h¬Oµn¤J¸ÓFTP ¦øªA¾¹©Ò¥Îªº¨Ï¥ÎªÌ¦WºÙ¡C¦Ü©ó±K½X¡A«h·|¸g¥Ñ°Ñ¼Æ³]©w¡A¦b¨Ï¥ÎªÌºÝŪ¨úÀɮ׮ɶǤJ¡C

 

/ 140.113.209.112 / ftp / 140.113.214.168 / cdsheen / hello.c

 

¨Ò¦p¤W­±³o­Ó©R¦W§Yªí¥Ü¡A¥Ñ¦b140.113.209.112¤W­±ªºFTP Server Proxy¥N¬°³s±µ140.113.214.168¤WªºFTP Service¡A¦P®É¨Ï¥Îcdsheenµn¤J¸Ó¨t²Î¡A¨Ã¦b¨ä¥Ø¿ý¤U§ä¨ì¤@­Ó¦WºÙ¬°hello.cªºÀɮסC¦Ü©óµn¤J±K½X¡A«h¦b©I¥sgfsRead() ®É¡A¥ÑFTP Client Proxy«ü©w¡C

 

¥t¥~¡A¹ï©ó¨C­Ó¥Ø¿ý¤Uªº¥Ø¿ý¦Cªí¡A§Ú­Ì±N¤§©R¦W¬° .index¡C¦]¦¹¾ã­ÓÀÉ®×¶Ç¿é¤l¨t²Îªº¥Ø¿ý¬[ºc´N¹³¤U­±³o­Ó¨Ò¤l¤@¼Ë¡G

 

¹Ï 20       ÀÉ®×¶Ç¿é¤l¨t²Î¥Ø¿ý¬[ºc


²Ä¤­³¹                  ¦¨ªG

5.1           ¨t²Î¬yµ{»¡©ú

¦b³o¤@¸`¡A§Ú­Ì¥H¹q¤l¶l¥ó¤l¨t²Î¬°¨Ò¡A¸Ô­z¨ä¹B§@¬yµ{¡A¦P®É¼ÒÀÀ¯S®íªººô¸ôª¬ªp¡A»¡©ú¨t²Î©Ò¯à´£¨Ñªº¥\¯à¤ä´©¡C¹q¤l¶l¥ó¤l¨t²Î¦P®É°w¹ï¹q¤l¶l¥ó¨t²Î¥»¨­§@¤F¤@¨Ç§ï¶i¡A­º¥ý¡A§Ú­Ì¥ý¨Ó¦^ÅU¤@¤U¨Ï¥ÎªÌŪ«Hªº¨â­Ó³Ì±`¥Îªº¤èªk¡G

 

1.     ¨Ï¥ÎªÌ§Q¥Îtelnetµn¤J«H¥ó¦øªA¾¹¡A¨Ã¦b¤W­±Åª«H¡B³B²z«H¥ó¡B¤Îµo°e«H¥ó¡A¥Ñ©ó³o¨Ç°Ê§@§¡­n¦b¦øªA¾¹¤W§¹¦¨¡A¦]¦¹»Ý­nºû«ùªø®É¶¡ªº³s½u¡Aºô¸ô«~½è¤Wªº­n¨D¦ÛµM¸û°ª¡C

 

2.     ¨Ï¥ÎªÌ§Q¥ÎPOP3§â«H¥ó¤U¸ü¤U¨Ó¡A§Q¥ÎSMTPª½±µ°e«H¡C³oºØ¤è¦¡¥Ñ©ó§â«H¥ó¥þ³¡¤U¦A¤F¡A¦]¦¹¦pªG¥Ò¥u·Q¾\Ū¤Aªº«H¥ó¡APOP3¨Ã¥¼´£¨Ñ¦¹ºØ¿ï¾Ü©ÊŪ¨ú¥\¯à¡C¦P®É¦¬µo«Hªº°Ê§@¤]¦P¼Ë©ö©ó¦]ºô¸ô°ÝÃD¦Ó¤¤Â_¡C

 

«ÜÅãµMªº¡A³o¨âºØ¤è¦¡©Ò´£¨Ñªº¥\¯à¨Ã¤£¨¬¥H¦bºô¸ô³t«×ºC©Î¦æ°Ê­pºâÀô¹Ò¤U¹ïºô¸ôªº¶Ç¿é§@§ó¦³®Ä²vªºÀ³¥Î¡C

 

¦]¦¹¡A¦b§Ú­Ìªº¹q¤l¶l¥ó¤l¨t²Î¡A§Æ±æ¯à°w¹ïºô¸ôªº¦³­­ÀW¼e§@§ó¦³®Äªº§Q¥Î¡A¥H¤Î¯à°w¹ïPOP3³q°T¨ó©w©Ò¦s¦bªº°ÝÃD§@¤@¨Ç§ï¶i¡C§Ú­Ì§Q¥Î¤U­±³o­Ó²³æªº¨Ò¤l¡A²³æ·§­z¨t²Î¦p¦óÂÇ¥ÑMail Proxy»PGFSªº°t¦X¡A¨Ó¹F¨ì´£°ªºô¸ô¶Ç¿é®Ä²vªº­n¨D¡G

 

°²³]¬Y¤H¦b«H¥ó¦øªA¾¹¤W¦³¤U¦C´X­Ó«H½c¡G

 

INBOX

±µ¦¬ªº«H¥ó

OUTBOX

©Òµo°eªº«H¥ó

Friend

¦n¤Íªº«H

Boss

¦ÑÁ󪺫H

 

¤U­±§Ú­Ì¨Ó¼ÒÀÀ¤@¨Çª¬ªp¡A¨Ã¦Ò¼{¨Ï¥ÎªÌ¥i¯àªº¦æ¬°¡A¨Ó¬Ý¬Ý¹q¤l¶l¥ó¤l¨t²Î©Ò±Ä¨úªº¬Û¹ïÀ³°Ê§@¡G

 

1.      ¥´¶} INBOX «H½c¡MÂsÄý«H½cª¬ºA

¦¹®É¨t²Î·|Åã¥Ü INBOX ªºª¬ºA¡A¥]¬A±H«HªÌ¡B±H«H®É¶¡¡B«H¥ó¤j¤p¡B«H¥ó¼ÐÃD¡A¥H¤Î¦¹«Ê«H¬O§_¦b«È¤áºÝ¦³§Ö¨ú¡]¼Ð¥Ü¬°C¡^¡C

 

 

 

±H«HªÌ

±H«H®É¶¡

«H¥ó¤j¤p

«H¥ó¼ÐÃD

C

1

A

6/1

650 bytes

Hello, ¦n¤[¤£¨£

 

2

B

6/2

5.7 Kbytes

[¼s§i] ¹q¸£©PÃä¯S»ù¤jÀu´f

C

3

A

6/2

4.5 Kbytes

Re: Hello, ¦n¤[¤£¨£

 

4

C

6/3

820 bytes

½Ð°Ý¡K.

 

5

D

6/5

560 bytes

Homework!

 

2.      µo²{¦³¼s§i«H¡]²Ä¤G«Ê¡^¡Mª½±µ§R°£

¥Ñ©ó¥i±oª¾«H¥óªººK­n¸ê°T¡A¦]¦¹¹ï©ó¤£·Q¬Ý¨ìªº«H¥ó¡A¥i©ó«H¥ó¥»Åé¤U¸ü¤§«e§Y¤©§R°£¡A¦]¦¹¹ï©ó²Ä¤G«Êªº¼s§i«H¡A¥iª½±µ§R°£¤£»Ý¤U¸ü¡C

 

3.      ¦³¦nªB¤Í¨Ó«H¡]²Ä¤­«Ê¡^¡M¶}±Ò«H½c¾\Ū

¹ï©ó·Q¬Ýªº«H¥ó¡A¥iª½±µ¿ï¾Ü©ÊŪ¨ú¡A¤£»Ý¥þ³¡¤U¸ü¡C

 

4.      §â¦n¤Íªº«H¦s¨ì«H¥ó¦øªA¾¹¤Wªº Friend «H½c

¥Ñ«È¤áºÝ§iª¾¦øªA¾¹ºÝ¦¹°T®§¡A¥Ñ¦øªA¾¹ºÝ­t³d°µ¦¹Àx¦sªº°Ê§@¡A ¨â¤è¤§¶¡¶È»Ý¶Ç¿é¦¹°Ê§@ªº°T®§¡A¨Ã¤£»Ý¶Ç»¼¾ã«Ê«H¥ó¡C

 

5.      ¦^«Hµ¹ A¡A¦ý¦¹®É³q°T¤£¨}....

¨Ï¥ÎªÌ¦b«È¤áºÝ½s¿è¦^«H«á±H¥X¡A¦¹«H­YµLªk¥ß§Y±H¥X¡A·|³Q«O¦s¦b°T®§¦î¦C¤§¤¤¡A¦ø¾÷°e¥X¡C

 

6.      ­«·s¾\۲Ĥ@«Ê«H....

²Ä¤@«Ê«H¦]¬°¤§«e¦³Åª¹L¡A¨t²Î¦b«È¤áºÝªºGFS¤ººÝ·|¦³¸Ó«H¥óªº§Ö¨ú¡A©Ò¥H¦¹°Ê§@¤£»Ý¸g¹L¥ô¦óªººô¸ô¶Ç¿é°Ê§@¡C¦]¦¹§Y¨Ï¦¹®Éºô¸ô¤£³q¡A¤´¥i¾\Ū¤§«e¦³Åª¹Lªº«H¥ó¡C

 

7.      »P¦øªA¾¹ªº³s½u­«·s±µ¤W¡K

¦¹®É¨t²Î·|§â­ì¨Ó¦b°T®§¦î¦C¤¤¥¼°e¥Xªº°T®§¡]¨Ò¦p¨BÆJ 5. ©Ò°e¥Xªº«H¡^¡A­«·s°e©¹»·ºÝ¦øªA¾¹¡C

 

5.2           ¨t²Î¥\¯àµe­±®i¥Ü

 

µe­±®i¥Ü¥D­n¬O¨Ï¥ÎªÌºÝªºÀ³¥Îµ{¦¡³¡¤À¡A§Ú­ÌÂ^¨ú´X­Ó¥D­nµe­±¨Ó®i¥Ü¹q¤l¶l¥ó¤l¨t²Î»PÀÉ®×¶Ç¿é¤l¨t²Îªº¥\¯à¡A¦P®É¤]¹ï©³¼h¨t²Î¦p¦ó°t¦X¨â­Ó¤l¨t²Îªº¹B§@¡A§@¤@­Ó¸Ô²Óªº»¡©ú¡C

 

¦b¹q¤l¶l¥ó¤l¨t²Î¤è­±¡A¥u­n¦bÀ³¥Îµ{¦¡ºÝ«ü©ú¦øªA¾¹ªº¦ì§}¡AMail Client Proxy§Y·|¦VGFS´£¥X¦s¨ú«H¥ó­n¨D¡A¦A¥ÑGFS¥N¬°³s±µ»·ºÝ¨t²Î¡C¦]¦¹«H¥ó¦øªA¾¹¤W­±¤]¥²¶·°õ¦æGFS¨t²Î¥H¤ÎMail Server Proxy¡A¤~¯à±µ¨üÀ³¥Îµ{¦¡ªº©I¥s¡C

 


 

¹Ï 21      µn¤J¦øªA¾¹³]©w

 

¨Ï¥ÎªÌ°õ¦æMail explorer«á¥X²{ªº²Ä¤@­Óµe­±´N¬O­n¨D¨Ï¥ÎªÌ¿é¤J«H¥ó¦øªA¾¹ªº¦ì§}¡A¥H¤Î¨Ï¥ÎªÌ¥N¸¹¤Î±K½X¡C


¦b¿é¤Jµn¤J«H¥ó¦øªA¾¹©Ò»Ýªº¸ê°T«á¡AMail Proxy§Y·|¥N¬°³s±µ¦ì©ó«H¥ó¦øªA¾¹¤WªºGFS»PMail Server Proxy¡A¨Ã¨ú±o«H¥ó¬ÛÃö¸ê°T¡A¦p«H¥ó§¨¦Cªí¡B«H¥ó¦Cªíµ¥¡A¤§«á¨Ï¥ÎªÌ´N¥i¥H¹ï«H¥ó§@¦UºØ³B²z¡A¦pÀx¦s¡B§R°£¡BÂà°e¡A¦^«Hµ¥¡C

 

¦p¤U­¶¹Ï22©Ò¥Ü¡A¨Ï¥ÎªÌ¥i¥H¿ï¾Ü¥ô¤@­Ó«H¥ó§¨¡A¨Ã¦C¥X©Ò¦³ªº«H¥ó¦Cªí¡A¦b«H¥ó¦Cªí¤¤¡A°O¸ü¦³¨C¤@«Ê«Hªº±H«H¤é´Á¡B±H«HªÌ¡B¤j¤p¥H¤Î¼ÐÃDµ¥¸ê°T¡A¨Ï¥ÎªÌ¥i¥H¾Ú¦¹¿ï¾Ü·Q¾\Ūªº«H¥ó¡A¦Ó¤£·QŪ¨úªº«H¥ó¨Ã¤£·|¯Ó¶OÃB¥~ªººô¸ô¶Ç¿é¡C

 

¨Ï¥ÎªÌ¹ï«H¥óªº¥ô¦ó³B²z°Ê§@¡A§¡¤£¬O¦b¨Ï¥ÎªÌºÝ¶i¦æ¡A¦Ó¬O¶Ç°e¸Ó©R¥O¨ì¦øªA¾¹ºÝ¡A¥Ñ»·ºÝªºMail Server Proxy¥N¬°§¹¦¨¸Ó¶µ«ü¥O¡C³o¼Ëªº³]­p¡A¥i¥H¨Ï«H¥ó³B²z¤ñ¸û®e©ö¶°¤¤ºÞ²z¡A¦Ó¥B¾¨¶q´î¤Öºô¸ô¶Ç¿éªº¥²­n©Ê¡C

 

¹Ï 22       Mail Explorer°õ¦æµe­±

 

§Ú­Ìªº¹q¤l¶l¥ó¤l¨t²Î»PPOP3¤£¦Pªº¬O¡A©Ò¦³«H¥óªº³B²z§¡¶°¤¤¦b«H¥ó¦øªA¾¹¤W­±¡A¨Ï¥ÎªÌ¥i¥H¥ô·N¦b¦øªA¾¹¤W­±«Ø¥ß¦Û¤vªº«H¥ó§¨¡A¥Ñ©ó³o¨Ç«H¥ó§¨¦s©ñ©ó¦øªA¾¹¤W¡A©Ò¥H¤£·|¦]³s½u¦aÂI¤£¦P¦Ó¬Ý¨ì¤£¤@¼Ëªº«H¥ó³B²zÀô¹Ò¡C

 


¹Ï 23      «Ø¥ß·s«H¥ó§¨

 

¦b¦øªA¾¹¤W«Ø¥ß¤@­Ó·sªº«H¥ó§¨¡C


¹Ï 24      «H¥ó§¨¦Cªí

¦b«H¥ó§¨¦Cªí¤¤¡A¦h¤F¤@­Ó­è­è«Ø¥ßªº«H¥ó§¨ ¡¨cdsheen¡¨¡C


 

¹Ï 25      «H¥óÀx¦s

¨Ï¥ÎªÌ¥i«ü©w±N¬Y«Ê«H¦s¦Ü¥ô¤@­Ó«H½c¤º¡A¯u¥¿¦s¨úªº°Ê§@«h¬O¦b¦øªA¾¹¤W­±¶i¦æ¡C


¬°¤F®e§Ôºô¸ô¤£Ã­©w±¡§Î¡A¤×¨ä¬O¦æ°Ê­pºâÀô¹Ò¤Uªº¯S®í»Ý¨D¡A§Ú­Ìªº¹q¤l¶l¥ó¤l¨t²Î¯S§O¹ïÂ_½u³B²z¡]disconnected operation¡^¡BÂ÷½u¾\Ū¡]offline reading¡^§@¯S§Oªº¦Ò¶q¡C

 

«H¥ó¦Cªí¤¤¡A«e­±¦³ * °O¸¹ªÌ¡Aªí¥Ü¦b¨Ï¥ÎªÌºÝªºGFS¤§¤¤¦³¸Ó«H¥óªº§Ö¨ú¦s¦b¡A¦bÂ÷½u¡]offline¡^¤§®É¡A¥u¯àŪ¨ú¦s¦b©ó§Ö¨ú¤§¤¤ªº«H¥ó¡A¨Ï¥ÎªÌ¤]¥i¥H¨Ï¥Î¡uprefetch¡v¡]¹w¥ý¤U¸ü¡^¥\¯à¡A§â«H¥ó¹w¥ý¤U¸ü¡A¥H§QÂ÷½u«á¾\Ū¡CÂ÷½u¤§®É¡A­Y­nŪ¨ú¥¼¦s¦b§Ö¨ú¤§¤ºªº«H¥ó¡]«H¥ó¦Cªí«e¨S¦³ * °O¸¹ªÌ¡^¡A«h·|§iª¾¨Ï¥ÎªÌ¡u(offline) this mail is not cached¡v¡C

 

¤U­±´N¬O¦bÂ÷½uª¬ºA¡Aª½±µÂI¿ï¥¼§Ö¨ú¤U¨Óªº«H¥ó®Éªº±¡§Î¡C

 

¹Ï 26       Â÷½u®ÉŪ¨ú¥¼§Ö¨ú¤§«H¥ó

 

¦b«e­±³¹¸`§Ú­Ì´¿¸g´£¹L¡AGFS¨t²Îªº°T®§¶Ç¿é·|¸g¹LÀ£ÁY¡A¥H´£°ªºô¸ô¶Ç¿é®Ä²v¡A¤U­±¬OGFS¥N¬°¶Ç¿éÀɮ׫H¥ó®É¡A°T®§¸g¹LÀ£ÁY³B²zªº±¡§Î¡A¥H¤å¦r«¬ºAªº«H¥ó¦Ó¨¥¡AÀ£ÁY²v¤j¦h¦³50%¥H¤W¡C

 

¹Ï 27       ÀÉ®×¶Ç¿éÀ£ÁY¥\¯à

 

¥t¤@¤è­±¡A§Ú­ÌªºÀÉ®×¶Ç¿é¤l¨t²Î³Ì­«­nªº´N¬O¶¡±µ¥N²zFTPªº¥\¯à¡A¨Ï¥ÎªÌºÝªºÀ³¥Îµ{¦¡¦p¤U¹Ï©Ò¥Ü¡G

 

¹Ï 28       ÀÉ®×¶Ç¿é¥N²z¦øªA¾¹³]©w

 

¨Ï¥ÎªÌ¥²¶·¿é¤J¥N²zªÌªº¦ì§}¡A¤]´N¬O»·ºÝªºGFS¤ÎFTP Server Proxy©Ò¦bªº¦ì§}¡AµM«á§iª¾­n³s±µªºFTP¦øªA¾¹¦ì§}¡B¨Ï¥ÎªÌ±b¸¹¤Î±K½X¡A¨Ï¥ÎªÌºÝªºFTP Client Proxy´N·|½Ð»·ºÝªºFTP Server Proxy¥N¬°³s±µ©Ò»Ý­nªºFTP¦øªA¾¹¡A¤U­±¬OÀɮפU¸üªº±¡§Î¡C

 

¹Ï 29       Àɮ׶ǿ鱡§Î


²Ä¤»³¹                  µ²½×

¦b¥H©¹µo®i¤@­Óºô¸ôÀ³¥Îµ{¦¡¡A¤j¦h³£¥²¶·¥Ñ¶}µoªÌ¦Û¦æ³B²zºô¸ôªº³s½u¡A¦P®ÉÁÙ­nÀ³¥I¦U¦¡¦U¼Ëªººô¸ôª¬ªp¡A¦Ó¦UÀ³¥Îµ{¦¡¶¡¤]¦]¦¹«ÜÃø§@¾ã¦X¡C¥»½×¤å°Ñ¦ÒAFS¡BCodaµ¥Àɮרt²Î¡A´£¥X¤F¤@­Ó¹êÅç©ÊªºµêÀÀºô¸ôÀɮרt²ÎGeneral File System¡]GFS¡^¡A¨Ó§@¬°ºô¸ôÀ³¥Îµ{¦¡ªº¶}µo¥­¥x¡AÅýºô¸ô³q°T¯àÂÇ¥ÑÂà¤Æ¦¨Àɮתº¦s¨ú¡A¥H²¤Æ³]­p¤Wªº½ÆÂø«×¡F¦P®É¤]¥Ñ©ó©³¼h¨t²Î¹ïºô¸ôª¬ªpªº¾AÀ³¯à¤O¡A¦³®Ä´£°ª¤Fºô¸ô¶Ç¿éªº®Ä²v»Pí©w©Ê¡C§Ú­Ì©Ò±Ä¥Îªº¬[ºc³Ì¥D­n¬O±N³q¥Î©Êªººô¸ôªA°È©â¨ú¥X¨Ó¡A·í§@©³¼hªº³Ì°ò¥»³q°T¾÷¨î¡A¨ä¤W¥i¥H®Ú¾Ú»Ý­n¡A¦A±¾¤W¦UÃþºô¸ôªA°È¡A§¹¦¨¤@­Ó¾ã¦X©Êªº¨t²ÎÀô¹Ò¡C

 

GFS¨t²Î¹ïÀɮתº¦s¨ú´£¨Ñ¤F§Ö¨úªº¥\¯à¡A©³¼hªº°T®§¶Ç¿é«h¨ã¦³À£ÁY¶Ç¿é¡B¿ù»~Àˬd¥H¤Î¦î¦C³B²zµ¥¥\¯à¡CGFS¨t²Î¥Ø«e¨Ã¥¼¦Ò¼{Àɮפ@­P©Êªº°ÝÃD¡A§Ö¨úªºÀÉ®×¥u¯àŪ¨ú¡A¤£¯à³Q­×§ï¡A¦]¦¹¡A¤¹³\Àɮׯu¥¿¤À´²³B²zªº½Æ»s¥\¯à¡]replication¡^±N¬O¨t²Î¥¼¨ÓÂX¥Rªº¤è¦V¤§¤@¡C

 

¥»½×¤å¨Ã¦bGFS¤W­±¹ê§@¤F¹q¤l¶l¥ó¤l¨t²Î»PÀÉ®×¶Ç¿é¤l¨t²Î¡C¨â­Ó¤l¨t²Î°£¤F¤À§O§ï¶i¤F­ì¦³ªA°Èªº¥\¯à¤§¥~¡A¤]¶i¤@¨B®i¥Ü¤F¾ã­Ó¨t²Î¬[ºcªº¼u©Ê»P¥i¦æ©Ê¡C


°Ñ¦Ò¤åÄm

[1]  Callaghan, B., Pawlowski , B., Staubach, P., ¡§NFS Version 3 Protocol Specification¡¨, RFC 1813, June 1995

[2]  Crispin, M., ¡§Internet Message Access Protocol ¡V Version 4 rev1¡¨, RFC 2060, Dec. 1996

[3]  Crocker, David H., ¡§Standard for ARPA Internet Text Messages¡¨, RFC 822, Aug. 1982

[4]  Ebling, M.R., Mummert, L.B., Steere, D.C., ¡§Overcoming the Network Bottleneck in Mobile Computing¡¨, Proceedings of the IEEE Workshop on Mobile Computing Systems and Applications Dec. 1994, Santa Cruz, CA

[5]  John H Howard, Michael L Kazar, Sherri G Menees, David A Nichols, M Satyanarayanan, Robert N Sidebotham, Michael J West, "Scale and Performance in a Distributed File System", ACM Transactions on Computer Systems, Vol. 6, No. 1, Feb 1988 pp 51-81

[6]  Kantor, B., Lapsley, P., ¡§Network News Transfer Protocol¡¨, RFC 977, Feb 1986

[7]  Kistler, J.J., Satyanarayanan, M., ¡§Disconnected Operation in the Coda File System¡¨, ACM Transactions on Computer Systems Feb. 1992, Vol. 10, No. 1, pp. 3-25

[8]  Kistler, J.J., Satyanarayanan, M., ¡§Transparent Disconnected Operation for Fault-Tolerance¡¨, Fourth ACM SIGOPS European Workshop Sep. 1990, Bologna, Italy

[9]  Michael L Kazar, "Synchronization and Caching Issues in the Andrew File System", USENIX Proceedings, Dallas, TX, Winter 1988

[10]   Microsoft Corporation, ¡§SMB File Sharing Protocol Extension version 2.0¡¨, Nov. 1989

[11]   Myers, J., Rose, M., ¡§Post Office Protocol ¡V Version 3¡¨, RFC 1939, May 1996

[12]   Myers, J.G., ¡§Application Configuration Access Protocol¡¨, Nov. 1996

[13]   Noble, B., Satyanarayanan, M., ¡§A Research Status Report on Adaptation for Mobile Data Access¡¨, SIGMOD Record, Vol. 24, No. 4, December 1995

[14]   Postel, J., Reynolds, J., ¡§File Transfer Protocol¡¨, RFC 959, Oct. 1985

[15]   Postel, Jonathan B., ¡§Simple Mail Transfer Protocol¡¨, RFC 821, Aug. 1982

[16]   Satyanarayanan, M., ¡§Coda: A Highly Available File System for a Distributed Workstation Environment¡¨, Proceedings of the Second IEEE Workshop on Workstation Operating Systems Sep. 1989, Pacific Grove, CA

[17]   Satyanarayanan, M., ¡§Fundamental Challenges in Mobile Computing¡¨, Fifteenth ACM Symposium on Principles of Distributed Computing May 1996, Philadelphia, PA

[18]   Satyanarayanan, M., ¡§Mobile Information Access¡¨, IEEE Personal Communications, Vol. 3, No. 1, February 1996

[19]   Satyanarayanan, M., ¡§Scalable, Secure, and Highly Available Distributed File Access¡¨, IEEE Computer May 1990, Vol. 23, No. 5

[20]   Satyanarayanan, M., Kistler, J.J., Siegel, E.H., ¡§Coda: A Resilient Distributed File System¡¨, IEEE Workshop on Workstation Operating Systems, Nov. 1987, Cambridge, MA

[21]   Satyanarayanan, M., Noble, B., Kumar, P., and Price, M., ¡§Application-aware Adaptation for Mobile Computing¡¨, Operating Systems Review 29 (January 1995). Also as technical report CMU-CS-95-183, School of Computer Science, Carnegie Mellon University.

[22]   Sun Microsystems, Inc., ¡§JDKTM 1.1.6 Documentation¡¨, Apr. 1998