2012-02-20 2 views
0

두 개의 개별 시스템이 원활하게 대화 할 수있는 방법을 찾고 있습니다. 위에서 언급 한 것처럼 하나는 Oracle DB상의 .NET 웹 어플리케이션이고 다른 하나는 MSSQL DB상의 .NET Windows 어플리케이션입니다. 이 상호 작용은 데스크톱 응용 프로그램과 웹 응용 프로그램 사이에 있어야하기 때문에 두 시스템의 웹 서비스를 만드는 아이디어를 생각해 내야했습니다.두 개의 개별 시스템을 인터페이싱하려는 아이디어. 하나는 Windows 응용 프로그램이고 다른 하나는 웹 응용 프로그램입니다.

  • 서비스 A, 데스크톱 응용 프로그램에서 사용하는 MSSQL DB에서 데이터를// 업데이트를 추가 얻을 방법을 노출한다.

  • 서비스 B는 웹 응용 프로그램에서 사용하는 DB에서 데이터를 추가/업데이트/가져 오는 방법을 노출합니다.

웹 응용 프로그램은 서비스를 사용합니다. A. 데스크톱 응용 프로그램은 서비스 B를 사용합니다. 이제 두 가지 시스템이 동기화 상태를 유지하는 좋은 방법이 무엇입니까? 예를 들어, 서비스 A와 웹 응용 프로그램 간의 통신이 실패한 경우 두 시스템 모두에서 데이터 무결성을 보장하는 데있어 안전하지 않은 방법은 무엇입니까?

매일 실행되는 일정 Windows 서비스가 제안되었습니다. 그러나 요구에 따라 그것을하는 것은 어떨까요? 우리는 양쪽에서 시작하는 적어도 20 ~ 25 개의 테이블을 업데이트하는 한판 승부를 말하고 있습니다.

+0

얼마나 자주 데이터가 변경됩니까? 두 시스템 모두에서 변경 되었습니까 아니면 둘 중 하나에서만 변경됩니까? DB 트리거는 상대적으로 적은 양의 트랜잭션에서 작동하지만 너무 많은 동일한 트리거를 실행하는 경우 잠금으로 데이터베이스를 압도 할 수 있습니다. 세 번째 중간 데이터베이스에 업데이트를 보내고이 두 시스템을 거기에서 새로 고칩니다. 대답은 많지만 모두 이러한 시스템의 특성에 달려 있습니다. – RogerG

+0

너무 막연하거나 건설적이지 않은 것을 막기 위해 투표를 마감했습니다. 이러한 응용 프로그램 간의 상호 작용에 대해 자세히 설명해주십시오. 특히 웹 및 데스크톱 응용 프로그램은 모두 사용자에 의해 구동됩니다. 동일한 사용자가 둘 다 사용합니까? 어떤 종류의 동기화가 필요합니까? –

+0

두 앱 모두 사용자가 운영합니다. 웹 앱은 약속 스케줄러, 의사, 간호사 등과 같이 한 세트의 사용자에 의해 운영 될 것입니다. 다른 앱은 청구서 수신자라고 말합니다. 전형적인 시나리오는 프로 시저/시험이 예정되고, 수행되고, 완료되고, 마침내 웹 응용 프로그램의 의사가 서명 한 것입니다. 그 시점 이후의 데이터는 데스크톱 앱에서 청구서를 제출하고 청구서를 제출하는 청구서 수신자를 위해 데스크톱 앱에 도달해야합니다. 웹 앱의 해당 시점 이후에 수정/변경이 이루어지면 데스크톱 앱에서 정확한 청구를 위해 수정해야합니다. –

답변

0

가장 강력한 방법은 외부 동기화 응용 프로그램을 호출하는 데이터베이스에서 트리거를 만드는 것입니다.

Database trigger that communicates with an external program

+0

DB 트리거를 시도하고 테스트했습니다. 웹 서비스가 적절한 동기화를 제공 할 수없는 경우 백업 메커니즘으로 예약됩니다. 의견을 보내 주셔서 감사합니다. –

관련 문제