2012-09-12 3 views
1

웹 서비스와 클라이언트 - 서버 아키텍처에 대한 반 이론적 질문을 할 것입니다.웹 서비스는 어떻게 사용합니까?

약 50 개의 테이블이있는 데이터베이스가있는 서버가 있습니다. 이 서버는 클라이언트와 연관된 사용자에 대한 정보가 들어있는 하나의 테이블을 보유합니다. 각 클라이언트는 db에있는 모든 데이터의 하위 세트와 연관되어 있습니다.

미리 정의 된 빈도와 특정 웹 서비스를 호출하는 각 클라이언트 (Android 앱에서 실행되는)가 로컬 데이터베이스를 채우고, 서버 sb에 상주하는 모든 테이블의 복사본을 생성하며 요청 클라이언트와 관련된 정보 만 제공합니다.

또한 db 서버 측의 데이터가 변경 될 수 있으므로 자주 동기화해야합니다. 클라이언트 응용 프로그램은 온라인 쇼핑 응용 프로그램으로 imaginated 할 수있다, 그래서에 대한 로컬 데이터베이스를 채우기 이야기 할 때, 주문 등 그래서

를 제거하는 주문을, 공급 업체, 기사를 통해 가능 브라우징해야한다는 고려

상점 공급자, 기사, 즉 요청하는 클라이언트에게 모든 정보를 제공한다는 의미입니다.

이 정보로 로컬 데이터베이스를 채울 수 있습니까?

정보가 필요할 때만 웹 서비스를 호출하고 로컬 db에 정보를 저장하지 않는 것이 더 합리적이라고 생각합니다. 그래서 동기화는 더 이상 필요하지 않습니다.

키가 큰 나에 대해 어떻게 생각하세요? 고맙습니다.

답변

3

나는 안드로이드 개발에 대해서는 아무것도 모르지만, 웹 서비스와 SOA를 사용한 경험이 많다.

특히 클라이언트 장치의 저장 용량과 처리 능력이 제한되어있는 경우 모든 비즈니스 논리 및 데이터 논리가 웹 서비스에 있어야하며 클라이언트 응용 프로그램은 해당 서비스의 표시 및 호출에만 사용됩니다. 당신이 구현하는 방법은 우리가 당신을 위해 대답 할 수없는 것입니다. 모든 프로젝트마다 다릅니다.

유일한 예외는 연결되지 않은 상태에서 앱을 반드시 실행해야하는 경우입니다. 이 경우 고객의 특정 요구 사항을 알고 있어야하며 고객이 에 절대적으로이 필요한 데이터 만 유지하고 연결이 끊어지는 동안 절대적으로 필요한 비즈니스 논리 만 제공하면 매우 바람직합니다.

나도 몰라 -

(분실하거나 도난당한 장치가 데이터 유출의 가장 높은 소스 중 하나이기 때문에 장치에 덜 민감한 데이터는 더 나은이도 간단하게 보안을 유지하는 데 도움이됩니다.) 그게 도움이된다면, 나는 그걸 버릴거야.

+0

답변 해 주셔서 감사합니다. – GVillani82

0

응용 프로그램이 온라인에서만 작동하는 경우 예. 데이터를 데이터베이스에 저장하고 나중에 검색 할 필요가 없습니다. 귀하의 요구 사항이 온라인과 오프라인을 모두 지원해야하는 경우 데이터베이스를 사용해야합니다.

서비스 또는 비동기 작업 또는 핸들러를 실행하여 Android 애플리케이션에서 Webservice를 호출하면 UI 스레드가 차단되지 않습니다.

응답이 너무 큰 경우 중간 계층에 대해 생각해야합니다. SOAP 응답을 JSON으로 변환하면 장치에서 응답을 처리하고 네트워크 전송이 더 쉽습니다.

사용자의 요구 사항에 따라 온라인 모드 만 지원하기에 충분하다고 생각합니다. 사용자가 2 일 동안 앱을 사용하지 않아서 로그인하지 않고 관련이 없을 수도있는 오프라인 데이터를 표시하면 데이터가 달라질 수 있습니다.

관련 문제