Client Side Business Application Framework

12.07.2008 Иван Давидов Категории Всичко, Размисли, Технологии |

На какви изисквания би трябвало да отговаря платформа за бизнес приложения, предназначена за използване от крайни клиенти, чиято цел е не да предоставя готови решения, а да да ва основи, на които вече да се градят бизнес решения?

Малкото ми проучване по въпроса не даде съществен резултат. Ето защо сам си отговарям. Списъкът не е пълен, но дава някаква насока по въпроса:

  • Системата  трябва да  бъде модулна.
  • API-то за разширяване на платформата трябва да е публично достъпно.
  • API-то за разширяване на платформата не трябва да дава никаква готова имплементация по нито един бизнес въпрос. Това е работа на софтуерни архитекти/софтуерни инженери.
  • API-то за разширяване на платформата трябва да бъде изключително лесно за боравене.
  • Добавянето/редактирането/премахването на нов модул в системата трябва да става лесно, по възможност без програмиране, а с конфигурация (XML, анотации, …).
  • Задължително трябва да се поддържт версии на модулите.
  • Задължително трябва да се поддържат зависимости между модулите.
  • Визуализацията на бизнес приложението не бива да се определя от API-то, а от конкретната му имплементация.
  • API-то трябва да работи еднакво ефективно както на десктоп среда, така и в уеб среда (това е трудно, да не кажа направо невъзможно).
  • API-то трябва да предоставя канал за комуникация между отделните модули по време на инициализация, по време на работа и преди спиране на работта с приложението.
  • API-то не трябва да е обвързано с никаква конкретна технологиза за logging, persisting, business logic и т.н. Всичко това трябва да се дефинира от конкретната имплементация. API-то трябва само да предостави адекватен интерфейс и/или адекватни канали за комуникация.
  • Национализирането (Localization) е вече толкова задължително, че според мен механизъм за това би трябвало да се предоставя от API-то под формата на добре дефиниран комуникационен канал и/или интерфейс.

Със сигурност могат да се добавят още много неща, защото всичко това го написах на прима виста и 100% не съм го обмислил добре. Ако съм прав и това като идея не е реализирано, тогава трудът си заслужава. А ако не съм прав (повечето неща в съвременния свят отдавна са измислени, това сигурно също, просто не съм го намерил), тогава трудът пак си е заслужавал, защото си поразмърдах малко мозъчните клетки.

Аз се сещам за два примера, които могат да служат за подпобни платформи. Eclipse и NetBeans. И двете платформи са модулни, и двете са с добре дефинирани API-та, но и двете са правени и продължават да се развиват като основа за RAD IDE, а не като платформа за бизнес приложения. Не че не могат да се ползват и за бизнес приложения, но не са мислени с тази цел. А и не работят през web! :)

Оставете отговор:

Вие трябва да сте регистриран, за да пуснете коментар.