2011-08-30 15 views
20

Chcę utworzyć usługę komunikacji mobilnej, ale nie wiem, które lepiej użyć programowania gniazd lub usługi sieciowej?Programowanie gniazda a serwis internetowy?

Jakie są obawy, które muszę wziąć pod uwagę, tworząc taką usługę? np. koszt połączenia .. itd.

Jeśli potrzebujesz więcej informacji, po prostu powiedz mi, zanim oddasz głos na pytanie lub zamkniesz!

+1

do kogo głosowali w dół! Powiedz mi dlaczego ?? – Adham

+0

Trudno zrozumieć, o co prosisz. Usługi sieciowe działają poprzez gniazda - nie jest to ani-ani. Również "Jakie są obawy ..." wydaje się zasadniczo wymagać od odbierającego napisania książki. –

+0

Jak już wiem, usługa internetowa wykorzystuje protokół HTTP, w którym pakiety HTTP zawierają wiele dodatkowych danych (nagłówków), co oznacza w rezultacie większe zużycie ruchu, czy efektywne jest projektowanie naszego protokołu w celu ograniczenia tego problemu za pomocą programowania gniazd. O rozmowach, potrzebuję ważnych nagłówków, jeśli nie chcesz, żeby nie było deatils .. – Adham

Odpowiedz

17

Usługi sieciowe są na ogół "łatwiejsze" do zrobienia, dzięki ogromnemu zainteresowaniu nimi i wsparciu dla nich w narzędziach programistycznych oraz w bibliotekach i frameworkach.

Jednak, szczególnie jeśli twoja ładunek jest niewielki (myślę, że rozmiar wiadomości to typowy SMS lub tweet), to koszty ogólne, które tworzysz za pomocą usług sieciowych, są wygórowane: bajty wysyłane przez sieć bezprzewodową, taką jak GPRS lub UMTS, są nadal bardzo drogie, do bajtów przeniesionych przez kabel lub ADSL. Usługi internetowe przenoszą wiele warstw niewidocznych informacji, które klient końcowy będzie musiał zapłacić.

Tak więc, jeśli Twój przypadek użycia jest oparty na krótkich wiadomościach, radziłbym przynajmniej wykonać obliczenia symulacji przepustowości i oprzeć decyzję na ograniczeniu przepustowości w porównaniu ze zwiększoną złożonością aplikacji.

Patrząc na gniazda, spójrz na UDP: jeśli możesz żyć z tym, że w zasadzie rzucasz komuś pakiet, i bez zaprojektowania jakiegoś mechanizmu potwierdzenia w swoim protokole, nigdy nie będziesz pewny, czy wiadomość dotarła, Jest bardzo wydajny, ponieważ nie ma ruchu do tworzenia i utrzymywania połączenia, a nawet bardzo długie wiadomości mogą być bardzo dobrze transportowane w jednym pakiecie UDP.

EDIT na podstawie Komentarz:

  • gniazdo stream: nie wiem, jak można zdefiniować strumienie, ale strumienie i wiadomości są dwie zupełnie różne koncepcje dla mnie, strumień jest zwykle dłuższy ciąg wysyłanych danych, natomiast wiadomość jest jednostką, która została wysłana i opcjonalnie potwierdzona lub odebrana przez odbiorcę.
  • symulacja przepustowości: najłatwiejszym sposobem zrozumienia, o czym mówię, jest uzyskanie Wireshark i dodanie wszystkiego, co zostanie przetransportowane przez sieć, w celu wykonania prostej prośby o bardzo krótki ciąg - zobaczysz kilka warstw administracyjnych info (tj. niewidoczne, tylko tam, aby działały różne warstwy protokołów), które są ruchem płaconym przez użytkownika końcowego. Następnie napisz małą próbną usługę przy użyciu protokołu UDP, aby przetransportować tę samą wiadomość, lub użyj narzędzia takiego jak netcat, dobrego samouczka here i dodaj bajty, które zostaną przetransportowane. Zobaczysz całkiem duże różnice w liczbie wymienianych bajtów.

EDIT2, o czym zapomniałem wspomnieć: sieci komórkowe były otwartymi, przezroczystymi sieciami z urządzeniami identyfikowanymi przez publiczne adresy IP. Szybka ewolucja w kierunku sieci mobilnych NAT ma wpływ na to, jak urządzenia wewnątrz i na zewnątrz tego "murem" mogą się komunikować (NAT traversal). Musisz wziąć to pod uwagę przy projektowaniu kanału komunikacyjnego.

Co do wykorzystania strumieni dla aplikacji czatu: oferuje kilka koncepcyjnych zalety, ale można bardzo dobrze warstwa aplikację czat na wierzchu UDP, patrzeć here lub here

+0

proszę podać więcej szczegółów na temat "Przydałbym się przynajmniej do obliczeń symulacji przepustowości" ... i dziękuję bardzo za bardzo przydatne informacje na przykład – Adham

+0

. Jak myślisz, jaka jest technologia za taką usługą? .. http://www.redmondpie.com/chaton-for-iphone-android-and-blackberry-is-samsungs-answer-to-imessage-video/ – Adham

+0

Przepraszam, miałem na myśli w strumieniach, Jeśli chcę wprowadzić na -line czat, czy to dobry pomysł? – Adham

Powiązane problemy