Autor Zpráva
venca12
Profil
Ahoj.

Tohle je dotaz tak trochu v teoretické rovině.

Píšu aplikaci na webu (php, mysql), která by měla být administrovatelná, měly by se do ní dát importovat data, měla by umět zobrazovat data v různých podobách (v podstatě něco jako eshop).

Abych nepsal něco zbytečně víckrát a aby na tom mohlo pracovat víc lidí (jeden bude dělat to, druhý zase tohle), napadlo mě to rozdělit na jádro server a několik měkkých klientů, kteří by spolu komunikovali byť by byli na jednom serveru (ale mohli by být i jinde) pomocí nějakého protokolu (zalíbil se mi XML-RPC).

Jádro jako takové by obsahovalo databázi a funkce, které by se nad ní vykonávaly, tzn. například vyber produkty, vlož produkt, uprav produkt a pod. V tomto jádru by zároveň také byla vytvořena správa uživatelů a každý klient by se k němu musel přihlásit. Včetně například presentační části webu.

Klientů by bylo několik. Import1, Import2, Výstup na stránky1, Výstup na stránky 2, Includovaný skript někam, Offline klient1, Offline klient2 a pod. Každý z těchto klientů by měl určitá práva a přihlašovací údaje. Takže například stránka jako taková by se přihlásila k serveru a zavolala funkci vrať mi seznam produktů (neměla by oprávnění vkládat produkty a pod.).

Tohle řešení mě napadlo ze dvou důvodů. Nic bych nepsal dvakrát, žádnou funkci. Například bych nepsal funkci pro vložení uživatele pro import a tu samou pro administraci, protože by byla pouze jedna na serveru. A celé by se to pak dalo jednoduše rozdělit. Tzn. klienti by mohli být každý na svém serveru a server také někde jinde. Zátěž na klientech by byla proti serveru mizivá, to bych vyřešil tak, že bych udělal několik distribucí jádra a například klient 1, 2 a 3 by se připojovali na jádro na jednom serveru a klient 4, 5 a 6 by se připojovali na jádro na druhém serveru.

Schematicky (v rámci textových znaků :) by to tedy celé vypadalo takto:

jádro by bylo tvořeno:

[databáze]↔[php funkce]↔[protokol]

a například klienti by se k datům dostávali takto:

web:
[databáze]↔[php funkce]↔[protokol]←--(autentifikace/přenos)--→[protokol]↔[webová presentace]↔[uživatel]

administrace:
[databáze]↔[php funkce]↔[protokol]←--(autentifikace/přenos)--→[protokol]↔[administračn í rozhraní]↔[uživatel]

import napřímo:
[databáze]↔[php funkce]↔[protokol]←--(autentifikace/přenos)--→[protokol]↔[import]↔[uži vatel]

import z databáze z jiného serveru:
[databáze]↔[php funkce]↔[protokol]←--(autentifikace/přenos)--→[protokol]↔[import]↔[pře vodník]↔[jiná databáze]

export třeba do xml:
[databáze]↔[php funkce]↔[protokol]←--(autentifikace/přenos)--→[protokol]↔[exportní převodník]↔[xml]

Co myslíte, je to dobrej nápad, blbej nápad, nebo jakej je to nápad?

Díky za odpovědi.
WanTo
Profil
Zkus si zjistit něco o architektuře model-view-controller a pak o objektových návrhových vzorech, které se v souvislosti s ní používají.
venca12
Profil
Díky, to je ono.
venca12
Profil
Částečně
Toto téma je uzamčeno. Odpověď nelze zaslat.