기존 ERP 시스템 (WinMagi)과 상호 작용할 웹 응용 프로그램을 설치해야합니다. ERP는 기본적으로 xBase (FoxPro) 데이터베이스의 프런트 엔드입니다. 데이터베이스는 사내 서버에 있습니다. 내가 알고있는 한 ERP는 API가 없지만 EDI 모듈을 통해 구매 주문서 등을 수락 할 수 있습니다. 웹 응용 프로그램은보고를 위해 온라인 주문 및 쿼리 데이터를 받아 들일 수 있어야합니다. 지금까지xBase 기반 ERP를 웹 응용 프로그램에 어떻게 연결합니까?
내 계획 :
- 는 VM 호스트 구름에 SQL 서버 인스턴스에 xBase를 DB를 동기화 할 수 있습니다.
- (ERP에서 편도 -> SQL 서버)가 ERP 및 웹 응용 프로그램 사이의 인터페이스로
- 사용이 동기화 과정.
- EDI를 사용하여 구매 오더를 ERP로 다시 푸시합니다.
- 내 생각은 데이터 동시성 관점에서 제어 및 승인 된 (ERP) 인터페이스를 통해 ERP의 데이터를 작성하거나 업데이트하는 것이 더 안전하다는 것입니다.
질문/우려 :
- xBase를 DB에서 SQL DB를 업데이트하는 가장 좋은 방법은 무엇입니까? 이 작업을 수행 할 수있는 기존 라이브러리가 있습니까?
- 동기화 중에 xBase DB가 잠길 수 있습니까? 아니면 실제 ERP에 문제가 있습니까?
- 동기화하는 동안 데이터 동시성/무결성 문제를 방지하려면 어떻게합니까?
- 이 시스템은 웹 응용 프로그램에 실시간 데이터를 제공하지 않습니다. 이것으로 인해 어떤 종류의 문제가 발생할 수 있습니까?
- 이러한 종류의 프로젝트에서 다른 언어보다 한 언어를 더 선호해야합니까? 내 계획은 Java/Hibernate MVC를 사용하는 것이 었습니다.
아마도이 잘못된 방식으로 가고 있을까요? 내 웹 앱과 xBase DB를 직접 인터페이스하는 것이 더 낫지 않습니까? 이 접근 방식으로 즉시 떠오르는 문제 중 하나는 사무실과 클라우드 기반 VM 간의 네트워킹 문제와 잠재적 인 보안 취약성이 ERP를 인터넷에 직접 개방한다는 것입니다.
조언이나 제안 사항을 보내 주시면 대단히 감사하겠습니다 !! 미리 감사드립니다.
UPDATE - 9월 3일
2,012 어떻게 현재의 데이터가 (이 동기화 아니다)을 복사하고 있어요 - 야간 실행 :
- 사무실 복사 필요한 DBFS의 리눅스 박스 ERP 서버의 읽기 전용 공유에서 로컬 스토리지로.
- DBF는 Dave Burton의 환상적인 기능을 사용하여 CSV로 변환됩니다. dbf2csv perl script
- 결과 CSV는 원격 VM과 rsync됩니다.데이터가 약간만 변경되어 매우 빠릅니다.
- rsync가 완료되면 원격 VM은 프로덕션 DB에 대한 mysqlimport를 수행합니다. ERP는 네트워크 액세스와 같은 방법으로 손상 될 수없는이 방법
- 의
장점은 읽기 전용입니다.
- 레코드 당 약 20-30 개의 필드가있는 1 백만 개의 레코드에는 현재 실행 시간이 약 7 분입니다.
- 가장 긴 단계는 DBF 복사 및 CSV 변환입니다.
단점
- DBFS는 전체, 모든 시간에 복사 할 수 있습니다.
- DBF는 매번 전체로 변환되어야합니다.
- 복사중인 테이블은 mysqlimport 중에 잠긴다. 밤에는 import가 실행되고 mysqlimport는 약 20 초 밖에 걸리지 않기 때문에 이것은별로 문제가되지 않습니다.
Talend, CloverETL 또는 Pentaho와 같은 ETL 도구가 적합하다고 생각합니다. 이렇게하면 바퀴를 다시 발명하지 않고 동기화를 제어 할 수 있습니다. – Andrew
@ Andrew에게 제안 해 주셔서 감사합니다. 나는 그것을 들여다 볼 것이다. 다른 질문/염려 사항에 대해 다른 아이디어가 있습니까? xBase DB가 잠겨져 사내 ERP에 문제가 발생하는지 알고 있습니까? – max
xBase DB에서 선택하는 경우 NOLOCK 문을 사용할 수 있어야합니다. 이것은 물론 "더러운 읽기"이며 몇 가지 단점이 있지만 선택 사항입니다. – Andrew