[ASPX/PHP/Jxx/Python/...?] Které řešení použít?

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod flup 18. 4. 2009 01:09

Dd, prosím o radu, tip, kvalifikovaný názor,...

Kteřé řešení (jazyk, framework, ...) použít pro napsání web GUI k serverové aplikaci (B2B systém) která má zhruba následující architekturu:
1.1. server je napsaný v C++, jedná se o sadu procesů (daeomonů/batchů) který každý má nějakou specifickou funkčnost. Systém běží na *UX.

1.2. Konfigurace produktů, číselníků, byznys logiky a konfigurace systému jako takového je uložena v DB Oracle (prozatím XE), k datům se výhradně přistupuje přes PLSQL vrstvu (stored packages), pro selecty jsou vytvořeny referenční cursory, pro insert/update/delete jsou to procedury/funkce.

1.3 Zákaznická data (adresy, faktury, ...), účtovací eventy, trouble tickety, atd. jsou uloženy v DB MySQL. Důvod je ten, že těchto dat bude velké množství a Ora XE s kapacitou 4GB by mohla být brzy nedostatečná. K datům v MySQL se přistupuje přímými selecty/inserty/updaty.


Web GUI se bude skládat z násl. modulů:
2.1. Konfigurace produktů, číselníků, systémů - viz 1.2. tedy přístup přes PLSQL. Tento GUI modul bude využíván pouze omezeným počtem uživatelů. Podmínkou je řešení autorizace a přidělení určitých rolí co který uživatel může se systémem provádět. Produkty při definici můžou být i hiearchické, ideální je tedy použít Ajax/JS na klientovi pro funkcionalitu jako kontextové menu, drag-drop ve stromu, predikce při vyhledávání, atd. Jako třešnička na dortu by bylo ideální Google Gears pro off-line definici produktů a následné sesynch. se serverem. Dalším požadavkem je multijazyčnost.

2.2. Zákaznický portál/selfcare - funkcionalita přidávání zákazníků, nákup produktů, prohlížení účtovacích eventů a faktur, atd. - Tato část webu bude masově využívána, důraz by tedy měl být kladen na jednoduchost použití a malé systémové nároky serveru pro obsloužení zákazníka. Tedy minimum Ajaxu a JS na klientovi pouze pro formulářové validace. Jak jsem již napsal v 1.3 přístup do DB je přímý = ze servrletů (nebo webových služeb?? - bude se psát v rámci GUI). Požadavkem je opět autentifikační řešení (bez rolí), dále multijazyčnost.

2.3 Administrátorské GUI - funkcionalita prohlížení logů a to i souborů uložených na FS serveru. Dále kontrola běžících procesů, deploy nových funkcionalit systému, atd. Zde je požadavkem ve větší části využít již napsaných C++ DLL (.so) knihoven (např. pro parserování binárních logů, atd.). I tato část bude přistupovat do MySQL databáze kde jsou uloženy některé statusy systému.


Ze shora uvedeného mi vycházejí následující požadavky na framework:
- JEDEN jazyk (Java, C#, Python, ...) na všechny části GUI (krom JS samozřejmě)
- běh na *Ux
- nativní drivery pro DB Oracle XE a MySQL s co nejjednodušší podporou Stored procedure abych nemusel na každou funkci psát wrapper
- podpora Ajax, JS (rich klient), alternativně Google Gears nebo podobné offline řešení
- autentifikační řešení (uživatelé buď v DB nebo LDAP)
- podpora multijazyčnosti
- snadná interoperatibilita s C++


Děkuji předem za vaše názory a jsem s pozdravem.

FLup.
flup
Kolemjdoucí

Odeslat příspěvekod Vebloud 18. 4. 2009 17:16

Tak tohle bych viděl na Javu nebo C#.

Sice mi není jasné proč se dělí databáze, protože to do budoucna přinese nechutné množství problémů. Když nejsou money na full Oracle, tak bych se na Oracle vyprdnul úplně. A buďto použil PostgreSQL poněkud bližší Oracu než MySQL, nebo třeba IBM DB2 Express-C tam je limit na server pouze na 2 dvoujádrové procesory a 4GB paměti. Velikost databáze je neomezená. A je to taky zadarmo.

Proč Javu nebo C#? Protože tohle chce robustní řešení a bude to těžce narážet na limity scriptovacích jazyků jako je PHP a spol. Co se frameworku týče, tak zajímavý by mohl být GWT, kde je sakra dobrá podpora pro AJAX nebo Spring, Struts nebo v podstatě cokoliv jiného, tam už zaleží na tom co umí vývojář/respektive firma.
Žít a nechat žít, ty máš svůj názor, já mám svůj názor, já ti nebudu nutit svůj, nemusím souhlasit s tvým, ale udělám vše, abys ho mohl svobodně vyjádřit.
Vebloud
Ex-moderátor
Uživatelský avatar

Odeslat příspěvekod flup 19. 4. 2009 08:45

Vebloud píše:# Sice mi není jasné proč se dělí databáze, protože to do budoucna přinese nechutné množství problémů.

Já to tak dramaticky nevidím, jelikož každá db uchovává naprosto odlišné data a spolu nemají zhola nic. A co se týče Oraclu, tak pro odvětví pro které je určen tento projekt je to naprostý standard a dalo by se říci i povinnost. Čili do budoucna (až budou peníze na full Oracle) obě DB budou běžet pouze na něm. :-)
Vebloud píše:# tam už zaleží na tom co umí vývojář/respektive firma

Vývojář je jeden a to jsem pouze já a ten je v problematice web vývoje naprostý Newbe :-(.
Jinak včera jsem pročítal materíály o .NET a J2EE a zatím to spíš vidím na Javu, konkrétně ty Struts.
flup
Kolemjdoucí

Odeslat příspěvekod Vebloud 20. 4. 2009 11:35

Ta data spolu nemají zhola nic, ale jsou potřeba v jedné aplikaci? Tak to se mi nezdá...

Tak jestli jdeš do takovéhle aplikace jako nováček, tak lituju zákazníka i tebe, protože jestli nemáš hoooooodně dobrý rozpočet, tak na tom hrubě proděláš, ale zase se ti to vyplatí do budoucna na sakra dobrých zkušenostech, ale možná se to podepíše na reputaci u zákazníka.

Co se peněz na Oracle týče, tak ty musí mít zákazník, ne ty. Takže to by mělo záležet na něm. Ty si jako developer můžeš od Oraclu stáhnout klidně enterprise verzi a legálně na ní dělat.

Struts určitě nejsou špatná volba, ale jestli je Oracle standard a časem to na něm bude všechno, tak bych se podíval i na Oracle JDeveloper a v něm obsažené Oracle componenty na bussines logiku. Případně pak možná i Oracle APEX (ale tam nevím jak moc je výsledek upravitelný podle vlastních přání)
Žít a nechat žít, ty máš svůj názor, já mám svůj názor, já ti nebudu nutit svůj, nemusím souhlasit s tvým, ale udělám vše, abys ho mohl svobodně vyjádřit.
Vebloud
Ex-moderátor
Uživatelský avatar

Odeslat příspěvekod flup 20. 4. 2009 15:14

Vebloud píše:#Tak jestli jdeš do takovéhle aplikace jako nováček, tak lituju zákazníka i tebe

Žádný zákazník není. Dělám to ve svém volném čase a pro sebe. Nasbírané zkušenosti denně uplatňuji ve svém regulérním zaměstnání, které má samozřejmě s tím produktem hooodně společnýho. Programování už mě teda neživí, to dělám jen jako koníčka.

Jinak primárně to vyvíjím na enterprise oracle 11g, DB je komplet modelována v Oracle designer. Jinak zkušenosti s Ora, C, C++, Pro*C, OCI, atd. a vůbec s vývojem serverovýach app. cca 12 let. Jedině xichty jsem ještě nepsal, proto jsem v tomhle ohledu nováček :-)
flup
Kolemjdoucí

Odeslat příspěvekod Vykook 20. 4. 2009 15:38

Rozhodně Java, konkrétně Spring + Wicket. Jo, taky bych se vybodnul na MySQL a šel rovnou do Postgres.
"Stará, kup husu, dostal jsem nápad!" Jakub Arbes
Vykook
Junior
Uživatelský avatar

Odeslat příspěvekod Vebloud 20. 4. 2009 18:18

Jo táááák, tak v tom případě žádný nováček, ale naopak velice zkušený člověk. Jestli jsou zkušenosti s Oraclem a obecně většími databázemi, tak bych se MySQL vyhnul, protože jinak to bude utrpení. MySQL totiž neumí spoustu věcí, na které budete ze zkušeností zvyklý.

BTW: Oracle koupil Sun a sním i MySQL
Žít a nechat žít, ty máš svůj názor, já mám svůj názor, já ti nebudu nutit svůj, nemusím souhlasit s tvým, ale udělám vše, abys ho mohl svobodně vyjádřit.
Vebloud
Ex-moderátor
Uživatelský avatar

Odeslat příspěvekod flup 20. 4. 2009 19:28

Upřímně řečeno, MySQL je tam z jednoduchýho důvodu - hotový datový model vč. indexů vygenerovaný Ora Designer jsem natáhnul do fabForce DB Designer a bez jediný úpravy vygeneroval v MySQL. V C++ zdrojáku jsem pak přepnul Define switch v OTL z Ora na MySQL, nalinkoval správnou knihovnu a bylo vymalováno - samozřejmě tam kde jsou jen selecty, updaty, ... - jak jsem psal výše tak většinu mám zapouzdřeno v PLSQL. Jinak s touto DB na admin, tunning, atd. úrovni nemám žádnou zkušenost. Nicméně kolegové v bejvalý práci co se zabývali vývojem web aplikací si z Mysql chrochtali, že prej rychlá databáze na uložení flat dat, samozřejmě nebyli až tak experience v DB oblasti, takže to co MySQL nabízí jim bohatě k jejich účelu stačilo. V podstatě to používali pouze jako persistentní úložiště, žádný super-tuper komplikovaný dotazy tam nedělali, přesně takhle to chci použít já.
Btw, je nějakej dobrej Postresql designer kterej zvládne zreverzovat Ora schéma licencovanej jako free for non-comercial use?
Jo, ohledně toho Oraclu - ten taky zkupuje kde co. Ten muj c++ program jako In-Mem DB používá Berkeley DB, dnes už je to taky pod Oraclem. Docela se děsím toho, aby to nezpoplatnili. A Timesten je už taky jejich....
flup
Kolemjdoucí

Odeslat příspěvekod Vykook 20. 4. 2009 19:43

Osobně s migrací dat z databáze do databáze zkušenosti nemám a ani ohledně ostatních DB věcí nejsem zrovna guru. Nic to ale nemění na tom, že bys toho kvůli své momentální lenosti, mohl v budoucnu litovat.

http://postgresql2.openmirrors.org/docs ... cs-43.html
"Stará, kup husu, dostal jsem nápad!" Jakub Arbes
Vykook
Junior
Uživatelský avatar

Odeslat příspěvekod flup 22. 4. 2009 10:02

Vykook píše:# konkrétně Spring + Wicket

Spring už je moc velkej kanón, ale Wicket se mi líbí a to tak že hodně. Takže nejspíš půjdu touto cestou. Díky pane za dobrej tip.
flup
Kolemjdoucí

Odeslat příspěvekod Vykook 22. 4. 2009 10:10

Nemusis prece ze Springu pouzivat vsechno, nehlede na to ze pokud to beres tak trochu vyukove, tak Spring je v podstate nepsanej standard. Jinak je taky spatne nevypada Google Guice.
"Stará, kup husu, dostal jsem nápad!" Jakub Arbes
Vykook
Junior
Uživatelský avatar

Odeslat příspěvekod Vebloud 22. 4. 2009 13:16

MySQL je přesně to co říkáš. Dobré jako perzistentní úložiště na nepříliš struktorovaná data. Jakmile začneš chtít triggery, procedury nebo nějáké checky (ty neumí vůbec) tak narazíš na spoustu problémů a omezení.
Žít a nechat žít, ty máš svůj názor, já mám svůj názor, já ti nebudu nutit svůj, nemusím souhlasit s tvým, ale udělám vše, abys ho mohl svobodně vyjádřit.
Vebloud
Ex-moderátor
Uživatelský avatar

Odeslat příspěvekod gandor 22. 4. 2009 14:14

omyl triggery uz myslql zvlada (aspon nova verzia) neviem ako je to z pokrocilejsimi funkciami (s tymi triggermi - nie moc davno tusim bolo implementovane aby vedeli volat stored procedury) ale su tam...
gandor
Mírně pokročilý

Odeslat příspěvekod wizpal 22. 4. 2009 18:14

gandor píše:omyl triggery uz myslql zvlada (aspon nova verzia) neviem ako je to z pokrocilejsimi funkciami (s tymi triggermi - nie moc davno tusim bolo implementovane aby vedeli volat stored procedury) ale su tam...

Vidíš snad někde větu: "triggery MySQL neumí" nebo tak nějak? Já teda ne, tak nevim co meleš. Jo a MySQL umí triggery od verze 5.0.2 (což by si zjistil během pár sekund a nemusel tu pak třepat nesmysly), což je už poměrně dlouho

Vyvarujte se osobních útoků, všichni Kejki3
Keep It Simple, Stupid!
wizpal
Junior
Uživatelský avatar

Odeslat příspěvekod gandor 22. 4. 2009 22:58

Wizpal: Ty si nejaky mudri vsak? Ked niekoho zhadzujes skus pouzit aspon ten tvoj oblubeny google....
1,
(s tymi triggermi - nie moc davno tusim bolo implementovane aby vedeli volat stored procedury)
neznamena, ze mysql nepozna triggery, ale ze triggery nevedia stored procedury
2, Ano mas pravdu ze to nieje zrovna "nie moc davno" ale do verzie 5.0.17, mysql NEVEDEL volat z triggera stored proceduru
Before MySQL 5.0.17, CALL statements cannot be prepared. This true both for server-side prepared statements and for SQL prepared statements.

http://dev.mysql.com/doc/refman/5.0/en/stored-program-restrictions.html

Takze ano priznavam ze som netrafil uplne presne (verzia 5.0.17 je tu od 14.12.2005), (verzia 5.0.2 je tu od 15.11.2004 coz ak pocitam spravne je 13 mesiacov neskor - dost dlho na to aby sme kvoli tomuto pred casom museli migrovat databazu na novsiu verziu)...

Tak sa prosim ta zdrz tych tvojich nafukanych komentov a upresnuj slusne...

Nenechte hněv cloumat svým majestátem a diskutujte i s Wizpalem slušně. Kejki3
gandor
Mírně pokročilý

Další stránka

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků