miercuri, 14 ianuarie 2009

log4j

Log4j este un pachet “third party” care furnizeaza functionalitate similara Java Logging. El poate fi descarcat de la adresa http://logging.apache.org/log4j/

Log4j se bazeaza pe trei concepte-cheie:

  1. Logger
  2. Appender
  3. Layout
Logger

Este un obiect aproape identic celui din Java Logging. Fiecare Logger are un nume si se creeaza prin apelarea metodei Logger.getLogger(String name).

Un obiect Logger dispune de mai multe metode de logare, legate strans de prioritatea cu care se va afisa mesajul respectiv.

Nivelele de prioritate log4j sunt:

Nivel de prioritate

Metoda corespunzătoare din clasa Logger

ALL

-

ERROR

error

WARN

warn

INFO

info

DEBUG

debug

TRACE

trace


Nivelele de prioritate sunt constante ale clasei org.apache.log4j.Level (de ex: Level.INFO, Level.DEBUG etc.)

Pentru a creste viteza de executie, inainte de apelarea metodei efective ale obiectului Logger, se poate verifica nivelul curent de logare prin apelarea uneia dintre metodele isInfoEnabled, isDebugEnabled, isTraceEnabled sau prin apelarea metodei isEnabledFor(Priority level).

Ierarhii de obiecte Logger

Obiectele Logger sunt organizate in ierarhii, dupa nume. Fiecare obiect Logger are un nume, care poate contine caracterul '.' (punct), asemeni numelor de package. Ierarhia de loggere se face urmand tot regula formarii de package-uri Java.


Exemplu: logger-ul cu numele “promanagement.logger.log4j” este copilul logger-ului “promanagement.logger”.

Un Logger copil mosteneste nivelul de prioritate al parintelui sau, daca nu ii este asignat un nivel explicit.
Exista un Logger “radacina”, care este intors de apelul metodei statice Logger.getRootLogger().

Obiecte Appender
Seamana cu obiectele Handler din Java Logging. Un obiect Logger este atasat unui Appender, care executa scrierea efectiva de loguri. Log4j dispune de obiecte Appender predefinite, cum ar fi org.apache.log4j.RollingFileAppender , org.apache.log4j.DailyRollingFileAppender sau org.apache.log4j.ConsoleAppender (stdout). De asemenea se pot defini propriile obiecte Appender.

Un obiect Appender este atasat unui Logger dupa nume, in fisierul de configurare.

Obiecte Layout

Un obiect layout controleaza aspectul textului in fisierul log. Un astfel de obiect este atasat declarativ, in fisierul de configurare, fiecarui obiect Appender.

Log4j pune la dispozitie mai multe clase Layout (toate derivate din org.apache.log4j.Layout):
  1. org.apache.log4j.PatternLayout
  2. org.apache.log4j.xml.XMLLayout
  3. org.apache.log4j.HTMLLayout
  4. org.apache.log4j.SimpleLayout
Fisiere de configurare log4j:
Log4j poate fi configurat prin fisiere de proprietati (.properties) sau prin fisiere xml.

Exemplu: fisier de configurare log4j.properties:



Exemplu de fisier de configurare XML:



SOAP

SOAP este un protocol care defineste schimbul de date structurate, bazat pe XML.

El nu defineste si nu aplica nici o constringere asupra continutului mesajelor, de aceea poate fi folosit intr-o varietate de aplicatii, de la sisteme de messaging la RPC (Remote Procedure Call).

SOAP are 3 parti componente:

  1. Anvelopa: defineste reguli generale de continut si procesare a mesajului (cui ii este adresat, ce contine si daca este obligatoriu sau nu). Anvelopa este nodul principal (de nivel superior) al unui document SOAP.
  2. Encoding-ul: defineste modul in care sunt reprezentate datele in cadrul mesajului SOAP.
  3. Reprezentarea RPC: defineste conventia pentru apelarea procedurilor la distanta si primirea raspunsurilor.

Exemplu de mesaj SOAP in cadrul unui request HTTP:

Cererea:

Raspunsul:


Se remarca anvelopa SOAP ca element principal al mesajului:
De asemenea, se remarca faptul ca un mesaj SOAP nu contine declaratie DTD.

O anvelopa SOAP contine doua declaratii de namespace:

  1. namespace-ul anvelopei: http://schemas.xmlsoap.org/soap/envelope/
  2. namespace-ul encoding-ului: http://schemas.xmlsoap.org/soap/encoding/
Aceste documente sunt de tipul XML Schema.


Web Services (Generalitati)


Un serviciu Web este un modul software care poate fi accesat la distanta prin intermediul protocolului HTTP. Standardul pentru comunicarea cu serviciile Web este SOAP (Simple Object Access Protocol), care se bazeaza pe XML.

Similar unei aplicatii Web, un serviciu Web defineste o serie de module care asteapta cereri de la clienti, trimit cererea spre procesare unor clase de business si intorc raspunsul. Spre deosebire de aplicatiile Web clasice, clientul unui serviciu Web nu trebuie sa fie (si de obicei nu este) un browser.



Crearea si utilizarea unui serviciu Web se pot descrie in urmatorii pasi:
1.Se creeaza aplicatia Java care reprezinta serviciul Web
2.Serviciul Web este descris folosind un fisier WSDL
3.Serviciul Web se va inregistra intr-un registry UDDI si/sau ebXML
4.Un client cauta un serviciu Web folosind un directory UDDI / ebXML
5.Clientul va folosi mesaje SOAP pentru a comunica cu serviciul Web; datele se
vor schimba folosind protocolul HTTP, in format XML.


marți, 13 ianuarie 2009

Prevenirea indexarii

Pentru a evita continutul nedorit în indexurile de cautare, webmasterii pot instrui spiders sa nu indexeze anumite fisiere sau directoare, prin fisierul standard robots.txt plasat în directorul radacina al domeniului.
În plus, o pagina poate fi exclusa în mod explicit din baza de date a unui motor utilizând un meta-tag specific "robotilor".
Când un motor de cautarea viziteaza un site, robots.txt, situat în directorul radacina este primul fisier accesat de crawlere. Fisierul robots.txt este apoi analizat, si va instrui robotul care pagini sa nu fie accesate de crawlere.
Dat fiind faptul ca crawler-ul unui motor de cautare poate pastra în cache o copie a acestui fisier, el poate ocazial sa faca crawl la pagini pentru care webmaster-ul nu doreste asa ceva.
Paginile care nu se doresc a fii indexate sunt de exemplu paginile de login si paginile ce contin date specifice utilizatorului ca urmare a cautarii interne în site ( de exemplu la site gen magazin virtual ).

Indexarea paginilor de catre motoarele de cautare

Motoarele de cautare, Google, Yahoo! si Microsoft, utilizeaza crawlerele pentru a gasi pagini pentru rezultatele bazate pe cautarea algortimica .
Paginile care sunt relationate cu alte pagini indexate de motorul de cautare nu trebuie sa fie submise, deoarece acestea sunt gasite în mod automat. Unele motoare de cautare, în special de Yahoo!, opereaza un serviciu de submitere platit care garanteaza crawling-ul, fie pentru o taxa, fie pentru un cost per clic. Astfel de programe de obicei, garanteaza includerea în baza de date, dar nu garanteaza pozitia în clasament în rezultatele de cautare. Serviciul Yahoo de includere în urma platii a atras, insa ,critici de la agentiile de publicitate si de la concurenti.
Directoarele Yahoo Directory si Open Directory Project necesita submiterea manuala si de revizuire editoriala de catre oameni.
Google ofera "Google Webmaster Tools", prin care un feed XML poate fi creat si submis gratuit pentru a se asigura ca toate paginile sunt gasite, mai ales paginile care nu sunt descoperite în mod automat prin parcurgerea link-urilor.
Nu fiecare pagina este indexata de catre motoarele de cautare. Distanta paginii de la directorul radacina al unui site poate fi de asemenea un factor în a stabili daca se va face crawling la pagina.

Website to PDF Print

Ar putea exista cateva motive pentru care un " user " ar dori să aiba posibilitatea să transforme o pagină web in PDF, cum ar fi: de a împărtăşi cu un prieten non-online, pentru a putea trimite continutul paginii web prin e-mail sau pur si simplu pentru a putea citi informatiile ulterior , pastrandu-se, insa , forma originală a paginii.
Din punct de vedere al unui ownerului de site, dand posibilitatea vizitatorului sa converteasca continutul paginii web in PDF, realizeaza o crestere a numarului de vizitatori interesati si va duce la o mai buna promovare a site-ului.
Proprietarii de site care încă nu oferă o opţiune RSS pe site-ul lor (dacă inca mai există azi!) sau care doresc să ofere mai multa libertate la articolele de pe pagina de web, pot folosi script-ul oferit de http://web2.pdfonline.com/. Pentru a avea acces la acest script este necesara inregistrarea pe site. Codul obtinut se copiaza in HTML-ul paginii care va putea fi convertita in PDF. Singurul dezavantaj este ca scriptul trebuie copiat in codul HTML al fiecarei paginii.

PageRank & PostRank

PagerRank, in termeni simplisti, arata cat de "importanta" este o pagina web. Valoarea lui este intre 1 si 10 si cu cat este mai mare site-ul va fi pozitionat de Google mai sus in motorul de cautare.
PostRank este un sistem de ranking al continutului unui site , adica articole informatii , stiri, articole pe blog.

Deci , la optimizarea site-ului este trebuie avaut vedere ata PageRank-ul cat si PostRank-ul.