2013-06-10 61 views
11

Sto facendo una domanda molto basilare qui.Qual è lo scopo alla base della creazione dei progetti Apache Sling, Felix, Jackrabbit

domanda è

Sto usando Apache Sling, Apache Jackrabbit, Apache Felix nel mio progetto, come detto dal mio istruttore. Sto cercando di capire perché questi software sono sviluppati da Apache. Ho provato molto su internet, ma non ho trovato blog o blog di wordpress, o qualche video di youtube che spieghi tutti questi progetti. Puoi spiegarmi di questi progetti.

Why these projects developed? 

What they do ? 

and more questions like this 

precedenza ho trovato lo stesso dubbio con Apache Hadoop, ma tutto il materiale che ho trovato sulla rete è sufficiente per me per ottenere una sensazione di questo progetto. Questa volta sto lottando con Sling, Felix, Jackrabbit.

Sarò molto grato per voi. Aspettando la tua cortese risposta.

+0

sei riuscito a fare questi tre sistemi insieme? – Shurmajee

+2

Questi progetti sono mantenuti principalmente da Adobe a questo punto per l'utilizzo nel loro prodotto CMS Adobe Experience Manager (AEM). Jackrabbit è l'implementazione di riferimento per JCR che ha qualche adozione al di fuori di Adobe (vedi Modeshape). Felix è un contenitore OSGi che è anche uno standard aperto. Sling è un framework web per JCR creato esplicitamente per il predecessore di AEM e ha un'adozione quasi zero al di fuori di AEM. Se non stai usando AEM, non so perché scegli questo stack. Ci sono opzioni migliori. – jiggy

risposta

20

La combinazione di Apache Jackrabbit, Apache Sling e Apache Felix consente di creare applicazioni Web.

Apache Jackrabbit è l'implementazione di riferimento dello JCR API. Lo JCR API è per gestire i repository di contenuti; gestire, ad esempio, i contenuti web. Un repository di contenuti è un mix tra il file system e un database.

L'API JCR è stata creata appositamente per gestire i contenuti web. Perché utilizzare l'API JCR e perché non utilizzare un'API di database relazionale? Gli URL sono gerarchici, come in un file system. I database relazionali non supportano facilmente l'accesso gerarchico. Perché non utilizzare un'API del file system? Poiché JCR supporta transazioni, versioning e molte altre funzionalità che le API del file system non supportano.

Apache Sling è un framework Web basato sull'API JCR e che sfrutta le funzionalità fornite dall'API JCR (15 Minute introduction).

Apache Felix è un contenitore OSGi. Permette di avviare, fermare e sostituire i componenti di un'applicazione Web (file jar, in un certo senso) senza interruzioni mentre il server Web è in esecuzione. Ciò significa che consente di modificare l'applicazione senza dover riavviare il server.

+1

Ho avuto un'idea di JackRabbit e Felix. Ma la dichiarazione che ha dato a Sling mi è totalmente rimbalzata. Puoi spiegarmi di nuovo su Sling? – devsda

+0

Scusa, personalmente non so molto di Sling. Tutto ciò che so è ciò che puoi trovare anche sul sito web. –

+0

A proposito, il nome ufficiale è Jackrabbit (minuscolo r). Mi spiace essere pignolo :-) –

12

dell'imbracatura in termini molto semplici potrebbe essere descritto come un'API riposo per JCR. puoi utilizzare le richieste http per gestire il contenuto all'interno del repository.

Inoltre, Sling fornisce un meccanismo per rendere quel contenuto in modi diversi per il consumo del web. è possibile utilizzare script (JSP per esempio) e il codice java (servlet, pojos, ecc.) nel contenitore Felix per elaborare le richieste e consegnare una richiesta.

Quando viene effettuata una richiesta per un nodo particolare, Sling cerca una proprietà denominata sling:resourceType, questa è una chiave di ricerca per il rendering degli script. Quindi lo script appropriato viene eseguito utilizzando il nodo come input.

È possibile scrivere diversi tipi di rendering e quindi utilizzarlo per visualizzare i contenuti in modi diversi.

Ad esempio, è possibile scrivere due script full.json.jsp e short.json.jsp e poi li usa per rendere lo stesso nodo in due modi diversi:

/content/app/node.full.json 

O

/content/app/node.short.json. 

Sling corrisponde sostanzialmente gettoni nell'URL della richiesta di selezionare uno script appropriato.

Hanno davvero una bella cheat sheet che spiega come la risoluzione richiesta e il rendering lavori

è un po 'più complessa di questa, dal momento che tutto è organizzato in termini di risorse e componenti. si desidera controllare their site per ulteriori informazioni

+0

A avere una rapida idea di cosa puoi fare con Sling, mi è piaciuto il loro rapido tutorial: "Scopri Sling in 15 minuti" https://sling.apache.org/documentation/getting-started/discover-sling-in-15-minutes .html –

1

Ho avuto gli stessi dubbi. La risposta migliore che ho potuto trovare è nella pagina ufficiale Sling (https://sling.apache.org/)


(Che cos'è) Apache Sling, in un centinaio di parole:

Apache Sling è un framework web che utilizza un Java Content Repository, come Apache Jackrabbit, per archiviare e gestire i contenuti.

Le applicazioni di imbracatura utilizzano script o servlet Java, selezionati in base a semplici convenzioni dei nomi, per elaborare le richieste HTTP in modo RESTful.

Il framework e la console Apache Felix OSGi incorporati forniscono un ambiente di runtime dinamico, in cui i bundle di codice e contenuto possono essere caricati, scaricati e riconfigurati in fase di runtime.


Quindi, riprendendo esso:

  • Sling è un framework web -> utilizzando Jackrabbit -> base/supportato su JCR API.
  • Si può vedere Apache Felix come un contenitore con il suo manager.

Si noti che Sling è iniziato come progetto interno su Day Software. È il motivo per cui alcuni bundle/librerie sono denominati com.day, ma alla fine sono due nomi per lo stesso.

Inoltre, se si vuole essere chiari su Jackrabbit e JCR API si può visitare la pagina ufficiale del Jackrabbit http://jackrabbit.apache.org/jcr/jackrabbit-architecture.html