<?xml version="1.0"?>
<!DOCTYPE webpage PUBLIC "-//Norman Walsh//DTD Website V2.1b1//EN" "../../../dtd/website.dtd" [
<!ENTITY application SYSTEM "applications.xml" NDATA XML>
<!ENTITY base SYSTEM "bases.xml" NDATA XML>
<!ENTITY entrepot SYSTEM "entrepots.xml" NDATA XML>
<!ENTITY index SYSTEM "../index.xml" NDATA XML>
<!ENTITY serveur SYSTEM "serveur.xml" NDATA XML>
]>
<webpage id="introduction_schema">
	<head>
		<title>Architecture de SDX-2</title>
		<titleabbrev>Architecture</titleabbrev>
		
		<author>
			<firstname>Frédéric</firstname>
			<surname> Glorieux</surname>
			<affiliation>
				<orgname>AJLSM</orgname>
			</affiliation>
		</author>
		<revhistory>
			<revision>
				<revnumber>1.0</revnumber>
				<date>2003-05-13</date>
			</revision>
		</revhistory>
	</head>
	<para>Sous licence <ulink url="http://www.fsf.org/copyleft/gpl.html">GPL</ulink>, SDX n'agrége que des composants logiciels libres. Avant de développer une application SDX-2 (et même de faire migrer une application de la version 1 à la version 2), on gagne à s'interroger sur son architecture, pour ce qu'elle apporte à  une application documentaire.</para>
	<section>
		<title>SDX-1</title>
		<para> SDX-1 répondait à son premier objectif : la diffusion et la recherche d'une collection de documents XML. Pour cet objectif, plusieurs composants étaient installés :</para>
		<orderedlist>
			<listitem>
				<para>Un système de stockage (un SGBD relationnel, tel que <ulink url="http://www.mysql.com">MySQL</ulink>, <ulink url="http://www.borland.com/interbase/">InterBase</ulink>, <ulink url="http://www.oracle.com/">Oracle</ulink>, <ulink url="http://hsqldb.sourceforge.net/">Hypersonic SQL</ulink>) ;</para>
			</listitem>
			<listitem>
				<para>Un serveur HTTP (celui de <ulink url="http://jakarta.apache.org/tomcat">Tomcat</ulink>, <ulink url="http://httpd.apache.org/">Apache</ulink> ou autre) ;</para>
			</listitem>
			<listitem>
				<para>Un moteur de servlets Java (<ulink url="http://jakarta.apache.org/tomcat">Tomcat</ulink> ou autre) ;</para>
			</listitem>
			<listitem>
				<para>Un processeur XSLT pour transformer l'XML généré en HTML  (<ulink url="http://saxon.sourceforge.net">Saxon</ulink>) ;</para>
			</listitem>
			<listitem>
				<para>Un moteur de recherche (<ulink url="http://jakarta.apache.org/lucene">Lucene</ulink>) ;</para>
			</listitem>
			<listitem>
				<para>Et surtout, un générateur de pages XML (<ulink url="http://xml.apache.org/cocoon1/">Cocoon-1</ulink>).</para>
			</listitem>
		</orderedlist>
		<para>Une application type se présentait en quatre volets&#xA0;: présentation des documents, navigation hiérarchique, recherche simple et avancée, et administration de la collection de documents. Le modèle restait celui d'une application Web conventionnelle : une interface adossée à un système d'informations.</para>
	</section>
	<section>
		<title>SDX-2</title>
		<para>A l'usage, Cocoon et le langage XSP  se sont avérés fort commodes pour définir les pages serveur qui constituent une <olink targetdocent="application">application</olink>. Entré dans sa version 2 (compatible avec une exploitation industrielle), des livres sortent, des grands comptes s'y intéressent. Comme d'<ulink url="http://xml.apache.org/cocoon/link/projects.html">autres</ulink>, mais souvent avant eux,  SDX-2 s'est construit comme une extension directe de la servlet Cocoon (le <olink targetdocent="serveur">serveur SDX</olink>). Ainsi, développer pour SDX est l'assurance de perfectionner des compétences standards (<ulink url="http://www.w3.org/XML">XML</ulink>, <ulink url="http://www.w3.org/TR/xslt">XSLT</ulink>, <ulink url="http://xml.apache.org/cocoon/userdocs/xsp/logicsheet.html">XSP</ulink>), vouées à se diffuser.</para>
		<para>Le moteur de recherche Lucene est théoriquement remplaçable (à terme), mais peu de composants libres pourraient concrètement le remplacer. La définition d'une <olink targetdocent="base">base de documents</olink> en tire tout le parti. </para><para>Un autre processeur XSLT peut être choisi sans risque d'incompatibilité, à la condition qu'il soit en Java (ex : <ulink url="http://xml.apache.org/xalan-j">Xalan</ulink>). Comme Cocoon, SDX-2 peut être déployé sous tout autre serveur implantant l'architecture de servlets proposée par <ulink url="http://java.sun.com/products/servlet">Sun</ulink>. Un moteur de servlets est constitué pour être compatible avec la plupart des serveurs HTTP. Enfin, c'était un premier objectif de SDX-2, les sources de données peuvent être multiples, conduisant au concept générique d'<olink targetdocent="entrepot">entrepôt</olink> (sans imposer une base de données extérieures au serveur par exemple).</para>
		
		
		<para>Cette souplesse apporte beaucoup à une application documentaire. Il n'est plus nécessaire de la penser comme l'exploitation d'une collection de documents (ou même une collection de collections). Au lieu d'habiller une interface, on peut désormais partir d'un projet éditorial et considérer un public, une maquette, une ligne. L'agrégation des documents nécessaires vient ensuite et SDX doit résoudre facilement les questions stériles de la pure technique.</para>
	</section>
	
</webpage>
