2013-06-10 6 views
11

Zadaję tutaj bardzo podstawowe pytanie.Jaki jest cel budowania Procy, Apache, Felix, Jackrabbit

Pytanie jest

Używam Apache Sling, Apache Jackrabbit, Apache Felix w moim projekcie, jak powiedział przez mojego instruktora. Próbuję zrozumieć, dlaczego te oprogramowanie zostało opracowane przez Apache. Wiele próbowałem w Internecie, ale nie znalazłem żadnego bloga ani blogu z wordpress, ani żadnego przydatnego filmu z youtube wyjaśniającego wszystkie te projekty. Czy możesz mi wyjaśnić te projekty?

Why these projects developed? 

What they do ? 

and more questions like this 

Wcześniej znalazłem taką samą wątpliwość z Apache Hadoop, ale cały materiał, który znalazłem na sieci jest wystarczająca dla mnie, aby czuć się z tego projektu. Tym razem walczę z Slingiem, Felixem, Jackrabbitem.

Będę bardzo wdzięczny za ciebie. Czekam na twoją uprzejmą odpowiedź.

+0

Czy uda się wprowadzić te trzy systemy razem? – Shurmajee

+2

Te projekty są w całości obsługiwane przez Adobe w tym momencie do użytku w ich produkcie CMS Adobe Experience Manager (AEM). Jackrabbit to implementacja referencyjna dla JCR, która ma pewne zastosowanie poza Adobe (zobacz Modeshape). Felix to kontener OSGi, który jest również standardem otwartym. Sling to framework sieciowy dla JCR stworzony jawnie dla poprzednika AEM i ma prawie zerową implementację poza AEM. Jeśli nie używasz AEM, nie wiem, dlaczego wybrałbyś ten stos. Są lepsze opcje. – jiggy

Odpowiedz

20

Połączenie Apache Jackrabbit, Apache Sling i Apache Felix pozwala na tworzenie aplikacji internetowych.

Apache Jackrabbit to implementacja referencyjna JCR API. JCR API służy do zarządzania repozytoriami treści; zarządzać na przykład treściami internetowymi. Repozytorium treści to połączenie systemu plików i bazy danych.

Interfejs JCR API jest specjalnie przystosowany do obsługi treści internetowych. Dlaczego warto korzystać z interfejsu API JCR i dlaczego nie korzystać z interfejsu API relacyjnej bazy danych? Adresy URL są hierarchiczne, tak jak w systemie plików. Relacyjne bazy danych nie zapewniają łatwego dostępu hierarchicznego. Dlaczego nie skorzystać z interfejsu API systemu plików? Ponieważ JCR obsługuje transakcje, wersjonowanie i wiele innych funkcji, których nie obsługują interfejsy API systemu plików.

Apache Sling to framework sieciowy oparty na interfejsie API JCR i wykorzystujący funkcje udostępniane przez interfejs API JCR (15 Minute introduction).

Apache Felix to kontener OSGi. Umożliwia płynne uruchamianie, zatrzymywanie i zastępowanie komponentów aplikacji internetowej (w pewnym sensie plików jar) podczas działania serwera WWW. Oznacza to, że pozwala na zmianę aplikacji bez konieczności restartowania serwera.

+1

Mam pewne odczucia dotyczące JackRabbit i Felix. Ale oświadczenie, które dotyczyło Slinga, zostało mi całkowicie odrzucone. Czy możesz mi jeszcze raz wyjaśnić Sling? – devsda

+0

Przepraszam, ja osobiście nie wiem zbyt wiele o Sling. Wiem tylko, co można znaleźć na stronie internetowej. –

+0

Nawiasem mówiąc, oficjalna nazwa to Jackrabbit (małe litery r). Przykro mi, że jestem wybredna :-) –

12

Sling w bardzo prosty sposób można opisać jako API odpocząć przez JCR. możesz używać żądań http do zarządzania zawartością wewnątrz repozytorium.

Dodatkowo mechanizm Sling udostępnia mechanizm renderowania tej treści na różne sposoby w celu korzystania z Internetu. możesz używać skryptów (na przykład JSP) i kodu java (serwletów, obiektów itp.) w kontenerze Felix do przetwarzania żądań i dostarczania żądania.

Gdy żądanie dotyczy określonego węzła, funkcja Sling wyszukuje właściwość o nazwie sling:resourceType, jest to klucz wyszukiwania dla renderowania skryptów. Następnie odpowiedni skrypt jest wykonywany przy użyciu węzła jako danych wejściowych.

Możesz pisać różne rodzaje renderowania, a następnie użyć go do wyświetlania treści na różne sposoby.

Na przykład można napisać dwa skrypty full.json.jsp i short.json.JSP, a następnie wykorzystać je do uczynienia tego samego węzła na dwa różne sposoby:

/content/app/node.full.json 

LUB

/content/app/node.short.json. 

Sling zasadzie pasuje znaki w adresie URL żądania, aby wybrać odpowiedni skrypt.

Mają naprawdę ładne cheat sheet który wyjaśnia, jak rozdzielczość żądanie i renderowanie działa

jest to nieco bardziej skomplikowane niż to, ponieważ wszystko jest zorganizowane w surowce i komponenty. chcesz sprawdzić their site, aby uzyskać więcej informacji

+0

szybko zorientujesz się, co możesz zrobić z Slingiem, podoba mi się ich krótki samouczek: "Odkryj Slinga w 15 minut" https://sling.apache.org/documentation/getting-started/discover-sling-in-15-minutes .html –

1

Miałem te same wątpliwości. Najlepszą odpowiedzią udało mi się znaleźć w oficjalnej stronie Sling (https://sling.apache.org/)


(Co to jest) Apache Sling, w stu słowach:

Apache Sling to framework WWW, który używa Java Repozytorium treści, takie jak Apache Jackrabbit, do przechowywania i zarządzania treścią.

Aplikacje przechwytujące używają skryptów lub serwletów Java wybranych w oparciu o proste konwencje nazw, aby przetwarzać żądania HTTP w sposób RESTOWNOWY.

Osadzona struktura i konsola Apache Felix OSGi zapewniają dynamiczne środowisko uruchomieniowe, w którym pakiety kodu i zawartość mogą być ładowane, rozładowywane i rekonfigurowane w środowisku wykonawczym.


Więc wznowienie go:

  • Sling to framework WWW -> używając Jackrabbit -> oparta/obsługiwana w JCR API.
  • Możesz zobaczyć Apache Felix jak kontener z jego kierownikiem.

Należy pamiętać, że Sling został uruchomiony jako wewnętrzny projekt w Day Software. Z tego powodu niektóre pakiety/biblioteki mają nazwę com.day, ale w końcówkach są to dwie nazwy dla tego samego.

Ponadto, jeśli chcesz być jasne, o Jackrabbit i JCR API można znaleźć na oficjalnej stronie Jackrabbit za http://jackrabbit.apache.org/jcr/jackrabbit-architecture.html