2012-11-02 2 views
2

웹 서비스 응답 메시지의 경우, 너무 많은 데이터가 얼마나 있습니까?웹 서비스 : 얼마나 많은 데이터가 있습니까?

네트워크 외부에서 열리는 Java로 작성된 HTTP 서블릿이 있습니다. 데이터베이스를 호출 한 다음 방화벽을 통해 JSON 메시지를 다시 보냅니다. 우리는 패킷 헤더를 포함하지 않고 데이터만을위한 344kb를 말합니다. 나는 이것이 상당한 것이라고 생각하지 않을 것이다. iOS와 Android 플랫폼 모두에서 응답을 받고 있으며 총 왕복은 1 초에서 15 초 사이 일 수 있습니다. 평균은 아마> 6 일 것입니다. 저는 이것을 5 초 이내에 꾸준히 얻고 싶습니다. 내 타이밍에 따라 데이터베이스에 대한 webservice 호출은 밀리 초입니다. 우리는 방화벽 뒤에 있지만 인터넷 앞에서 직접 연결 했으므로 (인터넷을 배제 함) 총 왕복 시간은 1 초 정도 걸릴 수 있습니다.

테스트와 마찬가지로 반환 JSON을 트리밍하여 단 1 행의 데이터 (4kb) 만 반환하고 물론 상당한 속도 증가를 볼 수 있습니다 ... 꾸준히 < 우리 네트워크 외부에서 1 초. 정말 질문을 구걸, JSON 메시지를 기대할 때 < 5 초 모바일 장치에서 소비되도록 반환 할 때 최대 데이터 크기가 있습니까? wireshark를 실행하면 이것이 여러 패킷으로 전달된다는 것을 알 수 있습니다.

나는 또한 클라이언트가 메시지를받는 시간과 화면에 표시하는 데 걸리는 시간을 측정했습니다. 단지 밀리 초입니다.

내 클라이언트 프로그램을 다른 데이터에 대한 여러 개의 webservice 호출로 나누는 것을 싫어합니다. 프로그램이 매우 기본적인 것으로 간주하고 여러 호출이 필요하다는 것을 알지 못합니다.

당신은 어떻게 생각하십니까? 인터넷을 비난하고 멋진 스플래시/로딩 화면을 만드시겠습니까? :)

** 편집 : 나는 또한 내가 SSL **

답변

5

비난 모바일 연결과 추가 된 지연 시간을 통해 갈거야 것을 추가하는 것을 잊었다. 명시 적으로 다운로드 속도조차도 아니며 상수 연결을 유지할 확률이 높지 않고 청크가 아닌 패킷입니다.

슬프게도, 여기에 "올바른"대답을 찾을 수 없습니다.

완벽한 조건에서 모든 휴대 전화에는 모든 데이터가 포함 된 2 ~ 2 초의 RTT가 적용될 수 있습니다.
덜 이상적인 상황에서 데이터가 도착하지 못할 수도 있습니다.

그래서 무게 대 주파수의 균형 동작에 가입해야합니다.
그리고 아무도 당신에게 비율을 줄 수는 없지만 당신은.

개인적으로 제 조언은 모듈별로 데이터를 분류하는 것입니다.
앱을 구성하는 모듈 식 위젯이 거의 없으며 각각 구성 데이터 또는 사용자 데이터가 필요하며 각각을 별도로로드하고 느슨하게 결합 된 방식으로로드해야합니다.

간단한 설명으로, 메시지 창, 온라인 친구 목록 및 PM 목록이 서로 독립적으로로드되는 채팅 앱이있을 수 있습니다.

각 준비가 완료되면 초기화되고 각각은 별도의 "로드 중"표시기가 있습니다 (진행 상태는 양호하지만 실제로 "작업 중"이됩니다).

앱이 블로그 롤 또는 화면에 한 줌 밖에없는 항목 세트와 같은 경우 화면 당 평균 개수를 기준으로 논리적으로 청크합니다.
빈 응답을 다시 얻을 때까지 성공적인로드가 다음 비동기로드를 트리거하는 대기열에 설정하십시오.

앱이 수천 개의 통계 행을로드하는 분석 스위트와 같은 경우 ... 글쎄, 할 수있는 일이 많지는 않지만 사용자가 제대로 작동하는지 확인해야합니다. 첫 번째 결과와 함께 "합계"필드를 보내고 지금까지로드 한 고유 한 행 수를 기반으로 진행 상황을 표시 할 수 있습니다.
또는 하루에 통계가있는 경우 일별 또는 주별로 청크를 표시하고 막대 또는 캘린더에 현재 사용 가능한 세트가 얼마나 멀리 있는지 표시 할 수 있습니다.

는 여기에 쉬운 대답은, 그러나 희망 약간의 도움과 충고의 한 조각이 없습니다

:

나는 그 모든 것을에서 스트리밍 볼 수 있고, 당신이 일을 끝낼 때 작동하는 프로그램에 5 초 정도 대기

이며, 3 초보다 견딜만하다. 완성 된 제품이 튀어 나오기 전에 아무 것도 알려주지 않는다.

+0

모바일이 패킷과 데스크톱을 처리하는 방법에 더 관심이 있다면 기사/책이 ​​있습니까? 대기 시간 문제에 중점을 둡니다. 경영진은 "인터넷이라고!"라고 말할 때 그것을 좋아하지 않습니다. :) – xhermit

+0

그래, 알았다. 나는 "아마 우리가 이것을 다시 써야 할 것"이라고 말하는 사람이되는 것을 싫어한다. 여기에서보십시오 : http://www.igvita.com/2012/07/19/latency-the-new-web-performance-bottleneck/ 그리고 여기 : http://www.igvita.com/2012/04/04/ 측정 사이트 속도 - 네비게이션 타이밍/도덕적 인 것은 당신이하고있는 일이 정확하지만 (요구가 적어지기는하지만) 대기 시간이 100 % 피할 수 없다는 것과 함께 모든 것을해야한다는 것입니다. RTT가 아프므로 전송이 불가능하므로 UI를보다 신속하게 처리하십시오. – Norguard

0

모바일 통합의 경우 65000 개의 JSON 문자가 우수합니다. 전송하는 동안 JSON을 GZIP으로 보낼 수 있고 수신자 측에서 압축을 풀 수있는 경우 최대 89,000자를 수신해야합니다. . JSON의 크기가 더 큰 경우 일괄 처리를 수행해야합니다.

더 많은 문자의 경우 문제는 대역폭에서 발생합니다. 인터넷 대역폭이 느린 경우 데이터를 수신하지 못할 수 있습니다 (데이터 손실).

관련 문제