본문 바로가기
다물칸 주소복사
조회 수 1362 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
Extra Form
구분 팁&트릭
출처 내가작성

처음 해보는 거라서 일련의 작업을 기록하기 위해 글을 작성한다. 


0. 개발환경 구성


- Windows XP SP3

- Visual Studio 2005 

+---------------------------------------------------------------------

- Active Sync 4.0

- Window CE 5.0 SDK

- Device Emulator 2.0 (2005설치 시 1.0이 설치됨.) 

+---------------------------------------------------------------------

WinCE50.PDAIF.zip

- Standard SDK for WinCE 5.0

다운받으러가기 (112Mb)


1. WinCE 5.0 에뮬레이터를 ActiveSync와 연결을 해보려했으나, Null Modem 케이블로 Com1과 Com2를 가짜로 연결해야 된단다. 케이블도 없고 포트도 없다. 포기

추가로 ActiveSync에 장비가 올라와야 VS개발툴에서 빌드와 테스트 및 디버깅을 바로 할 수 있는 것 같다. 

+ 관련 URL: 바로가기 


2. 오라클 클라이언트가 설치되어야 하기 때문에 Window CE 5.0에서 설치할 수 있는지를 따져야 한다. 

+ 모바일용 클라이언트 설치방법 : 바로가기

+ 검색결과 직접 클라이언트를 PDA에서 설치하는 방식이 아니라 PC에 모바일서버를 구축하고 PDA에서 이쪽으로 접속하여 설치되는 방식인것 같다. 

+ 어떤 사람은 Cab파일을 복사해서 이를 실행해서 설치한다고 하는데 우선 오라클 사이트에서 이런 방법은 없다. 


3. 오라클 데이터베이스 라이트 10g 설치

+ XP인 관계로 JDK7, JRE7 버전을 내려받아 설치한다. 

+ JRE7 - 받으러 가기

+ JDK7 - 받으러 가기

+ 오라클 데이터베이스 라이트 10g - 받으러 가기

- 그런데 모바일서버 동작이 안된다. T_T JavaC.exe를 왜 못찾는거징.. bin폴더를 잡아야 하는데 그 위단계 경로만 잡는다. 환경변수도 제대로 잡혀있구만

--> 해결방법: JRE설치 시 오라클 설치경로 밑에 JRE\1.2.4폴더로 설치경로를 잡고 설치한다. 


4. PDA에 오라클 라이트 설치하기

+ 메뉴얼 상에서는 모바일서버 구축 이후 url로 접근해서 설치하면 된다고 나오지만 도대체 웹서버 구동이 왜 안되는지 모르겠다. 

+ 두번째 방법으로는 Cab파일을 activesync를 통해 복사해서 설치하면 된다고 하는데 설치실패... T_T


----------------------

추가참고내용 - 출처

----------------------


먼저 Oracle DB를 PDA에서 연동하기 위해서는 미들웨어가 필요할 것으로 사료됩니다.

프로젝트 성격상 PDA가 항상 Onine이 아닌 상태에서 Oracle DB의 데이타를 PDA에서 활용하는 상황을 가정하겠습니다.

 

[질문1] 데이터 량이 많지 않은 소규모 프로그램을 위해 사용할 수 있는 방법

  - PDA DB 선택 : Oracle Lite (유료), SQLite (Open Source), UltraLite (유료),  MDB, C# (DataTable) 등이 있습니다.

  - 기간계 DB 선택 : 아시는바와 같이 Oralce, MSSQL, Sybase 등이 있겠네요.

  - 미들웨어 구현

     : 기간계 DB를 PDA DB로 변환하는 기능이 필요합니다.

     : PDA DB에서 작업된 내용을 기간계 DB로 적용하는 기능이 필요합니다.

  * 예로 다음과 같은 구성으로 프로젝트를 진행한 적이 있습니다 (데이타량은 수천건 대상이었습니다.)

     : PDA에서는 C# 기반으로 개발하였으며 데이타 관리는 DataTable을 사용하였습니다.

     : 기간계 DB는 Oracle 이었습니다.

     : 미들웨어는 ADO.Net 기반으로 개발하였으며 PDA 연동은 SOAP으로 연동하였습니다.

     : C#의 DataTable은 간단히 데이타를 검색, 삽입, 삭제, 수정등은 간단합니다.

       하지만 DB의 group by, union 같은 수준이상은 지원 및 구현이 힘들다고 보시면 되겠습니다.

     : 구현상 PDA나 미들웨어는 C# 기반으로 구현이 매우 간단합니다.

       미들웨어의 SOAP 역시 예제를 통해 구현가능할 정도로 간단히 개발할 수 있습니다.

 

[질문2] PDA에서 Oracle DB에 직접 Access

  - PDA의 Oracle Lite DB는 ADO를 지원한다고 오라클측에서 얘기는 들었습니다.

     이게 기간계 Oracle DB를 직접 접속할 수 있는지는 잘 모르겠네요.

  * Oracle Mobile Server는 미들웨어로서 동기화 솔루션입니다.

     기간계 테이블에 대한 스냅샵 등을 설정하고 PDA에서 msync.exe 라는 프로그램을 실행하면 기간계 테이블이 고스란히 PDA로 동기화됩니다.

     동기화된 데이타는 이후 PDA에서 활용(SQL 지원)되고 다시 msync.exe 프로그램을 실행하면 PDA 데이타의 변경된 내용이 고스란히 기간계 DB에 반영됩니다.

     데이타가 많을 경우 사용됩니다. (많은 데이타를 매번 다운로드/업로드 되지 않고 기간계와 PDA의 변경된 데이타만 다운로드/업로드 됩니다.)

 

[질문3] Oracle Light 설치

  - 오라클 사이트에서 다운받으셨다면 400메가 정도의 파일일텐데요. 이건 모바일 서버 설치파일입니다.

  - 다운받은 파일을 PC에 설치하시면 모바일 서버가 설치됩니다. 이때 PDA에서 구동할수 있는 Oracle Lite 엔진관련 .cab 파일도 같이 설치됩니다.

  - 이 cab 파일을 ActiveSync로 PDA에 복사하신후 설치하시면 PDA의 \Orace에 설치됩니다.

  - \Oracle에 보시면 msql.exe 이라는 파일이 있는데 이 프로그램은 PC의 SQLPlus 같은 프로그램이라고 보시면 됩니다.

    로컬 DB에 연결하고 SQL 쿼리를 날려 테스트할 수 있습니다.

 

쓰다보니 서두없이 그냥 막 갈겨쓴 느낌이 드네요....

좀더 궁금한 내용 있으시면 메일 주세요~~



  • ?
    다물칸 2014.08.14 18:25

    출처: http://bullpeng.tistory.com/55


    오늘 저의 커뮤니티에서 고객께서 PDA에서 .NET Compacf Framework를 이용하여 Java 미들웨어를 사용하여 Oracle과 어떻게 연동하느냐에 대해 문의를 해 오셨습니다. 이것은 제가 필드 시절에 수많은 회사에서 아키텍처를 컨설팅하고 직접 개발한 노하우를 공유하고자 블로그에 기록하겠으니 업무에 참고하시기 바랍니다.

    질문 내용은 PDA와 DB 서버 간의 데이터 동기화 부분을 소켓 통신으로 하느냐? XML 텍스트를 주고 받느냐? XML 웹 서비스를 이용하느냐에 대해 각각 아키텍처 적으로 장단점을 비교해달라는 이야기 입니다.

    사실 이 이야기는 글로써는 모바일 엔터프라이즈(데이터 동기화) 경험이 없는 분들에게 설명하기에는 한계가 있습니다만 기술을 논의하기 전에 고려해야 할 사항이 다음과 같습니다. 

    1. PDA 장치가 몇 대 정도로 할 것인가?

    A> PDA는 다른 프로젝트와 달리 장치에 직접 응용 프로그램을 배포해야 하므로 배포 솔루션도 책임져야 하지만 대 수에 따라 서버의 성능을 좌우하기 때문에 고려해야 합니다.

    2. 유선 네트워크의 Bandwidth가 얼마나 되는가? 
    A> 결국 PDA와 서버 간에 통신이 일어나므로 Bandwidth가 좋지 못하면 데이터 처리 속도가 당연히 느린 것이 당연하겠지요 ^^

    3. PDA 와 Java 서버 미들웨어 간의 데이터 동기화시 유선으로 할 것인지? 무선으로 할 것인지? 아니면 유+무선 겸용으로 할 것인지? 
    A> 보통 용량이 커거나 공통적인 데이터는 유선으로 다운로드 받고, 간단히 데이터를 입력하거나 실시간 조회는 무선을 이용해도 느리지 않습니다.

    4. 무선이라면 CDMA 모뎀을 이용할 것인지? WLAN을 이용할 것인지?

    A> 영업 지원 프로그램이나 주문 프로그램은 CDMA 모뎀으로 실시간 처리하는 것이 편리하고, 실시간 재고 파악이나 물류 관련해서는 WLAN이 있다면 이용해도 무방합니다. 단, 통신 비용 이슈에 대해서도 고려해야 할 것 입니다.

    5. PDA와 데이터베이스 서버 간의 데이터 일치화를 위해 데이터를 다운로드 시점과 업로드 시점을 어떻게 할 것인지?  
    A> 데이터 동기화에서 가장 큰 이슈는 복제 충돌 입니다. 자료를 업로드 및 다운로드 시점을 시나리오별로 잘 정리되어야 나중에 문제가 발생하지 않습니다.  

    6. 데이터 처리는 서??에서의 Oracle의 SP나 Package를 이용할 것인지? 아니면 다운로드해서 SQL Mobile 3.0에 담아 로컬에서 처리할 것인지? 
    A> 이 말은 데이터 처리를 서버에서 할 것인가? 클라이언트에서 할 것인가에 대한 관점입니다.

    이러한 점들을 먼저 결정한 후에 데이터 동기화 기술에 대해 고려를 해야 할 것 같습니다. 다음은 주신 질문에 대해 기술적인 관점에 대한 충고입니다.  

    첫째, DB 서버가 Oracle 이라서 안타깝게도 MS 데이터 동기화 기술인 RDA를 사용하지 못합니다. RDA가 데이터 동기화 기술이 가장 빠르고 안정적이며 개발하기도 쉽습니다. 그런데 RDA는 반드시 DB 서버가 SQL서버 2000 이나 SQL서버2005가 되어야 합니다. 물론 Oracle도 Oracle 데이터동기화 기술을 사용할 수 있는 임베디드 데이터베이스가 있습니다. 그러나 데이터 동기화를 사용하지 못하므로 성능을 최적화 할 수 없는 것이 아쉽네요. 참고로 RDA는 유무선 모두 지원하고 별도의 무선 Gateway가 필요없이 IIS 서비스에서 HTTP:80 PORT만 오픈 되어 있으면 동작합니다. 

    둘째, PDA와 이 기종간의 DB 서버의 동기화 기술 방법은 보통 XML Web Service를 많이 이용합니다. XML Web Service는 표준 기술이며 범용적입니다. Java에서도 지원합니다. 따라서 PDA 에서는 .NET CF에서 Java WebService 를 호출하는 구조로 하시면 될 것 같습니다. XML을 전송하시는 방식은 데이터의 양이 얼마나 되는 지 모르겠지만 양과 Network Bandwidth에 따라 차이가 납니다. 

    셋째, Socket 은 전통적인 방법입니다. 아무래도 쉽게 구현하실 수 있을 겁니다. 그런데 Socket은 서버 부하 트래픽을 증폭시키고 유지보수가 쉽지 않다는 게 단점입니다. PDA가 10대 정도 이면 원활히 돌아가다가 50 ~ 100대 이상 되면 서버 오버헤드가 많이 발생하는 것을 많이 봐 왔습니다. 그리고 Dump 방식의 XML 텍스트를 송수신 하는 것은 처리 속도가 그렇게 빠르지 않을 것 입니다. 

    결론적으로 말씀 드려서 데이터 동기화 충돌 및 복제 문제 해결과 성능이 가장 좋은 RDA를 추천해드리고 싶으나, Oracle 데이터베이스 이므로 서버 미들웨어로는 Java 형식의 XML Web Service를 사용하고 PDA Client 는 .NET Compact Framework 를 이용한 C# 언어로 UI와 Data Binding 처리를 하는 것이 좋을 것 같습니다. 

    그런데 .NET CF 1.0은 제약사항이 많고 User Control이 많이 없기 때문에 WinCE API와 겸용으로 작업을 많이 해야 하므로 .NET CF 2.0 (Visual Studio 2005에 포함된)을 사용하는 것을 추천 해 드립니다. 그리고 Java Web Service에서도 DataSet (Recordset) 같은 개념이 있는지 모르겠습니다만 .NET CF에서는 XML Serialization을 지원하므로 DB Scheme를 XML Stream 방식으로 in-memory에서 가져와 괭장히 속도를 증폭시킬 수 있으며 SQL Mobile 3.0의 SqlCeResultSet 메서드를 이용하여 사용자가 원하는 대로 Dynamic으로 결과값을 가공할 수 있는 장점이 있습니다. 

    좀더 자세한 아키텍처에 대해 궁금하시면 다음 사이트를 방문하시기 바랍니다.

    Microsoft Developer Architecture Center 

    MSDN SmartClient 

    Mobile Developer Center 

    SQL Mobile 3.0 Information Center

  • ?
    다물칸 2014.08.19 23:25
    http://zzang2k.egloos.com/v/2944145 - PC - PDA TCP/IP연결 팁/트릭