472,779 Members | 2,518 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,779 software developers and data experts.

Database->python->Xml->Xslt->Client

Hi
I am devlopeing a data centric intranetsite with data in mysql
database
I would like your opinion on this architecture
Data will be fetched from database by python & converted into xml
The XSLT will be stored on the client cache.So only the xml is
transferred to client & the xslt transforms it into xhtml & displays
it.
Will this improve performance or have i gone nuts??
Jul 18 '05 #1
5 1746
Hi !

It is an architecture "en vogue" ; but AMHA, XML is verbose.

@-salutations
--
Michel Claveau
Jul 18 '05 #2
Michel Claveau - abstraction méta-galactique non triviale en fuite
perpétuelle. <un************@msupprimerlepoint.claveauPOINTco m> wrote:
It is an architecture "en vogue" ; but AMHA, XML is verbose.


Not any more verbose, typically, than HTML doing the presentation of
whatever data the XML is encoding, which I take is the alternative John
(the OP) is comparing again (he didn't actually explain the alternative
architectures he's considering, but that one would appear to be the
default...). If the XML is a high semantic level it can end up quite a
bit more compact than the HTML needed for nice presentation, even when
you factor out a lot of CSS from the latter to rely on the CSS getting
cached.

Fashion apart, I do think the proposed architecture may improve
performance compared to having the server prepare and send all HTML. It
spreads the computational load (if the XML the server is sending is
pretty close to the database's content, at least) and may even reduce
the bandwidth (often not a key bottleneck in an intranet, particularly
these days with gigabit ethernet finally becoming cheap... but sometimes
VPNs and the like do extend an intranet over links where bandwidth CAN
be a problem!-).

Having the server supply raw data and spreading out even more work to
the clients would be more of the same, but would require way fatter
clients, and that carries its own set of issues. What the OP described
can be done easily by decent browsers, today, with no need for fat
clients and all of their many issues.
Alex
Jul 18 '05 #3
Hi !

HTML also is verbose...
Jul 18 '05 #4
john wrote:
Will this improve performance or have i gone nuts??


Since you have more computationally intensive steps
(XSLT is no walk in the park) to do I don't think that
it will directly improve the performance at all.

What gets improved is the modularity and generality
of your solution. In your system you can now freely
interchange the backends and frontends. You program
will work with any other backend that produces XML
and any other display that can transform from XML.
This independence can be great.

On the other hand I have been seriously bitten
by XSLT. Writing complicated and reusable stylesheets
that remain readable seems to be impossible.
And it is difficult to foresee how complicated
the stylesheets need to be.

The weakest link in your pipeline is XSLT.

Istvan.





Jul 18 '05 #5
Michel Claveau - abstraction méta-galactique non trivial e en fuite perpétuelle. <un************@msupprimerlepoint.claveauPOINTco m> wrote in message news:<ci**********@news-reader4.wanadoo.fr>...
Hi !

HTML also is verbose...


Thanks for that informed commentary on the matter. I'm sure the
verbosity of HTML and XML with respect to your favourite binary wire
format (and presumably your favourite client software, too, given that
we're looking at a browser solution) really passed the original
contributor by.

Back to the suggested architecture: if you're purely worried about
network bandwidth, then provided the XML is much smaller than any
presented page, I suppose you could use client-side XSL in order to
reduce the bandwidth requirement. But if any reduced bandwidth
requirement is just one way of getting better performance, I'm not
completely convinced that you wouldn't be better served with something
like libxslt on the server producing the final output; in my
experience, its performance is pretty impressive on modest hardware in
comparison to other such processors (on much bigger hardware).
Moreover, by retaining XSL processing on the server, you would avoid
potentially controversial browser requirements - it's bad enough
working round browser issues with supposedly "simple" stuff like XHTML
and CSS without bringing XSL into the equation.

Paul
Jul 18 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

8
by: Jean | last post by:
Hi. I am new to Python, but very eager to learn. I've browsed many postings and found conflicting opinions on the best backend and development setup. In fact, I am more confused now that when I...
11
by: DrUg13 | last post by:
In java, this seems so easy. You need a new object Object test = new Object() gives me exactly what I want. could someone please help me understand the different ways to do the same thing in...
0
by: Rina0 | last post by:
Cybersecurity engineering is a specialized field that focuses on the design, development, and implementation of systems, processes, and technologies that protect against cyber threats and...
3
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 2 August 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM) The start time is equivalent to 19:00 (7PM) in Central...
0
by: erikbower65 | last post by:
Using CodiumAI's pr-agent is simple and powerful. Follow these steps: 1. Install CodiumAI CLI: Ensure Node.js is installed, then run 'npm install -g codiumai' in the terminal. 2. Connect to...
0
by: erikbower65 | last post by:
Here's a concise step-by-step guide for manually installing IntelliJ IDEA: 1. Download: Visit the official JetBrains website and download the IntelliJ IDEA Community or Ultimate edition based on...
0
by: Taofi | last post by:
I try to insert a new record but the error message says the number of query names and destination fields are not the same This are my field names ID, Budgeted, Actual, Status and Differences ...
14
DJRhino1175
by: DJRhino1175 | last post by:
When I run this code I get an error, its Run-time error# 424 Object required...This is my first attempt at doing something like this. I test the entire code and it worked until I added this - If...
0
by: Rina0 | last post by:
I am looking for a Python code to find the longest common subsequence of two strings. I found this blog post that describes the length of longest common subsequence problem and provides a solution in...
0
by: lllomh | last post by:
Define the method first this.state = { buttonBackgroundColor: 'green', isBlinking: false, // A new status is added to identify whether the button is blinking or not } autoStart=()=>{
0
by: lllomh | last post by:
How does React native implement an English player?

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.