2017-11-27 2 views
0

저는 작업 관리자 응용 프로그램을 빌드하려고합니다. 두 개 이상의 클라이언트 응용 프로그램은 웹을 통해 데이터베이스에 저장된 특정 작업을 변경 (예 : 제목을 변경하거나 변경) 할 수 있어야합니다.데이터베이스의 변경 사항에 대해 Java 애플리케이션에 알리기

요구 사항을 작성하는 동안, 다음과 같은 질문을 내놓았다 :

어떻게 지속적으로 데이터베이스를 확인하지 않고, 데이터베이스의 변경 사항에 대한 클라이언트 응용 프로그램 (안드로이드 앱, Mac에서 자바 응용 프로그램)를 알릴 수 있습니까? 웹 서버에있는 SQL 데이터베이스에 데이터 개체를 저장할 계획이었습니다. 다른 데이터베이스를 사용해야합니까? SE 세계에서 지금 갈 표준 방법은 무엇입니까? 나를위한 설명이나 설명이 도움이 될 것입니다!

답변

0

먼저 클라이언트 응용 프로그램에서 데이터베이스에 직접 액세스하지 않도록하십시오. 이는 매우 위험한 경로입니다.

두 번째로, 서버 측면 푸시 알림을 원하는 것처럼 보이는 것입니다.

내가 아는 한 3 가지 방법이 있습니다. 서버에서

  1. 확인 업데이트 모든 X의 초 (이 방법을 통지 할 필요가 너무 많은 클라이언트가없는 경우 갈 괜찮습니다)
  2. 를 사용하여 HTTP 롱 폴링.
  3. WebSocket을 사용하면 서버/클라이언트 응용 프로그램간에 오래 지속되는 연결을 유지할 수 있습니다.

휴대 기기의 경우 앱이 종료 된 경우에도 알림을 받으려면 사용할 수있는 모든 푸시 알림 프레임 워크 (예 : FCM/GCM)를 살펴보세요.

+0

감사합니다. FCM 프레임 워크 솔루션을 사용해 보겠습니다. Websocket Solution 사용에 대해 생각해 봤지만 웹 서버 (HTTP/SQL) 및 응용 프로그램 서버가 없습니다. 마지막 질문 하나, 데이터베이스에 직접 액세스하지 않으면 어떻게됩니까? SQL 데이터베이스에 연결하고 데이터를 검색하려고했습니다. 의사 소통 경로에 제 3자가 있어야합니까? 그렇지 않으면 정상적으로 어떻게 수행됩니까? – TheBlackBird

+0

@ TheBlackBird WebSocket은 실제로 일반적인 HTTP 웹 서버 내에 살 수 있습니다. 많은 웹 프레임 워크가이를 지원합니다. 데이터베이스 액세스에 관해서는이 [post] (https://stackoverflow.com/questions/16005831/connecting-to-sql-database-directly-or-through-a-client-server-service)에서 살펴볼 수 있습니다. . 아마도 RESTful 아키텍처를 원할 것입니다. – toyknight

관련 문제