powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Архитектура web/desktop/mobile приложения
25 сообщений из 28, страница 1 из 2
Архитектура web/desktop/mobile приложения
    #37004010
Zeleboba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.

Нужен совет по архитектуре веб приложения.

Перед началом разработки пытаюсь определиться с общим видом высоко нагруженного многопользовательского веб приложения, с учетом возможности последующего масштабирования.

Первоначальная схема следующая (для веб приложения)

client -> nginx ->memcached -> apache -> memcached-> pl-proxy -> pgbouncer -> postgresql.

Схема( прошу прощения за кривость, ничего под рукой кроме mspainta нет)


На картинке все узлы которые в одном экземпляре могут дублироваться для отказоустойчивости.
"p/ proxy" на рисунке это криво нарисованный pl/proxy от skype.

Проблема в том, что клиент может быть не только браузер но и десктоп приложение, и мобильный клиент.

Под знаком вопрос на рисунке ( по моему мнению ) должно стоять что-то, что балансирует запросы от десктоп-клиента, кеширует ответы, и организует взаимодействие с API которой лежит на бэкенде веб серверов (на рисунке Application API). Не знаю как правильно это организовать.

Подскажите пожалуйста, как правильно мобильный(приложение) и десктоп(приложение) клиенты должны взаимодействовать с архитектурой такого веб приложения.
Критика приветствуется, спасибо.
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37004786
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблема в том, что архитектура зависит от выбранного фреймворка-каркаса вэб-приложения.
Т.к. масштабируемость уже "зашита" в них.
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37006656
barser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zeleboba,

Если бы это была винда и .net, то с помощью WCF было бы круто.
Для java не знаю - вот RMI , говорят...
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37007428
Zeleboba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rmi это да, но это просто способ соединения и вызова удаленных функций. Он , к сожалению, не дает ответа на вопрос о балансирке нагрузки ( распределении запросов ) по серверам с API. Серверов приложений то несколько.
А также не дает ответа о том как грамотно реализовать кеширование ответов.

Есть идея воспользоваться следующим способом - транслировать каким-то образом запросы/ответы от и к десктоп клиенту в http запросы с какой-то пометкой что они от десктоп клиента и взаимодействовать через nginx как и само веб приложение ( далее ВП ).
Но я не знаю практикуется ли такой способ - мне он кажется кривым.

На самом деле задача очень распространенная - большинство тех кто сейчас делает многопользовательские ВП либо сразу делают клиента для мобильных/десктоп приложений либо закладывают возможность на будущее. Но какой-то внятной статьи на эту тему мне найти не удалось( пока ).
Да, кстати - многие популярные веб приложения открывают свой API для всех остальных в свободное пользование. Так как, по моему представлению, схема ВП у них похожа на ту что я нарисовал , то это означает что у них уже реализована балансировка запросов к их API(распределение нагрузки запросов по серверам с API) и кеширование ответов. Это мне и нужно - вопрос только в том какие готовые(по возможности) технологии нужно использовать.
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37007463
Zeleboba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя больше интересны балансировка т.к кеширование уже есть позади серверов с api
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37009638
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятно что такое в этой схеме "Apache"? Apache Httpd (зачем он нужен при наличии в качестве фронтэнда nginx)? Apache Tomcat (при таком размахе почему не полноценный JavaEE-сервер)?

Полноценный JavaEE сервер приложений уже имеет встроенный функционал по кэшированию объектов и кластеризации приложения.

Не web-клиенты на Java взаимодействуют с серверной частью через RMI-IIOP, или, если клиент написан не на Java, Corba/IIOP, SOAP.
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37010174
Zeleboba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за комментарии



KachalovНепонятно что такое в этой схеме "Apache"? Apache Httpd (зачем он нужен при наличии в качестве фронтэнда nginx)? Apache Tomcat (при таком размахе почему не полноценный JavaEE-сервер)?
Apache имеется в виду полноценный сервер приложений.

KachalovПолноценный JavaEE сервер приложений уже имеет встроенный функционал по кэшированию объектов и кластеризации приложения.
Вы правы. Я выбрал такую схему просто потому что она является на данный момент распространенной практикой в промышленных приложениях.

KachalovНе web-клиенты на Java взаимодействуют с серверной частью через RMI-IIOP, или, если клиент написан не на Java, Corba/IIOP, SOAP.
Согласен, но как оранизовать связку клиент - несколько серверов с api? Его запрос 1 а серверов приложений много. На какой из серверов клиенту подключаться? Кто-то дожен так-же как и в веб приложении заниматься распределением запросов от клиента. В веб приложении эту функцию как раз выполняет nginx.
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37010181
Zeleboba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не ответил про nginx
KachalovНепонятно что такое в этой схеме "Apache"? Apache Httpd (зачем он нужен при наличии в качестве фронтэнда nginx)? Apache Tomcat (при таком размахе почему не полноценный JavaEE-сервер)?

Nginx в моей схеме выполняет роль балансировщика (распределителя)запросов к серверам apache. Это его основная функция в данной схеме. Также он может хранить и отдавать часть статического контента. То есть nginx 1 а серверов приложений много. Вроде является распространенной практикой.
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37014861
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм.
А какая нагрузка будет и какой профиль и какие задачи?

Вообще, если разделить уровень бизнес-логики и уровень презентации, то все станет несколько проще.

Т.е. есть сервер приложений, сидящий за тем же nginx, а перед ним - или JSPшки (или, лучше, какой-нибудь другой шаблонизатор) или десктопы или что-то еще.

И, да, memcached - это средство для кэширования, что оно делает перед applayer?

Ну и, конечно, полноценные J2EE сервера для полноценных приложений использовать не стоит.

И, да, почему PostgresSQL? Или это наиболее знакомая БД?

А вообще балансировку нагрузки можно делать разными способами - nginx, cisco, балансером на FreeBSD etc - это, в общем, уже что больше знакомо сисадмину :)
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37016575
Zeleboba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3Хм.
А какая нагрузка будет и какой профиль и какие задачи?
Я бы отнес это к многопользовательской интеллектуальной игре (без флеша, и графики, легкий javascript) где пользователи делятся на группы и в этой группе выполняют различные действия.
Нагрузка не известна, но в группе может быть не ограниченное количество одновременно выполняющих простые действия пользователей. Причем результаты действий других пользователей видны если не сразу то с небольшой задержкой. Масштабирование заложить хотелось бы сразу таким образом, чтобы масштабировать горизонтально можно было бы просто с помощью добавления параметров с новыми серверами в настройках узлов .

DPH3Вообще, если разделить уровень бизнес-логики и уровень презентации, то все станет несколько проще.
Согласен. Можно вообще разнести презентацию и api по разным серверам.

Для простоты представим что на рисунке теперь не 3 сервера с презентацией и api а 6 серверов -
3 с презентацией и 3 с api. Теперь точка входа для взаимодействия для всех типов клиентских приложений а так же для уровня презентации это сервера с api.

DPH3Т.е. есть сервер приложений, сидящий за тем же nginx, а перед ним - или JSPшки (или, лучше, какой-нибудь другой шаблонизатор) или десктопы или что-то еще.
Описал как раз такой вариант.
Но тогда возникает тот-же вопрос который я все время задаю в своих постах выше:
Какой компонент будет заниматься балансировкой запросов от клиентов и равномерно распределять по серверам с api?
Например мой мобильный клиент должен обратиться к API бизнес логики. К какому серверу с API ему коннектиться? Позже, допустим, будет не 3 а 10 серверов с API.
Как организовать распределение таких вот клиентских запросов к серверам с api? Как быть если клиент взамиодействует с api по rmi? Насколько я помню rmi клиенту надо явно указать на какой сервер коннектиться. А мне нужно к кластеру.

Можно , конечно, самому написать балансировщик с одной точкой входа но скорее всего я просто плохо разбираюсь в теме и есть стандартные решения которые нужно использовать.

DPH3И, да, memcached - это средство для кэширования, что оно делает перед applayer?
Да, я на рисунку просто пытался показать что кешировать можно не только страницы но и обьекты, То есть и элементы презентации и элементы логики. memcached один.

DPH3Ну и, конечно, полноценные J2EE сервера для полноценных приложений использовать не стоит.tomcat презентация + nginx бизнес логика?

DPH3И, да, почему PostgresSQL? Или это наиболее знакомая БД?
Из открытых бд на мой взгляд наиболее перспективная. Выбор был между mysql и postgre.

DPH3А вообще балансировку нагрузки можно делать разными способами - nginx, cisco, балансером на FreeBSD etc - это, в общем, уже что больше знакомо сисадмину :)
Чем делать балансировку rmi соединений если клиент взаимодействует с его помошью?
Cпасибо.
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37016658
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3 Какой компонент будет заниматься балансировкой запросов от клиентов и равномерно распределять по серверам с api?

Если у тебя API - stateless и через http (что вообще-то для данной задачи вполне разумно), то вариантов куча:
1) nginx
2) cisco-вый железный роутер
3) софтовый роутер на каком-нибудь *nix (там куча более-менее стандартных вариантов, в РФ традиционно предпочитают решения на FreeBSD)

Конкретный вариант - пусть выбирает сисадмин, что ему более знакомо и что вписывается в бюджет.
Снаружи, понятное дело, есть только один общий на весь кластер IPшник.

DPH3Ну и, конечно, полноценные J2EE сервера для полноценных приложений использовать не стоит.tomcat презентация + nginx бизнес логика?

Э, бизнес-логика - это простые сервлеты под томкатом, разумеется.
Презентационный слой - на том движке, на котором сможешь. Лучше - простой шаблонизатор. Вон, есть Python-овский шаблонизатор и интеграционный уровень от hh.ru - вполне ничего.
Или Яндексовский XScript.

DPH3И, да, почему PostgresSQL? Или это наиболее знакомая БД?
Из открытых бд на мой взгляд наиболее перспективная. Выбор был между mysql и postgre.

MySQL, конечно, не о чем. Но из бесплатных есть еще как минимум IBM DB2 Express C.
Постгресс - это, конечно, хорошо, но глюков хватает.

Чем делать балансировку rmi соединений если клиент взаимодействует с его помошью?

Для начала - а не надо вообще использовать rmi в общении с клиентом. Так же, как и не надо писать клиента на Java (ну, в крайнем случае, можно на Eclipse RCP - если граничные условия подходят). Если у тебя общий API для всех (а это - разумно), то это какой-нибудь REST+Json, оттуда и пляши.
Впрочем, rmi тоже должно быть пофиг, ему отдается ip сервера или кластера. Ему-то какая разница.
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37018524
Zeleboba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3,

Спасибо за полезные комментарии.
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37020359
OZKA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DPH3Лучше - простой шаблонизатор. Вон, есть Python-овский шаблонизатор и интеграционный уровень от hh.ru - вполне ничего.

Прошу прощения что влезаю с неким оффтопиком, просто заинтересовало о чем речь в выделенном мной фрагменте цитаты?
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37020598
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZelebobaApache имеется в виду полноценный сервер приложений.
- в линейке продуктов от Apache Foundation нет "полноценного" сервера приложений. В контексте Java приложений, "полноценный сервер приложений" - это продукт полностью реализующий JavaEE-стек (пример: GlassFish, WebLogic, WebSphere, JBoss APP Server)

ZelebobaNginx в моей схеме выполняет роль балансировщика (распределителя)запросов к серверам apache. Это его основная функция в данной схеме. Также он может хранить и отдавать часть статического контента. То есть nginx 1 а серверов приложений много.
...
Чем делать балансировку rmi соединений если клиент взаимодействует с его помошью?

- балансировку нагрузки между серверами приложений можно производить простым DNS Round Robin, также этот вопрос подробно освещен в Интернет: тынц

DPH3Ну и, конечно, полноценные J2EE сервера для полноценных приложений использовать не стоит.
- не полноценным не стоит рассуждать о полноценном.

DPH3бизнес-логика - это простые сервлеты под томкатом, разумеется.
- это вариант, причем не самый лучший, особенно с учетом того что ТС нуждается не только в web-клиенте

DPH3MySQL, конечно, не о чем
- в сочетании с JPA/EJB легко посоревнуется в производительности и гибкости с любым другим решением

DPH3не надо писать клиента на Java
ТС: Проблема в том, что клиент может быть не только браузер но и десктоп приложение, и мобильный клиент .
- очевидно клиента для мобилы надо писать на Python и отдавать в мобилу JSON Блин, Java специально для этого и создана - конечно на Java!
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37021393
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OZKAПрошу прощения что влезаю с неким оффтопиком, просто заинтересовало о чем речь в выделенном мной фрагменте цитаты?

Вообще, всяких XSLT-ориентированных шаблонизаторов сейчас на рынке несколько.

Есть XScript - это разработка Яндекса, сейчас в open-source, XSLT + lua
Есть Frontik - это разработка hh.ru (по мотивам XScript), XSLT+Python
https://github.com/hhru/frontik
http://andrewsumin.livejournal.com/

Мое мнение:
для быстрой и "грязной" разработки - лучше фронтик.
для больших и сложных проектов лучше XScript
В XScript четче отделятся бизнес-логика от логики отображени, а в фронтике постоянно есть соблазн их перемешать.

Основная беда XSLTшных шаблонизаторов - не самая замечательная производительность, особенно для сложных проектов. Но так как горизонтальное масштабирование на уровне фронтов для подобных проектов проблемы не составляет - то производительность не особо существенна, дешевле поставить еще парочку машин )
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37021458
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov- балансировку нагрузки между серверами приложений можно производить простым DNS Round Robin

Опс.. Хм, а перед тем, как давать подобные советы - в продакшне под высокой нагрузкой подобную схему использовали? И как?

- в сочетании с JPA/EJB легко посоревнуется в производительности и гибкости с любым другим решением

О, нагруженную систему на сочетании EJB и MySQL - в студию. С техническими решениями, параметрами нагрузки и стоимостью разработки.
Хуже решения как-то даже и в голову не приходит....
Вообще, JPA и нагрузка - сочетание очень сомнительное и для очень странных решений.
Личный опыт подобных проектов есть? Если нет - то и не стоит предлагать такое.

Блин, Java специально для этого и создана - конечно на Java!
Опс. J2ME на мобильниках еще кое-как живет, на смартфонах уже, фактически, умерла.
Увы, java - в первую очередь серверное решение. Ну, еще Android, конечно (хотя там та еще Java).
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37027132
Zeleboba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опс. J2ME на мобильниках еще кое-как живет, на смартфонах уже, фактически, умерла.
Увы, java - в первую очередь серверное решение. Ну, еще Android, конечно (хотя там та еще Java).

Я как-раз присматриваюсь к Android, а там только java и используется.
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37027231
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zeleboba,

Угу. Но все-равно рекомендую использовать не rmi в качестве транспорта, а что-то более универсальное. Меньше проблем будет.
Кстати, когда будете проектировать API, не забудьте, что клиенты и сервера обновляются отнюдь не синхронно. Поддержку версионности лучше сразу добавлять.
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37027362
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3Но все-равно рекомендую использовать не rmi в качестве транспорта, а что-то более универсальное.
- CORBA? SOAP? Все эти транспортные протоколы поддерживает JavaEE-сервер

DPH3Кстати, когда будете проектировать API, не забудьте, что клиенты и сервера обновляются отнюдь не синхронно. Поддержку версионности лучше сразу добавлять.
- Java Web Start? прекрасная технология для stanalone-приложений которые периодически нуждаются в обновлениях
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37028476
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov,

Ой. Нормальных ORB-серверов под Java просто нет, а SOAP нужен примерно там же, где и EJB 2.0 (т.е. практически нигде).

Сейчас проще и правильнее использовать http(s) в качестве транспорта, с REST+JSON поверх.

А уж идею использовать JavaWebStart для андроида повеселила, да... К тому же проблему версионности JWS все равно не решает нефига :)
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37028995
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3Ой. Нормальных ORB-серверов под Java просто нет
- Вам наверняка видней

DPH3SOAP нужен примерно там же, где и EJB 2.0 (т.е. практически нигде).
- про SOAP насмешили, а что касается EJB 2.1, то он нужен там где он уже есть, в остальных случаях нужен EJB 3.1

DPH3Сейчас проще и правильнее использовать http(s) в качестве транспорта, с REST+JSON поверх.
- не для всех программирование это делание web-сайтов

DPH3А уж идею использовать JavaWebStart для андроида повеселила, да... К тому же проблему версионности JWS все равно не решает нефига :)
- причем тут Android? ведь ясно написал:
KachalovJava Web Start? прекрасная технология для standalone-приложений которые периодически нуждаются в обновлениях
- а про обновления, читаем в первоисточнике ( Lesson: Java Web Start ):
авторUpdates to a Java Web Start application are automatically downloaded when the application is run standalone from the user's desktop
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37029816
Zeleboba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3,

Тоже склоняюсь к http+json. Посмотрел что foursquare перешел на это в своем api.
Friendfeed тоже смотрю построил на этом свой API.

автор Сейчас проще и правильнее использовать http(s) в качестве транспорта, с REST+JSON поверх.

Итак, как я понял, итог такой:

Я использую единый API для всех клиентов - в моем случае это сервера с сервлетами стоящие за nginx. Запросы к API приходят на nginx который и занимается балансировкой всех запросов от всех клиентов на сервера с API.

Клиенты: браузер, iphone, android - ну может еще десктоп.

Все клиенты общаются с единым сервером с API через nginx.

Браузер:
В случае с клиентом-браузером перед API стоит еще слой который готовит html для браузера который тоже как и все остальные клиенты использует API для генерации html.
В html который отправляется клиенту будет также java script который уже в браузере клиента через ajax который по мере надобности будет обращаться к тому же API и брать json обьекты.

Iphone и Android:
Мобильные клиенты используют библиотеки для работы с json и http и взаимодействуют напрямую с API из мобильного приложения.

Мобильные приложения должны, однако, обновляться через RPC ( видимо).

Все.

Если я где-то ошибся, пожалуйста, поправте.
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37035202
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZelebobaDPH3,
Тоже склоняюсь к http+json. Посмотрел что foursquare перешел на это в своем api.
Friendfeed тоже смотрю построил на этом свой API.

А также Facebook, Yandex, CoachDB и т.д.
Очередной common way, в общем.

Все клиенты общаются с единым сервером с API через nginx.

Единственное - что схема аутентификации/авторизации может быть разная для разных типов клиента. Но это от задачи зависит.
(hint - посмотрите на OAuth 2.0)

Браузер:
В случае с клиентом-браузером перед API стоит еще слой который готовит html для браузера который тоже как и все остальные клиенты использует API для генерации html.
В html который отправляется клиенту будет также java script который уже в браузере клиента через ajax который по мере надобности будет обращаться к тому же API и брать json обьекты.

А тут, обычно, или-или.
Или мы генерим html на сервере - и тогда много js на клиенте нам и не очень нужно.
Или генерим полностью на сервере - и тогда нам и шаблонизатор html не нужен вообще.
Решение - зависит от задач.
Ну, можно и смешивать, конечно, но аккуратно.

Мобильные приложения должны, однако, обновляться через RPC ( видимо).

И для айфона и для андроида схема автоматического обновления предусмотрена внутри самой системы, так что тут можно не задумываться. Благо все равно распространять приложения проще через маркет.
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37036738
Zeleboba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3 ,

Спасибо за ответ.

А тут, обычно, или-или.
Или мы генерим html на сервере - и тогда много js на клиенте нам и не очень нужно.
Или генерим полностью на сервере - и тогда нам и шаблонизатор html не нужен вообще.
Решение - зависит от задач.
Ну, можно и смешивать, конечно, но аккуратно.

Честно говоря, до конца фразу не понял: .Или мы генерим html на сервере.. и Или генерим полностью на сервере... - не понял в чем разница тут - генерим в обоих случаях на сервере, но в одном случае не полностью?

Я правильно понимаю, что в любом случае слой презентации, который занимается генерацией html (сервер на котором мы полностью генерим html) является как бы клиентом по отношению к этому единому api, и делает к этому серверу с api http запросты - точно так же как это делают и мобильные клиенты, результаты запросов использует для генерации html и результат отправляет в браузер?
То есть моб клиенты коннектятся непосредственно к серверу с api(json на http), а браузер по http коннектиться к серверу со слоем презентации, а слой презентации далает запросы на сервер с api (json на http).
Иными словами связка в случае с web приложением такая : браузер --http-> сервер презетнации --http+json--> сервер с api ?
...
Рейтинг: 0 / 0
Архитектура web/desktop/mobile приложения
    #37037550
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zeleboba Честно говоря, до конца фразу не понял: .Или мы генерим html на сервере.. и Или генерим полностью на сервере... - не понял в чем разница тут - генерим в обоих случаях на сервере, но в одном случае не полностью?

Ой, опечатка (
Конечно, во втором случае - полностью на клиенте (в браузере). Прошу прощения (

Я правильно понимаю, что в любом случае слой презентации, который занимается генерацией html (сервер на котором мы полностью генерим html) является как бы клиентом по отношению к этому единому api, и делает к этому серверу с api http запросты - точно так же как это делают и мобильные клиенты, результаты запросов использует для генерации html и результат отправляет в браузер?

С идеальном случае - да.
Но вот только далеко не все шаблонизаторы/веб-каркасы могут работать с json, поэтому может понадобиться какой-то промежуточный слой.
Впрочем, если html формируется на клиенте (браузере), то такой слой не нужен.
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Архитектура web/desktop/mobile приложения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]