TOMCAT/APACHE
2009.07.09 / 10:46

Apache Ftp Server + Spring

Æ÷À̴нº
Ãßõ ¼ö 113
Á¦¸ñ¾øÀ½

Apache FTP ¼­¹ö(http://mina.apache.org/ftpserver/ )´Â  Java±â¹ÝÀÇ ¿ÀǼҽº FTP¼­¹öÀÔ´Ï´Ù.

  Java±â¹ÝÀÇ ¸ðµâÀ̶ó°í ÇÏ¸é ¼º´ÉÀÌ ¾È ³ª¿ÀÁö ¾ÊÀ»±î °ÆÁ¤ÇϽô ºÐµµ °è½Ç °Í °°½À´Ï´Ù. ÀÌÀü¿¡ 1.0.M3¹öÀüÀ¸·Î Á¦ PC¿¡¼­ ´Ù¸¥ FTP¼­¹ö¿Í ºñ±³Çؼ­ Å×½ºÆ®Çغ» °á°ú´Â ¾Æ·¡¿Í °°¾Ò½À´Ï´Ù.


  • Å×½ºÆ® ȯ°æ

    • OS : Windows XP
    • CPU : Intel® Core¢â 2 Duo CPU E6750, 2.66GHz
    • RAM : 2GB
  • ¾÷·Îµå Å×½ºÆ® µ¥ÀÌÅÍ

    • ¿ë·® : 126MB
    • ÆÄÀϼö : 392°³
    • Æú´õ : 16°³



Ftp_performance.GIF

   Å×½ºÆ® °á°ú·Î À©µµ¿ì¿¡¼­ µ¹¾Æ°¡´Â ´Ù¸¥ FTP¼­¹ö¿Í ºñ±³ÇßÀ» ¶§ °¡Àå ºü¸¥ ¼Óµµ¸¦ º¸¿©ÁÖ´Â ¿¹»ó¹ÛÀÇ ¼º´ÉÀÌ ³ª¿Ô¾ú½À´Ï´Ù. Linuxµî¿¡¼­´Â ¾î¶²Áö ¸ô¶óµµ Å©°Ô ¼º´ÉÀ» °ÆÁ¤ÇÒ ¼öÁØÀº ¾Æ´Ò °ÍÀ¸·Î ¿¹»óµË´Ï´Ù.


  Apache Ftp¼­¹ö´Â ¼³Á¤¸¸À¸·Îµµ FTP¿¡ ºÎ°¡ÀûÀÎ ±â´ÉÀ» ¸¹ÀÌ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.  ¿¹¸¦ µé¸é Log4jÀÇ ¼³Á¤À» ÀÌ¿ëÇؼ­ ¿øÇÏ´Â ¼öÁØ°ú ¹æ½ÄÀ¸·Î ·Î±×¸¦ ±â·ÏÇÒ ¼ö ÀÖ°í, »ç¿ëÀÚÁ¤º¸¸¦  ÀÔ·Â,Á¶È¸ µîÀÇ Äõ¸®¸¸ ¼³Á¤ ÆÄÀÏ¿¡ ³Ö¾îÁÖ¸é  DB·Î »ç¿ëÀÚ¸¦ °ü¸®ÇÒ ¼ö ÀÖ°Ôµµ ÇØÁÝ´Ï´Ù.

  ±×¸®°í Java±â¹ÝÀÌ´Ù º¸´Ï,  Á÷Á¢ ÄÚµùÀ» Çؼ­ È®ÀåÀ» ÇÏ´Â °Íµµ ¼Õ½±½À´Ï´Ù. Apache FTP ¼­¹ö¿¡¼­ Á¤ÀÇÇÑ ÀÎÅÍÆäÀ̽º´ë·Î ÄÚµùÀ» ÇÏ°í À̸¦ ¼³Á¤ÆÄÀÏ¿¡´Ù Ãß°¡ÇÒ ¼öµµ ÀÖÁÒ. ´ëÇ¥ÀûÀ¸·Î Ftplet°ú °°Àº ÀÎÅÍÆäÀ̽º°¡ ÀÖ½À´Ï´Ù.

 È° ¿ë»ç·Ê·Î,  HadoopÀÇ ÆÄÀϽýºÅÛÀÎ HDFS(Hadoop Distributed File System)À¸·Î ÆÄÀÏÀ» ¿Ã¸± ¼ö ÀÖ´Â ¼­¹ö¸ðµâµµ ÀÌ Apache Ftp ¼­¹ö¸¦ ÀÌ¿ëÇؼ­ ±¸ÇöÇÑ »ç·Ê°¡ ÀÖ½À´Ï´Ù.  FTP clientÇÁ·Î±×·¥À¸·Î ºÙ¾î¼­ Á÷Á¢ HDFS·Î ÆÄÀÏÀ» ¿Ã¸®°Å³ª, ´Ù¸¥ ÇÁ·Î±×·¥¿¡¼­  ftpÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇØ HDFS¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Â °ÍÀÌÁÒ.[°¢ÁÖ:1]

   Èï¹Ì·Î¿î Á¡Àº, ÀÌ FTP¼­¹ö¿¡¼­´Â ½ºÇÁ¸µ ¹æ½ÄÀÇ ¼³Á¤À» Áö¿øÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ¿¹¸¦ µé¸é,  µ¥ÀÌÅͺ£À̽º·Î »ç¿ëÀÚ¸¦ °ü¸®ÇÒ¶§, Àͼ÷ÇÑ beanű׸¦ ÀÌ¿ëÇؼ­ datasourceÀÇ ¼±¾ðÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù.


 <db-user-manager encrypt-passwords = "clear">
       <data-source>
         <beans:bean class="org.apache.commons.dbcp.BasicDataSource">
                  <beans:property name="driverClassName" value="${jdbc.driverClassName}" />
                  <beans:property name="url" value="${jdbc.url}" />
                  <beans:property name="username" value="${jdbc.username}" />
                  <beans:property name="password" value="${jdbc.password}" />
                  <beans:property name="initialSize" value="${dbpool.initialSize}" />
              </beans:bean>
        </data-source>

.....


´õ¿í Àç¹ÌÀÖ°Ôµµ, ¹èÆ÷µÈ ¼Ò½º [°¢ÁÖ:2]Áß examplesÆú´õ¸¦ º¸¸é, Spring DMÀ» ÀÌ¿ëÇؼ­ OSGI¹øµé·Î apache FTP¼­¹ö¸¦ È°¿ëÇÏ´Â ¿¹Á¦°¡ ³ª¿É´Ï´Ù. META-INF/spring/bundle-context.xmlÀÇ ÆÄÀÏÀ» º¸¸é ¾Æ·¡¿Í °°ÀÌ ¼±¾ðµÇ¾î ÀÖ½À´Ï´Ù.


<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:osgi="http://www.springframework.org/schema/osgi"
    xmlns:ftp="http://mina.apache.org/ftpserver/spring/v1"
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
       http://www.springframework.org/schema/beans/spring-beans.xsd                     
       http://www.springframework.org/schema/osgi 
       http://www.springframework.org/schema/osgi/spring-osgi.xsd
       http://mina.apache.org/ftpserver/spring/v1
       http://mina.apache.org/ftpserver/ftpserver-1.0.xsd ">
    <ftp:server id="server">
        <ftp:listeners>
            <ftp:nio-listener name="default" port="2222" />
        </ftp:listeners>
        <ftp:ftplets>
            <ftp:ftplet name="ftplet1">
                <ref bean="ftplet" />
            </ftp:ftplet>
        </ftp:ftplets>
        <ftp:file-user-manager
            url="org/apache/ftpserver/example/osgiservice/users.properties" />
    </ftp:server>
    <osgi:service interface="org.apache.ftpserver.FtpServer"   ref="server">
    </osgi:service>
    <osgi:reference id="ftplet" interface="org.apache.ftpserver.ftplet.Ftplet" />
     <bean class="org.apache.ftpserver.example.osgiservice.impl.FtpServerLifecycle"
       init-method="init" destroy-method="destroy"    >
       <property name="server" ref="server" />
    </bean>

</beans>

   FTP ¼­¹ö ¿ªÇÒÀ» Çϸ鼭 È®ÀåµÈ ±â´ÉÀÌ ÇÊ¿äÇÏ°í, ¸ðµâÀ» Àç¹èÆ÷ÇÏ´Â µµÁß¿¡µµ ¸ØÃßÁö ¾Ê¾Æ¾ßÇÏ´Â ¼­ºñ½º¸¦ ¸¸µé¾î¾ß ÇÒ ¶§°¡ »ý±ä´Ù¸é,  Apache Ftp Server + Spring DMÀÇ Á¶ÇÕÀ» »ç¿ëÇؼ­ ÆíÇÏ°Ô ±¸ÇöÀ» ÇÒ ¼ö ÀÖÀ» °ÍÀ¸·Î º¸ÀÔ´Ï´Ù.




  1. HDFS·Î Á¢±ÙÇÏ´Â FTP¼­¹ö¿¡ ´ëÇÑ ÀÚ·á

    [º»¹®À¸·Î]

  2. http://mina.apache.org/ftpserver/apache-ftpserver-100-release.html¿¡ ¼­ ´Ù¿î ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù. [º»¹®À¸·Î]