2010년 11월 17일 수요일

삼성SDS, SW 설치만으로 전송속도 30배 빠른 기술 대외공개

삼성SDS가 소프트웨어(SW) 설치만으로 데이터 전송속도를 20~30배까지 빠르게 전송하는 솔루션을 대외에 공개키로 했다.

삼성SDS (대표 김인)는 15일 이같은 솔루션인 '레피던트(Rapidant)'를 공개한다고 발표했다.

레피던트의 오픈 소스 사이트는(http://rapidant.sourceforge.net)로, 누구나 자유롭게 사용할 수 있다.

사용자 입장에서 보면, 데이터 전송속도를 높이기 위해 새로운 하드웨어를 따로 구입하거나 전용선을 임대하는 등 금전적 시간적 부담 없이 소프트웨어만으로 손쉽게 데이터 전송속도 문제를 해결을 할 수 있다고 말했다.

이 솔루션은 특정 운영체제(OS)에 상관없이 간단하게 소프트웨어 설치만으로 데이터 전송을 할 수 있게 설계됐다.

삼성SDS는 이번 대외공개를 통해 기업간 또는 개인간 대용량 파일공유, 동영상 및 이미지 전송, 소프트웨어 패치 등 고속 파일 전송을 요구하는 다양한 서비스에 쉽게 적용될 것으로 기대했다.

이 회사 박승안 전무는 "이 솔루션의 대외공개를 통해 중소기업, 개인 소프트웨어 개발자 등과 동반상생 할 수 있기를 기대한다"라며 "삼성SDS는 다양한 오픈 연구개발(R&D) 정책을 통해 개인, 기업, 지역과 협력하는 방안을 더욱 확대할 예정"이라고 말했다.

삼성SDS는 지난 2008년 자사의 프레임워크(개발틀) 솔루션인 '애니프레임(Anyframe)'을 공개한 바 있다.

2010년 11월 15일 월요일

Ckeditor를 ASP에서 사용하기

ckeditor를 asp에 적용하는 작업을 진행 중입니다.
ckfinder를 이용해서 이미지와 플래시를 업로드 하는데
파일은 정상적으로 업로드 되는데 컴포넌트가 없다고 나오는 군요
메시지 : It was not possible to complete the request (Error Unable th find an image manipulation component)
구글과 네이버를 들락 날락 결국은 실패하고 다른 에디터를 사용할까 하다

http://docs.cksource.com/
위의 사이트에 개발 가이드 문서가 있더군요
ckfinder적용하는 것은 포기하고 직접 파일 업로드 페이지를 구현했습니다.

1. 먼저 ckeditor(위지윅 에디터)를 다운 받습니다.
    ckeditor - http://ckeditor.com/download

2. ckeditor 를 사용하는 페이지에 <script type="text/javascript" src="/ckeditor/ckeditor.js"></script>를 추가하고 에디터를 사용할 부분에
<textarea name="editor1"></textarea>
<script type="text/javascript">
    CKEDITOR.replace('editor1',
    {
    toolbar: 'Full',
    uiColor: '#9AB8F3',
    filebrowserUploadUrl: '/upload.asp?type=Files',
    filebrowserImageUploadUrl: '/upload.asp?type=Images',
    filebrowserFlashUploadUrl: '/upload.asp?type=Flash'
    }
);
</script>
위와 같이 넣어주면 ckeditor 를 사용하고자 하는 페이지에 불러올 수 있습니다.
개발문서 참조 하시면 형태는 다양하게 변경할 수 있습니다.

filebrowserUploadUrl / filebrowserImageUploadUrl / filebrowserFlashUploadUrl 에서 설정한 페이지에서 파일 업로드를 구현해 주시면 됩니다.
위의 프로퍼티를 입력하지 않은 경우 업로드 하는 부분이 나타나지 않습니다.
이미지나 플래쉬 서버로 업로드 하기 위해서 반드시 입력하세요
저는 귀찮아서 루트에 업로드 하는 파일을 만들었습니다. ^^

여기 까지 설정하는 부분은 끝입니다.

3. 업로드 파일 구현
기본적으로 업로드 파일로 type 값 넘어오고요
CKEditorFuncNum, CKEditor, langCode, upload .....  필요한 값은 이정도면 됩니다.
ckfinder 의 경우는 타입값에 따라서 Flash / Images / Files 폴더로 나눠서 저장하더군요
하지만 귀찮은 관계로 한 폴더에 모두 저장.. ㅋㅋ
대충 대충하는 만성피로 개발자.. ㅋㅋ

upload.asp 소스입니다.
참고로만 보시면 될것 같습니다.
<%
    Dim funcNum
    Dim CKEditor
    Dim langCode
    Dim fileUrl
    Dim message

    ' 파일 중복을 제거 하기 위해 고정 사이트 만큼 특정 문자를 채워 주는 함수
    Public Function LeftFillString ( strValue, fillChar, makeLength )
        Dim strRet
        Dim strLen, diff, i
       
        strRet  = ""
        strLen  = Len(strValue)
        diff    = CInt(makeLength) - strLen
       
        if diff > 0 then
            for i=1 to diff
                strRet = strRet & CStr(fillChar)
            next
        end if
       
        LeftFillString = strRet & CStr(strValue)
    End Function

 '유니크한 파일명 만들기
 Public Function MakeUniqueFileName( strPrename )
  Dim strFilename
  Dim dtNow
  dtNow = now()
  Randomize()
  strFilename = strPrename
  strFilename = strFilename & Year(dtNow)
  strFilename = strFilename & LeftFillString( Month(dtNow),   "0", 2 )
  strFilename = strFilename & LeftFillString( Day(dtNow),     "0", 2 )
  strFilename = strFilename & "_"
  strFilename = strFilename & LeftFillString( Hour(dtNow),    "0", 2 )
  strFilename = strFilename & LeftFillString( Minute(dtNow),  "0", 2 )
  strFilename = strFilename & LeftFillString( Second(dtNow),  "0", 2 )
  strFilename = strFilename & "_" 
  strFilename = strFilename & LeftFillString ( Int(Rnd * 1000000), "0", 7 )
  MakeUniqueFileName = strFilename
 End Function

 ' 파일 확장자 추출
 Function GetFileExt( strFilename )
  Dim strExt
  Dim nPos
  nPos = InStrRev( strFilename, ".", -1, 1 ) '// Text Compare
  if nPos > 0 then
   strExt = Mid( strFilename, nPos+1 )
  end if
  GetFileExt = strExt
 End Function

    ' 변수들은 위에서 말한 개발자 가이드 문서에서 뽑았습니다.
    ' Required: anonymous function number as explained above.
    funcNum = Request("CKEditorFuncNum")
    'Optional: instance name (might be used to load specific configuration file or anything else)
    CKEditor = Request("CKEditor")
    ' Optional: might be used to provide localized messages
    langCode = Request("langCode")
    ' Check the $_FILES array and save the file. Assign the correct path to some variable ($url).
    'fileUrl = ""
    ' Usually you will assign here something only if file could not be uploaded.
    'message = "성공적으로 파일 업로드"

    ' DEXT Upload를 사용하고 있습니다.
    Set Upload = Server.CreateObject("DEXT.FileUpload")
    Upload.DefaultPath = Server.MapPath ("/data/ckeditor")
    Dim folderPath
    folderPath = Server.MapPath("/data/ckeditor/images/")
    upload_filename = Upload("upload").Filename
    if IsNull(Upload("upload")) or Upload("upload").FileLen <= 0 then
        upload_filename = ""
        img_filesize = 0
        message = "업로드 파일이 존재하지 않습니다."
    else
        upload_filename = MakeUniqueFileName("upload") & "." & GetFileExt(upload_filename)
        img_filesize = Upload("upload").FileLen
        if img_filesize > 0 then
            ' 확장자 체크 해야 하는데 귀찮아서
            ' Request("type") 으로 Images / Flash 구별해서 확장자 추출함수인 GetFileExt(upload_filename) 이걸로 체크하면 되겠죠
            ' 이미지는 jpg, gif, png..   플래쉬는 swf 파일만.. ㅎㅎㅎ
            ' 만성피로와 귀찮음으로 그냥 넘어가기..
            Upload("upload").SaveAs folderPath & "\" & upload_filename
            message = "정상적으로 파일을 업로드했습니다."
        else
            message = "업로드 파일 사이즈가 0입니다."
        end if
    end if
   
    fileUrl = "/data/ckeditor/images/" & upload_filename
%>
<script type="text/javascript">
    // 가장 중요한 부분인것 같군요
    // ckeditor의 순번과 유효한 파일 경로만 넘기면 자동으로 이미지나 플래쉬 속성 변경 탭으로 이동합니다.
    window.parent.CKEDITOR.tools.callFunction(<%=funcNum %>, '<%=fileUrl %>', '<%=message %>');
    history.go(-1);
</script>

저도 여기 저기 찾다 너무 고생을 많이해서
혹시나 저 같은 사람이 있으면 안되니 이렇게 올립니다.

화상채팅 - CgVideo(Voice)Chat

화상채팅 - CgVideo(Voice)Chat






CgVideo(Voice)Chat 바탕은 씨지웹(CgWeb)입니다. 기본적인 씨지웹(CgWeb) 솔루션에 자체 개발된 화상과 음성등의 모듈이 포함된 솔루션입니다.



CgVideo(Voice)Chat 통신 기능

데이터(이미지) 통신
웹서버(HTTP)를 사용한 독특한 통신방식을 사용하면서, 자사만의 우수한 압축 방식과 별도의
인코딩/디코딩 방식을 사용합니다. (Frame 수와 화면의 사이즈가 커질 경우 네트웍 부하는 증가 함)

화상 통신
JPG, MPEG4, H263 등의 다양한 코덱을 사용하며, 통신은 UDP 를 사용합니다. 향후 데이터(이미지)
통신과 마찬가지로 웹서버(HTTP)를 이용한 통신방식이 추가될 것입니다. 서비스의 환경에 따라 화면의
Frame 수와 사이즈 조정이 가능합니다. (Frame 수와 화면의 사이즈가 커질 경우 네트웍 부하는 증가 함)

화상 통신 (플래쉬 스트리밍)
플래쉬 미디어 서버(FMSS)의 기능과 연계하여, 고품질의 화상을 라이브로 통신으로 사용합니다.
또한 라이브 레코딩 기능과 라이브 방송 및 다양한 기능을 지원하며, 클라이언트는 플래쉬 기반이므로,
다양한 클라이언트 환경을 지원합니다.

음성 통신
양방향의 음성 채팅 (full-duplex audio chat) 이 가능하며, 동시 2~3인 뿐만 아니라, 그 이상의 대화가
가능하며, 실시간의 깨끗한 대화 품질을 제공합니다. 향후 데이터(이미지) 통신과 마찬가지로 웹서버
(HTTP)를 이용한 통신 방식이 추가될 것입니다. 음성은 GSM, ACM, PCM, SPEEX 등의 코덱이 사용됩니다.
(최소한의 네트워크 사용 및 패킷 보완 기술을 적용하여 1초 이내의 실시간 음질을 제공합니다.)

음성 통신 (플래쉬 스트리밍)
플래쉬 미디어 서버(FMSS)의 기능과 연계하여, 고품질의 음성을 라이브로 통신으로 사용합니다.
또한 라이브 레코딩 기능과 라이브 방송 및 다양한 기능을 지원하며, 클라이언트는 플래쉬 기반이므로,
다양한 클라이언트 환경을 지원합니다.

텍스트 통신
웹서버(HTTP)를 이용한, 양방향 및 다자간 문자 송.수신이 가능합니다.


CgVideo(Voice)Chat 모듈 컴포넌트 기능

녹화기능
CgVideo(Voice)Chat 를 통해 보여지는 음성, 화상, 텍스트, 웹보드등 녹화할 수 있습니다.
이는 별도로 제공되는 플레이어를 통해 재생해서 볼 수 있습니다.
상담한 내용을 녹화하여 저장하여 추후 마케팅 자료로 활용이 가능합니다.
음성상담 내용도 저장이 가능하여 상담원 관리면에서도 매우 편리합니다.
또한 플래쉬 미디어서버(FMSS) 연동시에는 라이브 녹화기능을 지원합니다.


CgVideo(Voice)Chat 서비스 기능

참여인원의 자유로운 조정
서비스의 목적에 따라 채팅참여인원을 4인, 6인, 8인, 10인 또는 그 이상의 조절이 가능합니다.

프로그램 자동설치 기능
ActiveX Plug-in으로 만들어져 있어 자동으로 프로그램이 설치 됩니다.
단, 플래쉬 클라이언트를 사용시에는 별도로 프로그램을 설치할 필요가 없습니다.

자동 장치 선택, 볼륨 조절
사용자 볼륨 및 마이크 셋팅을 자동화 할 수 있는 기능이 내장되어 있어, 마이크로 음성을 전송시 또는
수신된 음성을 들을때, 사용자의 마이크 및 스피커 장치 및 볼륨을 자동으로 최적화 시켜줌으로써 번거
로음 없이 사용할 수 있는 환경을 제공합니다.

관리자 권한 기능
화상, 음성, 텍스트, 웹보드 등의 개별 권한 설정 및 다양한 설정이 가능합니다.

참고 : http://onme.co.kr/