Toon posts:

3-tier web based applicaties bouwen onder Linux ??

Pagina: 1
Acties:
  • 102 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Fellow WebDev'ers

Ik zit al een tijdje met een probleem.

Voor mijn beroep ontwikkel ik met een groep anderen een grote 3-tier web based applicatie. Deze applicatie draait op vrijwel allemaal Windows technologie (Win NT4, IIs, ASP, COM components (VB/VC++) draaiende binnen Microsoft Transaction Server, met een Oracle DB erachter.

Nou ben ik zelf nogal overtuigd van het voordeel van 3-tier applicaties. Voor de mensen die niet weten wat dat is, even een korte uitleg.

Bij 3-tier applicaties is er een scheiding tussen 3 lagen:
a) presentatie laag: the user interface
b) (business) logic laag: verwerking van gegevens
c) data laag: opslaan en ophalen van gegevens

Het groot aantal voordelen, maar de grootste zijn:
- onhankelijkheid tussen presentatie en verwerking; als je een nieuwe interface wil, hoeft de gegevensverwerking niet aangepast te worden, en andersom.
- de architectuur van je applicatie kan aangepast worden zonder dat je interface aangepast wordt, dus je gebruikers merken er niets van.
- de schaalbaarheid van je applicatie kan enorm omhoog gaan als je de juiste scheiding aanhoudt.

Anyway, het mooie van een 3-tier applicatie ontwikkelen op een MS platform is dat zij alle benodigde losse onderdelen leveren die je daarvoor nodig hebt, en dat die goed te intergreren zijn. Onder Win2000 wordt het allemaal nog beter, want behalve de database en ontwikkeltools zit alles al in het OS ingebouwd.

Het nadeel van MS is dat het M$ is; alles bij elkaar is best kostbaar, de kwaliteit is soms bagger, en de support is niet echt super.

Nou vroeg ik me af hoe ik dit ook onder Linux zou kunnen doen. Ik ben me bewust dat er een aantal Java based systemen zijn, maar dit zijn commerciele tools die schreeuwend duur zijn. Dus ik zat meer te denken aan:
- Linux
- PHP
- PostgreSQL of MySQL
- middleware?????

Vooral welke middleware te gebruiken is een onbeantwoorde vraag. Waar onder het Windows platform COM een onderdeel van het OS is, is een CORBA ORB of EJB middleware systeem meer een soort add-on.

Nou heb ik weleens gekeken naar Zope http://www.zope.org en heb ik weleens gehoord van Enhydra (URL??). maar ik ken geen mensen met ervaring daarmee en kan daarom moeilijk inschatten of het de moeite waard is om dat aan te leren.

Lang verhaal he? :) Maar goed, laat me horen wat jullie gedachten en ervaringen zijn.

Groetsels,

MrX

Verwijderd

Dat vraag ik me ook al een tijdje af :)

Ik heb er ook wel eens een thread over gestart maar de meesten hier weten niet echt raad met dingen als transaction server en message queues.
Logisch misschien want het de meesten hier lijken een Linux server te hebben en het is niet bepaald makkelijk om dat soort services daarop te krijgen, zo kreeg ik de indruk. Het zit er inderdaad niet standaard in.

Iets als CORBA mag wel een open standaard zijn; de verschillende implementaties zijn niet compatibel en het is veel gecompliceerder dan COM/MTS. Zegt men. Dus dan ben je even slecht/goed af op MS spul. (Om over de kosten van een CORBA imlementatie nog maar te zwijgen, maar misschien is dat tegenwoordig anders)

Mijn eigen, zeer persoonlijke, conclusie was dat je voor de toepassingen die ik maak (multi-tier based websites) het beste af bent op het MS platform.

Dit soort threads eindigd altijd in NT-Linux flamewars dus ik formuleer het maar wat voorzichtig.

Maar eigenlijk vind ik Linux dus minder geschikt om grote businessapps mee te maken. Met mn COM componentje op een standaard Windows 2000 installatie heb ik binnen 5 minuten een transactioneel, queued aangeroepen schaalbaar componentje gemaakt..
kan dat ook met een Linux doos?

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 23:30
Woei :)
Met de search kom je leuke dingen, ook al is het nu 2 jaar later :).

Maar wel ff interessant om hier om in te gaan. In de tijd van dit topic was dit vast nog niet zo actueel als nu, webscripting is flink populairder geworden.

Volgens mij is het best wel goed mogelijk om tegenwoordig multi-tiered applicaties te bouwen, zeker nu XML een beetje bekend wordt. Als je OO werkt kun je simpel classes schrijven die al je gegevens verzamelen, een class die je opgehaalde gegevens berekent en er dingen mee doet en vervolgens in xml naar de presentatieobjecten stuurt die dit kan transformeren naar xhtml, xhdml, wml, etc. :)

Van de topicstarter begrijp ik niet helemaal wat hij met middleware bedoelt :{

  • B-Man
  • Registratie: Februari 2000
  • Niet online
Op zaterdag 20 april 2002 16:23 schreef ddc het volgende:
Woei :)
Met de search kom je leuke dingen, ook al is het nu 2 jaar later :).

Maar wel ff interessant om hier om in te gaan. In de tijd van dit topic was dit vast nog niet zo actueel als nu, webscripting is flink populairder geworden.

Volgens mij is het best wel goed mogelijk om tegenwoordig multi-tiered applicaties te bouwen, zeker nu XML een beetje bekend wordt. Als je OO werkt kun je simpel classes schrijven die al je gegevens verzamelen, een class die je opgehaalde gegevens berekent en er dingen mee doet en vervolgens in xml naar de presentatieobjecten stuurt die dit kan transformeren naar xhtml, xhdml, wml, etc. :)

Van de topicstarter begrijp ik niet helemaal wat hij met middleware bedoelt :{
Met middleware doelt hij op business logic, m.a.w.: gegevens verwerking. Je front-end (user interface) vraagt slechts gegevens op bij je middleware, en verzend ze naar je middleware. Wat ermee gebeurt in die middleware is voor je front-end niet van belang.

Op deze manier kan je gemakkelijk een nieuwe GUI bouwen, mits je middleware toegankelijk is.

Wat betreft mogelijkheden om middleware op linux te draaien: hier zijn inmiddels meerdere solide, zelfs gratis, oplossingen voor.

Zie voor een schaalbare Java/EJB (onder andere) server bijvoorbeeld JBoss. Daarnaast is het natuurlijk zo dat vrijwel iedere zichzelf respecterende apllicatie server producent ook een linux versie heeft. Zie Oracle Application Server en IBM's WebSphere.

  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
Waarom geen Java? Java is gratis hoor ;) Met J2EE (Java 2 Enterprise Edition) kun je gemakkelijk multi-tier applicaties maken :) Kijk er maar eens naar. J2EE tools zijn over het algemeen wel duur, maar als je weet hoe het werkt is in principe Notepad voldoende :) Meer informatie is te vinden op www.javasoft.com

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Op zaterdag 20 april 2002 19:31 schreef MisterData het volgende:
Waarom geen Java? Java is gratis hoor ;) Met J2EE (Java 2 Enterprise Edition) kun je gemakkelijk multi-tier applicaties maken :) Kijk er maar eens naar. J2EE tools zijn over het algemeen wel duur, maar als je weet hoe het werkt is in principe Notepad voldoende :) Meer informatie is te vinden op www.javasoft.com
Besef wel dat dit topic van Juli 2000 is ... bijna 2 jaar geleden dus (vond het al vreemd dat MrX een topic startte). De ontwikkelingen gaan hard en Java is in 2 jaar veel verbeterd. In die tijd was J2EE denk ik nog niet zo ingeburgerd/bekend als nu.

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Binnenkort komt de grote veldslag J2EE versus .NET.

De uitkomst? Ik verwacht dat er voor beiden een plek op de markt is. Beiden hebben zo hun voordelen, dus hoe ga ik hier als beginnend developer mee om? Ik zorg dat ik met beiden kan werken. Kun je zelfs het beste van beide werelden pakken (met behulp van SOAP bijvoorbeeld, wel oppassen voor die MS specifieke rotgeintjes die erin gegooid zijn).

Hier bij mijn afstuderen hebben Shatter en ik het mooi voor elkaar. We draaien IBM Websphere tussen IIS en SQL2K. En om eerlijk te zijn, het werkt perfect.

Verwijderd

Data-tier: stored procedures in Postgresql / Oracle.
Middle-tier: java beans / servlets / deel perl/php/python
Gui-tier: php/perl/python

Je mist: transaction control ala COM+/MTS. Dit kun je oplossen met bv Tuxedo dacht ik (ik weet niet of daar een linux versie van is, dacht het wel)

Linux ontbeert het aan een binary object model, althans naar het model van COM. Het is niet native en daardoor is re-use van code moeilijker. Java biedt wel een deel van de oplossing, maar de tiers zijn nog erg gescheiden en bij bv de concurrent: ASP + VBScript - COM Objects (VB/C++/Delphi) - SQLServer stored procs, is de execution chain vrij eenduidig en verloopt die volgens banen die de applicatie onderdelen meer tot 1 geheel maakt, temeer daar je de complete flow van gui tot db tier en terug in 1 transaction kunt laten draaien zonder veel omwegen.

Ik denk dat Mono + een asp.net variant voor Linux dit tij wel gaat keren, maar tot die tijd is het behelpen.

De mentaliteit tenslotte op Linux is er ook niet naar om in components te denken (wat een basis is van n-tier development). Iets wat IMHO wel moet veranderen willen ze de boot niet missen wanneer .NET werkelijk loskomt van de grond (wat ik over een maand of 3 a 4 verwacht) wanneer er echt veel components en tools op de markt komen die de developer erg veel werk uit handen nemen: de Linux developer kan daar niet tegenop zonder component-based development.

  • tomato
  • Registratie: November 1999
  • Niet online
Otis:
Data-tier: stored procedures in Postgresql / Oracle.
Middle-tier: java beans / servlets / deel perl/php/python
Gui-tier: php/perl/python
In een multitier applicatie zou ik PHP eigenlijk liever niet zien, zeker niet in de middle-tier.
Perl en Python zijn daar wel op hun plaats (beiden niet in CGI variant) en Java ook. Ook voor de GUI-tier zijn Perl en Python erg geschikt. Hoewel Sun ons daar graag JSP zal laten gebruiken mogen ze het wat mij betreft helemaal opnieuw proberen.
[components]
Heel goed gezien. De Linux dev community denkt nog niet goed in componenten.
Velen denken nog uitstekend af te kunnen met de vele tooltjes en pipes (wat in feite de voorlopers van componenten en interfaces zijn :D), maar met echt component-based development kom je verder (niet alleen in een multitier omgeving).

Toch moet ik wel zeggen dat we de laatste tijd steeds meer grote stappen in de Linux dev wereld zien richting component-based development, dus ik heb het idee dat het al aan het veranderen is (maar helaas nog niet op alle gebieden).
Pagina: 1