/ / Sockets или RMI - производителност и мащабируемост - java, sockets, мрежово програмиране, rmi

Sockets или RMI - производителност и скалируемост - Java, контакти, мрежово програмиране, rmi

Понастоящем решавам какъв вид комуникацияметод / мрежов протокол, който ще използвам за нов проект. Това, което мога да ви кажа за този проект, е, че: - Тя е базирана на Android / java, използвайки X количество устройства с Android - Тези устройства трябва да могат да изпращат низове един към друг през локална мрежа. Говорим за малки струни тук. Малки като по-малко от 100 символа. - Размерът на изпратените пакети / предавания може да варира "LOT". Не мога да кажа колко, за съжаление, но мрежовият протокол трябва да бъде колкото е възможно по-мащабируем.

Проучих различни видове възможни решения и сега реших да използвам "Sockets" или "RMI"

Както разбрах за RMI:

  • По-лесно е да внедрявате и поддържате Java sockets (по-малко количество код)
  • Това е "малко по-бавно" от сокетите, тъй като това е нов "слой", изграден върху Sockets
  • Възможно е да има някои проблеми с мащабируемостта (ако това е вярно, колко "сериозно" е това?), Тъй като създава много нови контакти, което води до изключения.

Очевидно е, че системата трябва да работи възможно най-гладко, но основната цел е тя да стане мащабируема, за да може да се справи с повече устройства с Android.

EDIT: Системата, която системата не е "peer-to-peer". Всички устройства с Android трябва да могат да бъдат конфигурирани като сървър.

Отговори:

0 за отговор № 1

Нито една от вашите притеснения не е истинският проблем, според мен.

RMI има предварително дефиниран протокол, сурови контакти не.

Ако използвате сурови контакти, трябва да направите цялата работа, за да определите какви съобщения и протоколи се обменят от клиента и сървъра.

Има толкова много добри съществуващи протоколи (RMI, HTTP и т.н.), че ще се чудя защо чувствате нуждата отново да измислите своето.

Устройства с Android, които комуникират през HTTP - кажете ми защо няма да бъде достатъчно бърз или мащабируем HTTP е достатъчно добър за интернет - защо не и вашето решение?


0 за отговор № 2

Бих ви предложил да изложите някакъв видwebservice (SOAP или REST) ​​във вашия сървър на приложения. Например, хората често излагат своите данни на мобилни устройства като приложния програмен интерфейс (API) REST webservice, който връща някакъв вид JSON формат, за да го улесни при повторното му поставяне в клиентското устройство.

По този начин ще се възползвате от базовия активвнедряване на HTTP комуникация във всеки сървър на приложения; по някакъв друг начин, ще трябва да напишете своя собствен басейн на работниците, като използвате примитивни операции, за да постигнете резултати ... Не трябва да се прави нещо в реална производствена среда - може би в академична среда?