Integratie van externe content of applicaties 23 mei 2007
Posted by futtta in Usability/ accessabiltiy, Web development, ajax, xhtml/ css.trackback
Hoe integreer je externe content (of applicaties) het beste? Ik ga hier de komende tijd even induiken met wat eenvoudige demo’s en lijstjes met pro’s en con’s, maar ik zie alvast volgende mogelijkheden:
Verplaatst naar http://blog.futtta.be/2007/05/23/integratie-van-externe-content/
Ik heb ooit ook voor hetzelfde probleem gestaan. Aangezien achterliggend op een andere site aangelogd moest worden met een gebruikersnaam die afhankelijk was van de ingelogde gebruiker in het eerste domein, heb ik hiervoor een heuse proxy moeten schrijven (die gebruik maakt van Jakarta commons HttpClient). De complexiteit hiervan stijgt wel; alle links dienen vertaald te worden naar het eerste domein. Wel is er dan de mogelijkheid om de content van de tweede site te wijzigen, zodat deze in de stijl van de eerste site past.
Tegenwoordig zijn zulke proxies te vinden; bijvoorbeeld portlet bridge (http://www.portletbridge.org/) is een heel goed werkend (open source) product, dat ik ook gebruik (draait wel enkel in een portlet container).
In java heb je Sitemesh, waarmee je stukken uit externe html pagina’s kan halen en zelfs wat aanpassen.
Ik ben eerder voorstander van een server-side oplossing, omdat je daarmee tragere externe content kunt cachen (bvb eenmaal ophalen en het volgende uur gewoon doorsturen). Voor Brussels Airport hebben we dat bijvoorbeeld gedaan met het Connections formulier met <c:import url=”…”> en dan daarrond een oscache tag van een uur. Hierdoor is usability en searchability ook beter omdat alles mooi als 1 html pagina naar de gebruiker gestuurd wordt. Wanneer je met iframes zou werken, wordt alles weer wat complexer (bvb links openen in het frame ipv in de pagina).
Met Ajax kun je wel iets doen, maar dan heb je nog steeds geen searchability aangezien search engines (nog) geen javascript lezen en blokkeer je users zonder javascript (but who cares).
server-side binnenhalen en verwerken heeft zeker grote voordelen, maar is ook geen silver bullet.
aggregatie -en daar kunnen ze hier op het werk van meespreken- kan de boel immers flink vertragen. netwerkproblemen en remote server errors kunnen roet in het eten gooien (ge kunt er maw dus maar best voor zorgen dat uw code met hangende connectie en server errors overweg kan).
en als uw externe content meer moet ‘ververst’ worden dan de rest (cfr. arrival/departure op brussels airport) dan is server side eigenlijk geen optie?