Sunteți pe pagina 1din 88

INTRODUCERE Organizarea ct mai efecient a datelor si informaiei existente a devenit o necesitate stringent datorit creterii volumui si complexitaii acestora.

Orice utilizator are informaia personal important care trebuie sa fie organizat i accesat rapid. Pn la apariia calculatoarelor pentru pstrarea si organizarea ei se folosea suport de hrtie sau era angajat un om special n acest scop (asistent). Aceasta concepie de organizare aducea la cheltuieli organizatorice eseniale si deseori nu era comod. Cu apariia calculatoarelor pstrarea datelor a devenit mai uoar, datorit faptului ca informaia se pstreaz in forma digital. Ins la prima etapa de dezvoltare nca nu existau aplicaii ce erau destinate s organizeze datele personale ale utilizatorului (era costisitor sa foloseti un calculator mainframe pentru funciile ce le putea executa un om). Aceste aplicaii au aprut numai dup creterea brusca a numrului de calculatoare personale si a mriri cerinelor utilizatorilor ctre produsele software . La ora actual exist mai multe aplicaii pentru pstrarea datelor personale ale utilizatorului la calculator, aa numitele asistente electronice (organizere) sau calendare care stocheaz i organizeaz fluxul de informaie ce revine la o persoan. In componena lor intra o mare gama de servicii orientate la ajutorarea utilizatorului n activitatea zilnic (calendare, notie, carnet de adrese etc.). Muli utilizatori folosesc aceste programe permanent si au trecut aproape complet de la suport de hrtie la ele. Dar acest soft are un neajuns important el lucreaz pe calculatorul utilizatorului i pentru accesul la informaia pstrat avem nevoie s avem acces la acest calculator. ns de multe ori informaia pstrat n aceste asistente electronice este necesar cnd nu putem s accesm acest calculator anumit. Astfel de cazuri snt foarte frecvente n viaa omului contemporan. Complexitatea accesului informaiei pstrate a adus la schimbarea concepiei de organizare a datelor. n ultimele ani a aprut tendina de a muta atributele obinuite ale utilizatorilor in reea: sisteme de operare, aplicaiile, cutii potale sau chiar discurile logice. Adic informaia necesar este pstrat intr-un loc i poate fi accesat de mai muli utilizatori concomitent. Aplicaia server ce dirijeaz fluxul de date se afl permanent n stare de ateptare i rspunde la cerinele utilizatorilor n orice timp i poate fi accesat de pe orice calculator conectat la reea. Pentru accesul la date deseori se folosesc aplicaii ce sunt prezente pe fiecare calculator exploratoare web. Avantajele unei asfel de organizrii sunt evidente:

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

redistribuirea si pstrarea resurselor utilizatorilor, aplicaia poate fi accesat de pe orice calculator conectat la reea, informaie poate fi obinut in orice moment de timp. Un caz mai general este conectarea serverului la reeaua Internet. Dac serverul unde este

pstrata informaia este conectat la Internet, putem sa accesm informaia de pe orice loc al globului pmntesc. Asistentul electronic public face parte din acest rnd de aplicaii i vine s ajute utilizatorului n viaa lui de toate zile. Asistentul electronic public prezint un serviciul public care permite utilizatorilor s foloseasc online aceleai faciliti ca i aplicaiile pentru organizarea datelor personale offline i anume - calendarul zilnic, carnetul de adrese, carnetul de notie si etc. Toate acestea snt accesibile 24 ore pe zi, 265 zile n an. Teza dat este destinat crerii unui asistent electronic care include urmtoarele servicii publice: calendarul zilnic cu posibilitatea de pstrare a evinementelor, pstrare a notielor i a datelor personale i de organizare a referinelor preferate. Datele asistentului electronic pot fi accesate repede de pe orice calculator. Programul este instalat pe server i permite organizarea, pstrarea, modificarea datelor prin interfaa exploratorului web. Paginele lui snt uoare i pot fi ncrcate prin reea cu canalul ngust de comunicare (este des cazul cnd utilizatorii se conecteaz la reea prin dial-up). n afar de aceasta AEP are interfaa utilizatorului uoar de ineles i repede de nsuit. n lucrarea prezentat sunt stabilite cerinele ctre aplicaiile destinate pentru organizarea informaiei personale a utilizatorilor i sunt cercetate instrumentarele folosite la crearea webaplicaiilor. Dintr-un numr mare de tehnologii i aplicaii folosite la crearea web-aplicaiilor sunt alese: Perl, Apache i MySQL. Sunt explicate fundamentele programarii CGI, protocolului HTTP i a limbajului de programare Perl cunoaterea crora este necesara la elaborarea AEP. O mare parte a lucrarii este dedicat descrierii conceptului crerii AEP i realizarii nemijlocite a proectului.

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

1. FORMULAREA PROBLEMEI DE CREARE A AEP Nu exist nc un consens deplin n ceea ce privete definirea asistentului electronic. Diferii oameni, diferite companii sau grupuri ofer variante uor diferite pentru definirea a ceea ce se nelege prin asistente electronice. Dei exist o serie de facilitai , dezvoltarea rapid a domeniului face dificila o evoluie corespunztoare a standardizrii. Se pot considera ca fiind aspecte importante pentru organizarea datelor urmtoarele elemente si cerinele care trebuie se nainteaz ctre asistentul electronic: securitatea datelor - informaia pastrat poate fi de gradul nalt de confedenialitatea i accesul la ea a persoanelor strine poate aduce mari prejudicii. Asistentul electronic trebuie s ofere mecanismele de autentificare i controlul accesului pentru utilizatori. Procedurile de control al accesului i de securitate trebuie s asigure posibilitatea administrrii drepturilor acordate utilizatorilor i s ofere accesul la datele care snt permise pentru el. Cel mai des accesul este limitat prin existena numelui utilizatorului si a parolei. posibilitatea de acces online de la orice staie a reelei asigurarea performanei, scalabilitaii si robusteii aplicaiei - la creterea volumului de date i a numrulului de utilizatori aplicaie trebuie s funcioneze n regim normal, fr greeli i pierderi de informaie. Pentru aceasta la elaborarea aplicaiei trebuie s ne folosim de instrumente software care economisesc resursele. prezena unei interfee clare, consistente i grafice - utilizatorul care folosete aplicaia poate fi i un om neexperementat n domeniul calculatoarelor. Dar aplicaia este destinat pentru utilizator de orice nivel ( fiecare om are datele ce trebuie s fie organizate ) i interfaa grea va fi o piedic pentru el. pstrarea datelor intr-un loc accesul la date va fi dirijat de un soft special instalat pe server. Este evident folosirea SGBD de tip client/server, care ie pe seama sa probleme principale: pstrarea fizic, accesul autorizat, convertirea datelor etc. organizarea datelor asemntoare uneltelor folosite de utilizator n viaa modul de folosire a mijloacelor virtuale nu trebuie s deosibeasc mult de folosirea celor reale ( carnetelor, zilnicelor, calendarelor etc.). Utilizatorul este deja obinuit s foloseasc un mijloc anumit i trecerea la modul de organizare pe calculator nu trebuie sa fie compus. posibilitatea de a pstra i a organiza evinementele i mesajele zilnice - adic este nevoie de existena unui organaizer zilnic care este organizat ca un calendar.

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

posibilitatea de a trimite mesajele de alert si rememorarea pentru evinemente ce vor avea loc in viitor - este frecvent cazul cnd utilizatorul uit de careva evinemente i aceasta va aduce prejudiciu simitoare materiale i morale ( de exemplu neachitarea la timp a unei plai, uitarea de o aniversarea sau intlnirea etc. ).

posibilitatea de a exporta / importa datele in alte formate - deseori utilizatorul are mai multe aplicatii ce organizeaza datele si atunci apare necesitatea de a trece informaia de la un program la altul pentru ca utilizatorul sa nu introduc aceleai date de mai multe ori. Aceasta se organizeaza prin folosirea a unui format de date intermediar ( CSV, XML etc. ) si e necesar ca programul sa sustina aceste formate.

existenta unui carnet de contacte - omul contemporan are de memorat un numr destul de mare a informaiei de contact : telefon, adrese, adrese e-mail, etc. a mai multor adresati. Organizarea lor are loc dup prima litera a adresatului.

posibilitatea de configurare - trebuie s permitem utilizatorului configurarea unor parametre ce privesc modul de prezentarea datelor: regionul. interfata, datele ce depind de

economisirea resurselor cu una i aceeai aplicaia pot lucra concomitent mai muli utilizatori iar funcionarea programului pate fi pe sisteme cu resurse restrinse in ceea ce privete volumul memoriei i frecvena procesorului. Asistentul electronic public ce este conectat la reea trebuie sa corespunda acelorai cerine

expuse mai sus insa la crearea lui trebuie sa atragem o atenie mai mare la cerina de securitate, deoarece datele snt expuse public si accesul ilegal la ele poate fi obinut mai uor.

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

2. INSTRUMENTARE SI APLICAII PENTRU CREAREA AEP Asistentul electronic este o aplicaie de tip client-server cu pastrarea datelor pe un calculator central (serverul ). Interfaa utilizator ( client ) va fi afiat prin browser, ce este o tendina moderna la crearea aplicaiilor client. Folosirea browserului este comoda prin faptul ca acesta aplicaie este prezenta pe majoritatea calculatoarelor si nu trebuie s fie instalat i configurat prealabil. La calculator central va rula web-serverul care va primi cererile utilizatorilor si va trimite la executare scripturile aplicaiei. Web serverul la timpul actual este o aplicaie care este prezenta pe majoritea serverilor la organizaii i ntreprinderi. Punerea in funciune a programului nu va cere cheltuieli suplimentare . Asistentul electronic este o aplicaie ce lucreaz intensiv cu datele ce se pstreaz pe server, informatie ce trebuie fi prezentata trebuie sa fie actuala si modificarea lor trebuie sa fie rapid si dinamic. Limbajul HTML nu are astfel de facilitai, cu ajutorul lui putem s prezintm informatie static si el nu permite a accesa dinamic datele. Pe partea serverului este nevoie de a folosi programele scrise intru-un limbaj de programarea. Web-serverul va trimite datele ctre programul nostru prin interfaa CGI, iar aplicaia va rspunde prin ieirea standart OUTPUT. Din mulime de limbaje de programarea vom alege limbajul care este mai comod la crearea programelor CGI. Pentru crearea asistentului electronic snt necesare instrumente si aplicaiile de acces la BD. Cel mai bine corespunde pentru scopurile noastre SGBD-ul dup modelul client-server . Scripturile aplicaiei vor fi clieni, iar SGBD-ul va lua funciile de pstrarea si organizarea datelor, accesarea lor rapida, securitatea lor i etc. In aa fel noi ne eliberm de o partea colosal a lucrului cu date i ne putem concentra la funciile nemijlocite asistentului . Este nevoie de a folosi un SGBD care va acorda facilitai destule pentru aplicaia noastr si nu va cheltui multe resurse. 2.1 Tehnologii i limbaje server Construcia paginilor web dinamice este foarte folositoare si comoda din mai multe motive si poate fi aplicata in urmtoarele cazuri : pagina web este bazata pe datele pe care le trimite utilizatorul, de exemplu rezultatele de pe paginile generate de motoarele de cutare sunt generate in acest fel, si acelai lucru se ntmpla cu paginile unui site de comer electronic. datele se schimba in mod frecvent, de exemplu, un raport despre vreme sau tirile zilnice

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

paginile web folosesc informaii din baze de date mari sau altfel de asemenea surse, de exemplu construirea unei pagini web al unui magazin on-line in care se afiseaza lista curenta de preturi si catalogul de produse. Pentru aceasta este nevoie de folosit o tehnologie, care ar lucra pe partea server si ar

genera codul HTML dynamic. Atunci cind este nevoie

sa realizam pagini dinamice, ne

confruntam cu urmtoarea problema- care dintre tehnologiile disponibile pe piaa ar fi cea mai potrivita. Exista mai multe tehnologii server, mai jos snt prezentate cele mai raspindite. 2.1.1 PHP Cu ajutorul PHP se pot crea pagini de WEB dinamice, care snt generate in momentul in care programul utilizator a formulat cererea ctre serverul web. Este o aa numita sursa deschisa (open source), realizata si permanent imbunatatita de comunitatea dezvoltatorilor de aplicaii web, la fel ca si baza de date cu care lucreaz in mod preferenial (MySQL). Un numr din ce in ce mai mare de site-uri utilizeaz tehnologia PHP. PHP este un limbaj de "scripting" utilizat in fiierele HTML. Sintaxa PHP este o combinaie intre limbajele C, Java si Perl. Scopul limbajului este de a permite programatorilor WEB sa scrie rapid pagini ce se genereaz dynamic si este un limbaj specializat pentru scopul acesta. Serverul de WEB trebuie sa abia activat suportul pentru PHP. Toate fiierele care au extensia .php3 trebuie sa fie rulate de ctre motorul PHP. Fiierele se creeaz in aceeai maniera ca si fiierele HTML. Fiecare tag PHP ncepe cu <? php , se continua cu propoziia PHP si se nchide in partea dreapta cu ?> . Intr-un fiier HTML pot exista un numr nelimitat de tag-uri PHP. Prin intermediul PHP3 se pot accesa Microsoft SQL Server si baze de date Microsoft Access cu ajutorul ODBC. Una dintre cele mai importante caracteristici este "database integration layer". Scrierea paginilor WEB cu acces la baze de date este foarte uor datorita PHP3. Urmtoarele SGBD-uri pot fi utilizate mpreuna cu PHP3: Oracle, Sybase, mSQL, MySQL, Informix, dBase, ODBC, PostgreSQL. Avantaje cu ajutorul scripturilor php se poate integra o mare varietate de baze de date (de la MySQL la Oracle). este o tehnologie extrem de flexibila si dedicata utilizatorului: permite modificarea si extinderea codurilor cu mare usurinta

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

10

lucreaz cu o mare varietate de sisteme de operare; ruleaz in egala msura pe servere web Windows NT si UNIX. este complet gratuita. comunitate de dezoltatori php care creste de la o zi la alta este gata sa ofere oricind suport tehnic.

Dezavantaje Fiecare baza de date cu care lucreaz PHP-ul necesita un set de comenzi mai mult sau puin diferite. Spre exemplu, o aplicaie construita pentru a integra MySQL necesita schimbarea completa a fiecrei linii de script pentru nlocuirea bazei de date cu Oracle. Totui tandemul PHP/MySQL este extrem de raspindit si aproape orice furnizor de web hosting (indiferent ca serverul este UNIX sau NT) ofer suport pentru acest tip de aplicaii. 2.1.2 Active Server Pages ASP este un instrument de dezvoltare a aplicaiilor web utilizat de un mare numr de dezvoltatori. Principalul motiv pentru care atit de muli aleg tehnologia ASP este ca este gratuita si este de asemenea inclusa in Internet Information Server (IIS) care ruleaz pe Windows NT. Automat furnizorii de web hosting care ofer pachete NT, ofer si suport pentru aplicaii ASP, fara taxe suplimentare. Toate fiiere care conin codul ASP trebuie sa abia extensia *.asp. Fiierul cu aceasta extensia este interpretat mai intii de motorul ASP si in rezultat este obinut HTML cod generat dynamic. Codul se include cu tegul <% %>. Intr-un fiier HTML pot exista un numr nelimitat de tag-uri ASP. Programarea se face in limbaje JavaScript, VBScript. Avantaje limbajul de programare in ASP se bazeaz pe VBScript, astfel incit programatorii in VisualBasic se adapteaz uor. Pentru mai mare usurinta scripturile ASP pot fi realizate si cu vesiunea Microsoft de Javascript (JScript). ASP include un set de instrumente pentru integrarea bazelor de date COM (connection, RecordSet, query etc.) intra gratuit in componenta web serverului Internet Information Server accesul la diferite SGBD prin ODBC, ADO administrarea simpla prin interfaa grafica

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

11

Dezavantaje nu este o platforma de dezvoltare de aplicaii web completa. Nu include servicii de tip FTP, LDAP sau HTTP. nu ruleaz decit pe servere de web hosting Windows NT. Serverele UNIX nu ofer suport pentru aplicaii ASP. 2.1.3 Perl Limbajul Perl a fost gindit iniial pentru crearea rapoartelor si prelucrrii irurilor de caractere de aici si denumirea lui - Perl (Practical Extraction and Report Language). Totodat, Perl are un mecanism foarte eficient de cutare si nlocuire ntr-un text dup un model . Aceasta facilitatea a lui e folosita des in Web , unde exista masive imense de date de tip ir. Este inclusa posibilitatea programrii in obiecte, ce incurajeasa programatorii pentru scrierea aplicaiilor mari. Poate fi considerat ca un venerabil stramos al tuturor intrumentelor de dezvoltare web. Chiar daca au aprut o mulime de tehnologii noi, Perl continua sa abia un rol important in cadrul unui numr mare de site-uri web. Avantaje. exista o imensa biblioteca de resurse disponibila pe internet care cuprinde o mare varietate de scripturi. procedurele de lucrul flexibile cu iruri de caractere este gratuit si este inclus des in componenta softului pe server ruleaz pe diferite platforme ( Unix, Windows, MacOS etc. ) Perl nu a fost proiectat iniial pentru aplicaii Web si principalul sau inconvenient este ca nu se integreaz ca alte instrumente similare in sursa HTML a paginii web. 2.1.4 ColdFusion O platforma completa de dezvoltare de aplicaii web: limbaj de programare, server de aplicaii, mediu de dezvoltare. Nu este o sursa deschisa, deci nu este gratuita. Studiile de piaa indica faptul ca este cel mai bine vindut server de aplicaii web cu plata, in competiie cu Microsoft Activeserver Pages (asp), Sun Java Server Pages (jsp), Perl, Php.

Dezavantaje

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

12

Avantaje simplitate, pentru majoritatea dezvoltatorilor care stapinesc limbajul HTML, ColdFusion este uor de invatat, fiind un limbaj intuitiv. Tagurile specifice sunt "cfset" si "cfoutput". Variabilele se ncadreaz cu semnul "#". Limbajul de programare este CFML (ColdFusion Markup Lamguages) iar extensiile paginilor sunt "cfm". ofer acces la baze de date, inclusiv proceduri de nregistrare si tranzactionare include protocoale de retea: LDAP, POP3, SMTP, HTTP si FTP permite includerea unor taguri specifice scrise in C++, Java sau Delphi exista o mare comunitate de dezvoltatori care utilizeaz ColdFusion, extrem de activa in grupurile de discuii si in cadrul seciunii de forum din site-ul Allaire. Dezavantaje ruleaz pe platforma Windows NT. Serverele de web hosting pe platforme UNIX, de regula nu ofer suport pentru dezvoltarea de aplicaii ColdFusion. pot exista probleme de securitate in situaia in care serverul nu este bine configurat nu este gratuita 2.1.5 Java Server Pages Java Server Pages (JSP) este o tehnologie care permite mbinarea de HTML static cu HTML generat dynamic. JSP poate fi considerat echivalentul Java al ASP. Lucreaz cu un set de obiecte similar (request, response, application etc.) si este scris utilizind Java. Ofer dezvoltatorului ntreaga paleta a capacitatilor Java. Totui este un limbaj de programare mai dificil decit cele enumerate mai sus si accesibil mai ales programatorilor care lucreaz cu Java. De aceea aplicaiile realizate in tehnologie JSP sunt mai rar intilnite pe web.. Serverul de WEB trebuie sa abia activat suportul pentru JSP. Toate fiierele care au extensia *.jsp trebuie sa fie rulate de ctre motorul JSP. Fiierele se creeaz in aceeai maniera ca si fiierele HTML. Fiecare tag JSP ncepe cu < % , se continua cu codul si se nchide in partea dreapta cu %> . Avantajele in primul rnd, partea dinamica este scrisa in Java, nu in Visual Basic sau alt limbaj specific Microsoft, deci este mai puternic si mai uor de folosit este tehnologie gratuita este portabil pe diferite platforme web server datorita limbajului care sta la baza.

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

13

JSP este mult mai flexibil la modificrile decit un servlet Java la baza sta limbajul Java care este considerat mai complicat decit limbaje scripturale tehnologia JSP este mai lenta 2.1.6 Java Servlets Servleturile sunt un rspuns Java la programarea CGI. Sunt programe scrise in Java care

Dezavantaje

ruleaz pe un server Web si care construiesc pagini Web dinamice. Avantajele limbajului din punctul de vedere al dezvoltrii de aplicaii server sunt n esena aceleai care l fac o soluie buna si pe partea client, doar proporia lor fiind diferita. Potabilitatea, principalul atu al limbajului, este importanta si n cazul aplicaiilor server, dar poate ca ntr-o msura mai mica dect n cazul aplicaiilor client, de genul apleturilor. Pentru un aplet portabilitatea este de o importanta majora, fiind necesar ca acelai program sa ruleze pe orice calculator de pe Internet. In cazul aplicaiilor server, daca un program poate rula fara modificri pe UNIX si pe Windows NT, nseamna o dublare a pieei fara a fi necesara schimbarea nici unei linii de cod. Binenteles ca oricine va alege o soluie portabila fata de una mai puin portabila, iar Java cistiga clar la acest capitol de fiecare data. Aplicaiile server trebuie de obicei sa ruleze mai multe zile, poate chiar luni de zile, fara ntrerupere, iar apariia unor probleme cu memoria, poate cauza probleme serioase. n Java, erori de acest tip nu au cum sa apara, programatorul nu trebuie sa se ocupe de gestiunea memoriei, deci problema pur si simplu dispare. Avantaje eficienta in fata tradiionalul CGI, un nou proces este pornit la fiecare cerere HTTP. Daca programul CGI face relativ repede o operaie, punctul de pornire al procesului poate domina timpul de execuie. Cu servleturi, Maina Virtuala Java ramine in memorie si fiecare cerere este satisfcuta de un fir de execuie Java si nu de un proces al sistemului de operare. Similar, in tradiionalul CGI, daca sunt N cereri simultane ctre acelai CGI, atunci codul pentru programul CGI este ncrcat in memorie de N ori. Cu servleturi, sunt N fire de execuie, dar o singura copie a clasei servletului. Servleturile au mai multe alternative dect programele CGI pentru optimizri cum ar fi pstrarea calculelor anterioare, meninerea deschisa a conexiunii ctre o baza de date, si altele asemenea. convenabil. In afara de faptul ca e convenabil sa utilizezi un limbaj familiar, servleturile au o infrastructura expandabila pentru parsarea si decodarea formularelor HTML, citirea
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

14

si setarea headerelor HTTP, lucrul cu cookies, urmrirea sesiunilor(tracking sessions) si multe altele. puternic- servleturile Java iti permit sa efectuezi o mulime de lucruri care sunt dificile sau imposibile cu obisnutul CGI. Un simplu exemplu : servleturile pot sa dialogheze direct cu serverul Web (programele CGI obinuite nu pot). Asta simplifica operaiile de ncrcare a imaginilor sau a altor date stocate in locuri standard. Servleturile pot sa isi partajeze datele unul altuia, cum ar fi conexiunile la baza de date. portabilitatea- servleturile sunt scrise in Java si urmresc API-ul sau bine standardizat. De asemenea, servleturile scrise, sa zicem pentru Apache functioneaza virtual neschimbat si pe Netscape server, Microsoft IIS etc. Servleturile sunt suportate direct sau printr-un plugin pe oricare server Web important. cost redus, sunt un numr de servere web gratuite sau cu costuri mici pentru uzul pe siteurile personale sau de trafic mediu. Dezavantaje la baza sta limbajul Java care este considerat mai complicat decit limbaje scripturale tehnologia Java servlet este mai lenta nu este atit de flexibila la modificari 2.2 Sisteme de gestiune a BD 2.2.1 Oracle Oracle Server este recomandat instituiilor sau organizaiilor mari cu un numr mare de utilizatori , cu un volum de date mediu (de ordinul sutelor GB) i cu aplicaii care nu efectueaz tranzacii n regim intens (organizaiilor de tip workgroup). Este un SGBD obiectual-relaional puternic care ofer aproape toate facilitatile pentru gestionarea datelor nefiind necesare cunotine avansate de administrare pentru instalarea i ntreinerea acestuia n funcionare. Procedura de instalare este intuitiv i ofer tot ceea ce este necesar pentru a avea un server Oracle funcional i preconfigurat pentru a funciona a parametrii optimi. Performane nalte pentru procesarea tranzaciilor - pentru procesarea tranzaciilor cu performane ridicate, arhitectura multithreaded i multiserver a lui Oracle coordoneaz mii de cereri simultane ale utilizatorilor.

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

15

Acces deschis (standard) la date. Oracle8 ofer un acces deschis printr-o varietate de standarde la date. Acestea includ ODBC, Oracle Objects for OLE, JDBC ca i driverele native Oracle. Cerine hardware i software 48 MB RAM 200 MB spaiu pe hard disk (Windows NT, Netware, OS2) 275 MB spaiu pe hard disk (UNIX) Reea Net8 TCP/IP, IPX/SPX, Named Pipes, DECNet, DCE, NDS, LU6.2 Oracle8 este complet portabil pe mai mult de 80 de platforme hardware i software distincte, incluznd peste 40 de sisteme de operare UNIX, VMS, MVS, VM, HP MPE/XL, Siemens, ICL, Novell Netware, OS/2 i Windows NT. Avantajele administrarea sistemului avansata ( set de instrumente de administrare grafice ,ageni inteligeni pentru administrarea de la distan ) securitatea performanta datelor scalabilitate superioar pentru a suporta un numr mare de utilizatori i volume mari de tranzacii. Procesoare i/sau noduri adiionale (ntr-o arhitectur cluster) pot fi adugate pentru extinderea incremental a configuraiei pe msur ce att organizaia ct i volumul de date crete, conducnd la mbuntiri dramatice de performan. optimizarea interogrilor are cerine mari fata de resursele serverului 2.1.2 Postgres SGBD Postgres este prezentat drept "cel mai performant sistem de gestiune, de baze de date, gratuit disponibil pe Internet",si se adreseaz celor care au nevoie de produs software gratuit de calitate n domeniul SGBD. Sistemul de gestiune de baze de date Postgres poate fi definit ca fiind: relaional, foarte extensibil, cu orientare obiectual si este construit conform unui model client/server . Sunt incluse facilitile majore ale modelului relaional clasic, precum cereri declara tive n SQL, optimizarea interogrii, controlul concurent, tranzacii, suport multiutilizator. Dezavantajele

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

16

PostgreSQL este compatibil cu standardele ISO SQL, ANSI SQL/98, SQL/92 i ANSI SQL/89 etc Extensibilitatea (ca posibilitate a utilizatorului de a defini arbitrar operatori, tipuri, funcii i metode de acces) este asigurat printr-un mecanism tipic sistemelor relaionale: un ansamblul de cataloage. Postgres include, o serie de produse destinate administrrii acestui tip de baze de date i facilitrii dezvoltrii de aplicaii. Aceste produse s-au acumulat n timp, prin aportul mai multor specialiti din toat lumea Se ofer interfee de programare din C , C++, Perl ,PHP, Java i soluia de imbricare SQL - "embedded SQL" (apelurile SQL, ntr-o sintax specific, sunt integrate n aplicaia scris n C care, nainte de a fi compilat, este prelucrat de preprocesorul ecpg). S-a dezvoltat driver ODBC si JDBC pentru PostgreSQL. S-au scris clase Java dedicate facilitrii accesrii Postgres. Prin disponibilitate (posibilitatea de a obine gratuit produsul, documentaia, utilitare de dezvoltare aferente) i prin facilitile oferite, Postgres poate fi util oricrui programator dispus s fac mici eforturi suplimentare pentru a dezvolta, fr achiziionare de software, aplicaii viabile. Unele faciliti specifice (posibilitatea de a-i modifica modul de operare "din mers", n urma extensiilor utilizator, posibilitatea existenei unor atribute non-atomice ale unei relaii, elementele de orientare obiect) impun Postgres ca un instrument deosebit de adecvat pentru constituirea rapid de prototipuri n dezvoltarea de noi aplicaii i structuri de date (care pot fi de o mare complexitate). Avantajele este mai uoara decit Oracle este SGBD gratuit cu texte surse publice are documentaia buna si complete unele facilitai a SGBD orientate pe obiecte necesita resurse mai mult decit MySQL 2.1.3 MySQL MySQL poate fi denumit ca un SGBD de clasa mijlocie intre SGBD de model client/server. MySQL este un SGBD scalabil, rapid si gratuit, cu caracteristici foarte potrivite pentru multe dintre aplicaiile care folosesc suportul de baze de date pentru WWW. El n-are

Dezavantajele

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

17

astfel de multe facilitai cum are Oracle , dar el nu necesita atit de multe resurse si este cel mai potrivit pentru aplicaii de greutate mijlocie. MySQL este un server de baze de date SQL, multi-user si multi-threaded si este o implementare client/server ce consta intr-un "demon server" multe programe client, precum si biblioteci. Se ofer interfee de programare din C , Perl ,PHP. Avantajele principale ale MySQL snt: viteza, robusteea si usurinta in utilizare. Firma care a creat MySQL il utilizeaz din 1996 intr-un mediu cu peste 40 de baze de date continind 40.000 de tabele, din care peste 500 au mai mult de 7 milioane de rinduri. Caracteristici importante MySQL : lucreaz pe platforme diferite, un sistem de privilegii si parole foarte sigur si flexibil, care permite verificarea la nivelul mainii gazda ( toate parolele pentru conectarea la baza de date snt codificate ), ODBC draiver pentru Windows95 (cu sursa), toate funciile ODBC 2.5, un sistem de alocare a memoriei foarte rapid bazat pe thread-uri, si multe altele MySQL opereaz in baza unui model client/server. Orice maina care dorete sa proceseze interogri asupra unei baze de date MySQL trebuie sa ruleze MySQL server (mysqld), care este responsabil de tot traficul de tip incoming/outgoing cu baza de date. Ca orice alt server, mysqld asculta pe un port particular (3306) eventualele cereri de conexiune ale unui client orice aplicaie care trimite cereri ctre o baza de date mysqld. Acest client poate fi un simplu script in Perl care (prin modulului DBI) poate trimite o cerere ctre database prin intermediul serverului MySQL sau chiar clientul command-line mysql. Clientul mysql este o interfaa interactiva pentru trimiterea de comenzi ctre server. Avantajele este gratuit cu texte publice intra in marea majoritatea distributivelor Unix nu necesita multe resurse hard nu are documentaia bine structurata 2.3 Web-servere Exista multe serverele web care pot fi rulate pe diferite platforme: Windows, MacOS, Unix etc. Pina nu demult marea majoritatea lor rula sub SO Unix. Odat cu creterea sensibil a numrului de calculatoare personale, dotate cu sisteme de tip Windows (95, NT), conectate n Internet, productorii de software i-au ndreptat atenia spre acest domeniu. Astfel, portarea

Dezavantajele

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

18

unor aplicaii de succes din lumea UNIX sau crearea de programe echivalente direct pentru platformele Windows a devenit un fapt obinuit. Din larga ofert de produse am ales pentru analiza doua web servere cel mai des folosite pe platformele lor. 2.3.1 Internet Information Server Sistemul de operare Windows 2000 Server include in web serverul - Internet Information Services ( IIS ). Performantele IIS sunt un rezultat direct al felului in care IIS incorporeaz caracteristici sale in sistem de operare Windows . IIS este construit pe caracteristicile si capabilitatile necesare funcionarii siturilor Web Exista o serie de caracteristici care fac IIS sa fie sigur si performant. Caracteristica sigura de "restart" a IIS permite unui administrator sa re-porneasc serviciile Web fara sa fie nevoie de o repornire a calculatorului. Pentru a imbunatatii sigurana, Application Protection furnizeaz posibilitatea de a rula aplicaiile separat de serviciile Web. IIS permite utilizarea unui mecanism de securitate: Secure Sockets Layer (SSL). Acesta este un protocol ce se interpune ntre HTTP i TCP/IP, asigurnd tranzaciile sigure (de regul, prin criptare) ntre clieni i server. Instalat i configurat corect, IIS asigur funcionarea fr probleme a celor trei servicii mai sus amintite. Acestea sunt lansate automat la pornirea serverului NT, urmnd ca oprirea sau pornirea lor ulterioara s se fac din aplicaia Internet Server Manager. Pentru serviciul FTP, cu aplicaia mai nainte amintit, pot fi vizualizate conexiunile active. Dac serverul NT utilizeaz pentru monitorizarea reelei protocolul Simple Network Management Protocol (SNMP), acesta poate fi utilizat i pentru monitorizarea serviciilor WWW, FTP i Gopher din IIS. Fiierele de tip login sunt utile pentru a vizualiza activitatea n timp a serverului Internet. Pot fi obinute informaii despre utilizatorii ce s-au conectat la server: numele utilizatorului, adresa IP a mainii de pe care s-a conectat acesta, timpul de conectare, fiierele accesate/vehiculate etc. IIS este uor de instalat si de intretinut. O serie de caracteristici suporta aceasta caracteristica, proces de instalare simplificat, task wizard-uri pentru securitate, capacitatea de a nregistra timpul necesar proceselor, o administrare de la distanta mult mai flexibila si posibilitatea de a crea mesaje de eroare personalizate. Pentru dezvoltatorii de aplicaii, performanta sitului Web poate fi imbunatatita prin procesarea Microsoft Active Server Pages (ASP), auto-reglarea ASP si obiectele ASP cu performante mrite. Dezvoltatorii vor descoperi ca IIS mediul serverului de dezvoltare a
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

19

aplicaiilor prin utilizarea noilor tehnologii incluse in Windows Server. Aceste noi tehnologii includ Active Director si un Component Object Model (COM+) mrit. Avantajele SO Windows NT si versiuni ulterioare includ IIS in componenta sa este inclus motorul Active Server Pages (ASP) uor de administrat mecanizmul de securitatea nu este perfect SO Windows platforma pentru IIS nu este gratuit si nu este stabil 2.3.2 Apache HTTP Server 1.3 Web Serverul Apache este un produs al Apache Group, i serverul este distribuit sub form de "copyrighted freeware", utilizatorul avnd la dispoziie, pe lng varianta binar, executabil, i toate sursele produsului. Produsul vine cu un program de instalare foarte direct, care are grij i de efectuarea setrilor minime pentru ca serverul s poat rula. Documentaia buna pus la dispoziie este foarte explicit i detalii de folosire se gsesc chiar n fiierele ce trebuiesc modificate. Popularitatea Apache-ului se datoreaz (conform specialitilor) in buna msura firmei C2 Software Inc., cea care se ocupa de partea de securitate a serverului si tehnologiei avansate ce este inclusa in acest produs. Apache, ce a pornit ca un set de patch-uri ale serverului NCSA, a fost unul dintre primele ce a implementat protocolul HTTP 1.1. Un alt motiv pentru care Apache este att de larg adoptat este faptul ca este absolut gratuit. Pe Internet sunt disponibile att variante precompilate, cat si sursele complete, utilizatorii putndu-le modifica pentru a rspunde cat mai bine la propriile cerine. Configurarea se poate face la distan i este fcut foarte elegant i uor de folosit prin intermediul unei seciuni protejat prin parol. Accesul la seciunea de administrare poate fi restricionat la anumite adrese de IP. Serviciul FTP nu ofer artificiile puse la dispoziie de WebSite, dar asigur un serviciu robust i sigur. Prin simplitatea utilizrii i configurrii, precum i prin unele faciliti deloc de neglijat, cum ar fi Watcher Demon, care monitorizeaz activitatea serverului detectnd o eventual oprire neprevzut, este un server demn de luat n seam.

Dezavantajele

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

20

Avantajele Este server gratuit Apache este considerat clasic pentru Unix platform Securitatea avansata Administrarea mai complicata decit la IIS 2.4 Alegerea instrumentarelor pentru realizarea AEP Analiza efectuat n pp. 2.1-2.3 arat la opotunitatea folosirii pentru crearea AEP a serverului Apache, limbajului Perl i SGBD MySQL. Soluia cea mai uor de folosit pentru server (i cea mai ieftin) este Apache. Gestiunea unui site propriu sau chiar paginile mai multor utilizatori, configurarea avansat, gratuitatea lui face oportun folosirea acestuia. Acesta ofer un control riguros asupra activitii serverului i este produs considerat clasic pentru platform Unix. Acest pachet este gratis si ofer tot ce-i poate dori un creator de pagini de web moderne, necesitnd ns i ceva resurse suplimentare n ceea ce privete cerinele de sistem. Din SGBD descrise mai sus este cel mai bine de utililizat serverul MySQL care este cel mai comod pentru aplicaii mijlocii ( defapt asistentul electronic este o aplicaie mijlocie dup mrime ) si are versiunea sub Unix ( FreeBSD ). Este un SGBD care are facilitai destule pentru aplicaia noastrre i economiselte n acelai timp resursele utilizate de el. In afara de ceasta el este oferit pe gratis si necesita cheltuieli suplimentare. Limbajul Perl este un limbaj clasic pentru CGI programarea si este susinut de toi provaiderii hostingului sub SO Unix. El ne ofer toate facilitatile necesare pentru aceasta si trecerea de la alte limbaje nu este complicata In aa fel noi am ales instrumintariul soft in total gratis ce ne evita de la cheltuieli suplimentare materiale si ne ofer capacitatile si facilitatilti bune si destule pentru programul AEP.

Dezavantajele

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

21

3. FUNDAMENTELE PROGRAMRII CGI N LIMBAJUL PERL 3.1 Protocolul HTTP HTTP este protocolul care sta la baza World Wide Web, si limbajul in care comunica web serverele si browserele. Orice comunicare in HTTP se petrece sub forma de cerere-rspuns, ceea ce ne permite sa ne referim la comunicare ca la o discuie. O aplicaie client trimite cereri ctre aplicaia webserver, la care acesta da replica prin rspunsuri. Limbajul HTTP este in format text, cu toate ca o transmisie poate conine si informaie binara. O aplicaie webserver asculta pe un port si asteapta conexiuni. Este folosit de obicei portul 80. La detectarea unei cereri creeaz un proces-copie a sa, care ncepe sa discute cu clientul. Programele-client, pe de alta parte, initiaza conexiuni cu un server pe un anumit port, unde tiu ca asculta o aplicaie webserver. Daca aceasta intr-adevr se afla acolo, ncep sa discute cu ea. Transmisiile constau din comenzi si parametri HTTP, sub forma de linii de text, sau prti de informaie. Orice transmisie conine obligatoriu, in aceasta ordine: 1) linie text reprezentind tipul cererii, sau statutul rspunsului, in funcie de tipul transmisiei (cerere/raspuns) 2) multiple linii de text numite directive, constituind comenzi si parametri HTTP 3) linie libera, care anuna sfirsitul directivelor 4) prti de informaie, fie binara fie text O transmisie poate fi alctuita exclusiv din directive, sau poate conine o parte de informaie, numit entitate. Prezenta unei entitati in transmisie nseamn de obicei ca o seama de directive speciale snt si ele prezente, oferind informaii despre acea entitate. Directivele pot fi directive cerere, directive rspuns, directive entitate, sau directive cache. O directiva se compune dintr-o comanda urmata de parametri separai prin virgule sau punct si virgula. 3.1.1 Directive cerere Linia de debut a cererii Este prima linie trimisa ntotdeauna de un program client ctre server. Este formata astfel: Metoda URL-resursa Versiune-HTTP

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

22

GET /index.html HTTP/1.1 Nu este permisa impartirea acestei directive pe mai multe linii, ca in cazul celorlalte directive. Metoda Descrie tipul cererii, care poate fi OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT: GET: Cere o resursa (oricare ar fi tipul sau) de la server. HEAD: Identic cu GET, insa serverul rspunde doar cu directivele, fara sa trimit si o entitate. Metoda este folosita pentru a verifica disponibilitatea unei resurse fara a transfera efectiv acea resursa. POST: Cere ca serverul sa accepte entitatea inclusa in cerere. Daca serverul Indica o resursa pe server, mai precis un fiier indicat fie in forma absoluta http://www.server.dom/cale/fisier fie in forma relativa (/cale/fisier). Versiune-HTTP Este de forma HTTP/V.v, unde V este versiunea majora, iar v versiunea minora. In mod curent HTTP a ajuns la versiunea 1.1, dar si 1.0 sau 0.9. snt versiuni valide. Omisiunea versiunii face serverul sa asume automat versiunea 0.9 (sau cel puin aa se recomanda). Practic, majoritatea serverelor aflate in funciune snt versiuni mai vechi sau care se conforma mai puin standardului, prin urmare atunci cind nu suntem siguri, probabilitatea cea mai mare de reuita o avem folosind HTTP 1.0 pentru comunicare. Host Aceasta directiva identifica serverul cruia i se adreseaz cererea. Aceasta identificare e folosit cu un server DNS si poate fi un nume sau un IP. De menionat ca NU se precizeaz protocolul (ceea ce ar fi redundant), ci doar serverul: Host: http://www.server.com e greit, Host: www.server.com e corect. Prezenta unei directive Host este obligatorie intr-o cerere. User-Agent Identifica programul client (browser). Browserele isi furnizeaz in acest mod numele, versiunea si sistemul de operare. Alte amnunte snt furnizate ocazional, cum ar fi cazul in care un browser este o varianta intr-o anumita limba a unui browser original. Referer URL-resursa

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

23

Programul client specifica astfel documentul de la care a obinut legtura spre cererea curenta. Acest cimp nu va fi specificat daca utilizatorul a introdus URL-ul de la tastatura sau in alt mod. Cimpul apare NUMAI daca utilizatorul a urmat o legtura prezenta intr-un document. 3.2.2 Directive rspuns Linia de debut a rspunsului Este prima linie trimisa de server in cadrul rspunsului. Este de forma: Versiune-HTTP Cod-statut Fraza-motiv. Nu se permite impartirea acestei directive pe mai multe linii. Cod-statut si Fraza-motiv Cod-statut este un cod numeric de trei cifre, reprezentind situaia cererii, iar Fraza-motiv este un text care ofer o scurta explicaie in legtura cu acel cod. Prima cifra a codului reprezint clasa rspunsului: 1xx: Informaional - cererea a fost primita, procesarea continua 2xx: Succes - aciunea a fost primita, inteleasa, si acceptata 3xx: Redirectare - aciuni suplimentare snt necesare pentru procesarea completa a cererii 4xx: Eroare client - cererea conine greeli, sau cererea nu poate fi satisfcuta 5xx: Eroare server - cererea era valida, dar serverul nu a reuit sa o satisfac 200 OK 401 Unauthorized 403 Forbidden 404 Not Found 500 Internal Server Error Orice alte perechi de cod-explicaie pot fi folosite de server, atita timp cit codul nu exista deja, iar clasa ramine 1-5. Programul client nu trebuie sa inteleaga toate codurile posibile, ci este obligat sa inteleaga si sa reacioneze doar la clasa lor. Location Anuna redirectarea cererii spre o alta resursa, identificata printr-un URI. Server

Perechile cod principale implementate de HTTP/1.1:

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

24

Conine informaii despre programul-server. Este similar cu User-Agent, si va conine in mod uzual denumirea programului, versiunea, sistemul de operare, si eventual amnunte suplimentare. 3.2 Interfaa CGI CGI este descrierea prescurtata de la denumirea Common GateWay Interface si si descrie partea web-serverului care poate sa interactioneze cu alte programe care se executa pe acest server, si in acest sens este o punte (gateway) intre programe executate pe server aa ca SGBD, tabele electronice si programe client (browser).CGI definete un mediu n care orice proces este rulat de ctre serverul de Web. Un proces rulat de server poate fi scris n orice limbaj de programare. Programe CGI este mai uor s le scriem n limbaje interpretate, numite "limbaje de scripting" (unul dintre ei si Perl ). Interfaa CGI redirecteaz datele de intrare ctre un proces rulat de server i intercepteaz datele de ieire ale acestuia. In linii generale shema de lucru a CGI e alctuita din urmtoarele elemente 1) Primirea de ctre web servere informaiei de la programa-client. Pentru transmitea datelor de la client in limbajul HTML exista noiune de forme. Forma este introdusa in pagina web cu ajutorul tegului <FORM> </FORM> si este compusa din cimpurile ,care in browser se afiseasa ca elemnetle de control : cimpuri text, radio butoane, chakbox etc. 2) Analiza si prelucrarea informaiei primite . datele extrase din HTML snt se transmit la CGI-programa. Datele nu ntotdeauna snt prelucrate nemijlocit numai de programa CGI, ci pot retransmite la rindul sau ctre alta programa ( de exemplu interogarea ctre o baza dde date, pecareo CGI programa nu poate citi. In acest caz programa CGI formeaz interogarea cu ajutorul oricrui limbaj de programarea, care are mijloace de intershimb a informaiei cu alte programe. In sistemul Unix cel mai des este folosit limbajul Perl, iar SO Unix este socotit ca cel mai raspindit ca web-platforma , se poate de spus ca Perl este cel mai raspindit limbaj pentru CGI programarea. Programe in Perl prezint o succesiune de operatori care snt executate unul numesc CGI scenarii , sau SGI sripturi. 3) Crearea unui nou HTML document si trimiterea lui la brouser . dup prelucrarea informaiei programa creaza un HTML dynamic ( cum se mai spune si virtual ) si il tranmite la web server prin input. Web-server la rindul sau transmite acesta informaie catre client. dup altul de ctre interpritatorul Perl fara a transforma codul sursa in cod executabil binar. Din aceasta cauza CGI programe se mai

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

25

3.2.1 Schimbul de informaii

Cnd scriem scripturi CGI, crem de fapt un program care va rula ca un subproces al serverului Web. Trebuie s gsim o modalitate pentru ca scriptul nostru s primeasc informaii de la server. Exist cteva metode care sunt folosite pentru a transmite informaiile ctre scriptul care ruleaz. Prima modalitate este folosirea parametrilor. Scripturile CGI nu folosesc parametri aa cum sunt folosii n alte programe, pentru c aceast modalitate trebuie sa fie specifica unui system de operare anumit, iar standardele pentru transmiterea de parametri ctre programe sunt prea restrictive. A doua metod de a transmite date ctre procesul fiu este prin variabile de mediu : o serie de perechi de forma nume=valoare sunt motenite de procesul fiu de la printe n momentul n care procesul fiu este creat. UNIX-ul folosete de obicei variabile de mediu pentru a pstra informaiile utile n context global, punndu-le astfel la dispoziia proceselor. Structura nume=valoare a variabilelor de mediu se potrivete foarte bine cu datele care vin din formularul (form) pe care utilizatorul l-a ncrcat n navigator. Fiecrui cmp de intrare de pe formular poart un nume i va primi i o valoare furnizat de ctre utilizator. Valoarea trebuie s fie legat de numele cmpului i perechea s fie trimis serverului Web. O alt metod de a trimite date ctre procesul fiu este s scriem informaiile ntr-un fiier i s specificm procesului fiu s citeasc datele din acesta. Aceast tehnic este frecvent utilizat n redirectarea de tip shell. Shell-ul lanseaz comanda i redirectioneaza rezultatul comenzii ctre o intrare standard 3.2.2 Variabilele de mediu CGI Cnd un client trimite serverului Web o cerere care are drept rezultat execuia unui script, serverul va prencrca mai multe variabile de mediu, pe care scriptul CGI le va moteni i pe care le va putea consulta. Anumite variabile de mediu sunt considerate pri "standard " ale protocolului CGI. Serverul poate s defineasc i alte variabile de mediu

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

26

Un server HTTP transfera informaii unui scenariu CGI utiliznd argumente de linie de comanda si variabile de mediu. Serverul atribuie valori varibilelor de mediu cnd executa un scenariu. In continuare snt prezentate cele mai importante dintre aceste variabilele lor. Aceste variabile pot fi mprite n trei categorii. n primul rnd, sunt variabile care comunic scriptului date despre serverul pe care ruleaz. De exemplu, scriptul poate afla numrul portului pe care l folosete. dac avem doi serveri n paralel care folosesc aceeai arbore de surs, da n al doilea rnd, sunt i cteva variabile care furnizeaz scriptului informaii de baz despre programul client (de obicei un browser Web) i despre sistemul care a formulat cererea pentru date. Astfel, de exemplu, scriptul poate s identifice adresa IP a clientului sau tipul navigatorului. Dar pe de alt parte, nu poate identifica nici persoana, nici adresa de e-mail a acesteia. n al treilea rnd, sunt variabile care conin informaii despre tranzacia curent. Precum am mai spus, HTTP folosete protocolul MIME pentru a schimba informaii. Tipul MIME este pus la dispoziia scriptului n variabila CONTENT_TYPE. Mai jos snt descrise cele mai principale variabile de mediu Variabila AUTH_TYPE Variabila AUTH_TYPE este folosita pentru autentificarea unui utilizator care ncearc sa obtina acces la un scenariu. Daca serverul este configurat pentru a permite autentificarea utilizatorilor, utilizatorul care ncearc sa obtina ace la un scenariu CGI trebuie sa furnizeze un nume de utilizator si o parola valida. Variabila CONTENT_LENGTH Variabila este folosita pentru a determina numrul exact de octei coninut in daele ataate Variabila CONTENT_TYPE Scenariile CGI utilizeaz variabila de mediu CONTENT_TYPE pentru interogri care au ataate informaii, de exemplu o operaie HTTP de tip POST. Informaia coninuta specifica tipul atasamentelor (MIME tip/subtip). Variabila GATEWAY_INTERFACE Scenariile CGI utilizeaz variabila de mediu GATEWAY_INTERFACE pentru a determina numrul de revizie al specificaiei CGI cu care lucreaz serverul Web. Formatul numrului de revizie al specificaiei CGI este: CGI/numar revizie. Variabila PATH_INFO

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

27

Variabila PATH_INFO poate fi utilizata pentru a obine numele de cale virtuala al scenariului. Variabila PATH_TRANSLATED Variabila PATH_TRANSLATED poate fi utilizata pentru a obine numele complet de cale al scenariului. Variabila QUERY_STRING Scenariile CGI utilizeaz variabila QUERY_STRING pentru a primi informaii de tip text care urmeaz dup caracterul semnul ntrebrii (?) in URL-ul specificat de utilizator pentru lansarea scenariului. Serverul va nlocui toate caracterele speciale cu caracterele "%aa" ude "aa" este o cifra in baza 10, iar spaiul il va nlocui cu "+". Deci scenariul trebuie sa contina instruciuni pentru decodarea irului de caractere. Variabila REMOTE_ADDR Folosind variabila REMOTE_ADDR un scenariu CGI poate afla adresa IP a unui browser care efectueaz o cerere. Variabila REMOTE_HOST Folosind variabila REMOTE_HOST un scenariu CGI poate afla numele unei gazde care efectueaz o cerere. Variabila REQUEST_METHOD Folosind variabila REQUEST_METHOD un scenariu CGI poate afla tipul de cerere HTTP pe care browser-ul a trimis-o serverului pentru apelarea unui scenariu, de exemplu GET, HEAD sau POST. Variabila SCRIPT_NAME Scenariile CGI folosesc variabila SCRIPT_NAME pentru a determina calea virtuala ctre scenariul care va fi rulat pe server. Variabila SERVER_NAME Folosind variabila SERVER_NAME se poate determina numele de gazda al unui server Web, numele unui domeniu sau o adresa IP. Variabila SERVER_PORT Folosind variabila SERVER_PORT se poate afla numrul portului utilizat de browser pentru conectarea la serverul Web. Variabila SERVER_PROTOCOL Folosind variabila SERVER_PROTOCOL se poate afla numele si numrul de revizie al protocolului utilizat de browser pentru a trimite o cerere ctre serverul Web. Variabila SERVER_SOFTWARE
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

28

Folosind variabila SERVER_SERVER se poate afla numele si numrul de revizie al serverului de Web folosit. Variabila HTTP_USER_AGENT Folosind variabila HTTP_USER_AGENT se poate afla numele si versiunea browser-ului folosit de client. 3.2.3 Metode de transmitere a datelor Exist dou variante de a trimite ctre serverul Web informaia culeas ntr-un formular care apeleaz un script CGI: GET i POST. Parametrul METHOD specific alegerea fcut la implementarea formularului n pagina Web. Fiecare metod folosete o cale diferit pentru a trimite informaiile din formular la server, n momentul n care butonul submit este apsat. Denumirile GET i POST se refer la comenzi din protocolul HTTP. Cnd navigatorul cere o pagina obinuit, trimite o cerere de genul: GET /main.html HTTP/1.1 Cererea de mai sus i solicit serverului pagina "/main.html" i i indic faptul c este capabil s fac fa versiunii 1.1 a protocolului HTTP. Dac totul este normal, atunci serverul va rspunde cu un mesaj care conine datele corespunztoare. Cnd navigatorului i se spune s trimit datele de pe formular folosind o cerere de tip GET, acesta va trimite cererea adugnd la sfritul URL-ului un semn de ntrebare i coninutul formularului. Se creeaz un URL, extins coninnd adresa paginii i parametrii care trebuie trimii scriptului (de exemplu http://www.domeniu.dom/cgi-bin/script.pl? nume=Ion&tel=132474). Dac sunt foarte multe perechi nume=valoare n formular sau dac valorile sunt mari, atunci aceast cerere iniial ctre server poate fi prea mare iar serverul nu i va putea face fa. La fel, cnd URL-ul este procesat de server, orice ir de caracter urmat de un semn de ntrebare ajunge ntr-o variabil de mediu (QUERY_STRING), care este pus la dispoziia scriptului CGI. Este de dorit s se limiteze spaiul ocupat de variabilele de mediu. Astfel, pentru formularele mai mari este de preferat metoda POST. n acest caz, datele din formular nu sunt trimise ca parte a URL-ului, ci sub forma unui fiier codat cu standardul MIME nglobat n corpul mesajului trimis ctre server. Datorit faptului c datele sunt trimise codat MIME, serverul tie mrimea i tipul datelor i va trece aceste valori n script folosind variabila de mediu CONTENT_LENGTH i CONTENT_TYPE. n plus, scriptul ateapt s se citeasc setul de parametrii trimis din formular de pe canalul su standard de intrare. Este de datoria serverului s
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

29

asigure ca datele trimise de ctre navigator s fie puse la dispoziia scriptului, gata de a fi importate i scanate pentru perechile nume=valoare. Exist ns o complicaie att pentru GET ct i pentru POST. HTTP este un protocol de tip text i c folosirea textului pentru a transporta informaii are problemele ei. Se ntmpl des ca ntr-o aplicaie de text s trebuiasc sa foloseasc caracterul dou puncte (":") pentru a separa diferitele informaii despre utilizator, cum ar fi parola, numele, iar acest lucru nseamn c nu putem avea un nume de utilizator care s conin caracterul dou puncte Pentru a evita acest lucru, protocolul HTTP folosete o metod de decodare ca s asigure faptul c informaia rmne intact n urma transmisiei. Pentru a codifica datele folosite n URLuri, caracterele spaiu sunt nlocuite cu semnul plus ("+") i toate celelalte caractere care nu sunt alfanumerice sunt nlocuite cu semnul procent ("%") urmat de codul hexazecimal al caracterului. ntr-un mesaj POST sau GET, datele din formular sunt trimise folosind aceast metod de codificare. Numele cmpurilor i valorile sunt codate i fiecare pereche este transformat ntr-un ir de caractere nume=valoare, aceste iruri de caractere fiind apoi concatenare ntr-un singur ir, n care perechile sunt separat de caracterul "&". De exemplu, un formular cu metoda POST care conine dou variabile NAME i PHONE i va trimite data astfel: NAME=Joe&PHONE=1274 Metoda GET va aduga acest ir de caractere la URL, dup semnul de ntrebare, n timp ce metoda POST va transmite datele ca o parte a protocolului HTTP, urmnd ca scriptul s le citeasc de pe canalul su standard de intrare. Un exemplu de interogarea HTTP dup metoda POST este mai jos POST /cgi-bin/script.pl HTTP/1.1 Accept: images/gif, image/x-xbitmap, image/jpeg, image/pjepeg, */* Accept-Language: en-us,ro;q=0.5 Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 4.0; Windows 95) Host: www.domain.com Content-Length: 41280 Connection: Keep-Alive Pragma: no-cache Name=John&tel=1274

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

30

3.2.4 Rspunsul dat de script Datoria serverului Web este de a trimite rspunsuri la cererile clienilor. Scripturile CGI sunt utilizate de regul pentru a colecta date din diverse surse (de obicei baze de date, fiiere locale etc.), a le grupa, a le formata i, n fine, a le trimite clientului care le-a solicitat. Serverul Web aranjeaz lucrurile n aa fel nct ieirea standard a scriptului s fie redirecionat ctre navigatorul clientului. Totui, datele trimise de ctre script trebuie s fie codificate prin standardul MIME, astfel nct un script trebuie s porneasc prin trimiterea unui antet (header) MIME care specific tipul datelor care vor urma, antetul care este separat de informaia codat printr-un rnd liber. Dac v-om examina un script scris n PERL care returneaz o pagin HTML-ul, sunt anse mari ca acesta s nceap o linie de forma: Print "Content-type:text/html\n\n"; Prin aceasta se specific faptul c datele care urmeaz reprezint cod HTML. Observai c apare un rnd liber n plus dup aceast afirmaie, pentru a separa antetul de corpul mesajului. Antetul fiind trimis, scriptul poate s transmit linitit Trebuie s plasam acest script n cgi-bin-ul nostru i s s-al denumim - s zicem - plan. Scriptul este executat de shell. Folosim perechea standard de caractere magice la nceputul fiierului ( #!) pentru a comunica sistemului c acesta este un fiier executabil. Pentru a rula, scriptului trebuie s-i setm drepturile de execuie prin comanda chmod +x plan Deoarece scriptul CGI returneaz o parte informaiile trimise prin protocolul HTTP ctre browser, este uor s-l determinm s foloseasc capaciti speciale ale acestuia. De exemplu, se pot crea pagini n care s spunem: "Mulumesc pentru introducerea datelor" i s instruim navigatorul s atepte 10 secunde i apoi s se conecteze la o alt adres, de exemplu la pagina de intrare a serverului (sau, eventual, la pagina pe care utilizatorul o vizitase nainte s nceap s completeze formularul). 3.2.5 Decodarea argumentelor CGI Exista citeva metode de codarea datelor care se conin in forma Metoda standard application/x-www-form-urlencoded care se folosete in caz daca nu indicam o oricare alta Alta metoda multipart/form-data , care este necesar in cazul in care vrem sa tranmitem la server fiier de pe discul local ales cu ajutorul elementului <INPUT TYPE=FILE >

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

31

Scriptul citete civa octei de pe canalul lui standard de intrare, unde serverul Web plaseaz valorile metodei POST . Programul tie ci octei trebuie s citeasc deoarece poate s examineze variabila de mediu CONTENT_LENGTH. Folosind limbajul Perl, toate variabilele de mediu pot fi interogate folosind vectorul asociativ ENV. Datele citite sunt stocate ntr-un ir care apoi este separat ntr-un vector folosind caracterul "&" ca separator. Avem acum cteva iruri de caractere nume=valoare de care avem nevoie n continuarea procesului. Separm fiecare dintre parametrii irului de caractere n dou variabile la semnul = i aplicm rutina de decodare URL la a doua variabil. n cele din urm se depoziteaz argumentele ntr-un vector asociativ (HASH), astfel nct valorile unui cmp pot fi accesate prin cod folosind: If ($FORM{nume} eq "") Un vector ntr-un limbaj de programare este un obiect care poate deine mai multe valori i noi n mod normal accesm aceste valori utiliznd un index numeric. Vectorii asociativi (HASH) sunt potrivite pentru depozitarea parametrilor din formular, pentru c ele permit s accesm valorile folosind partea de nume a perechii nume=valoare. Afirmaia $FORM{"nume"} va spune: FORM este un vector asociativ i noi vrem s aflm valoarea care este asociat irului "nume". 3.3 Descrierea mediului de programare Perl 3.3.1 Descrierea generala Limbajul Perl este un limbaj interpretat - compilat n timpul ncrcrii. Iniial a fost scris de ctre Larry Wall pentru a uura nite sarcini administrative, fiindc nu a vrut s foloseasc alte programe care aveau limitri nsemnate. Limbajul se poate nva foarte uor deoarece conine elemente bine cunoscute din alte limbaje. Se pot scrie programe eficiente cunoscnd doar o mic parte a limbajului, iar programele pot fi testate imediat datorit execuiei foarte rapide a acestora. La baza programrii stau unelte ca C, sed, awk si sh n Perl, munca programatorului este limitat doar de capacitile hardware ale calculatorului. Un ntreg fiier poate fi citit ntr-o singur variabil de tip string si putem apela funcii recursive de orice adncime (dac avem destula memorie). Totodat, Perl are un mecanism foarte eficient de cutare si nlocuire ntr-un text dup un model dat (iniial era

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

32

conceput pentru prelucrarea fiierelor de tip text, aa cum arat si numele lui Practica Extraction and Report Language). De la versiunea 5 putem folosi deja programarea modular si programarea orientat obiect. n Perl programele setuid sunt mult mai sigure dect n C datorit unui mecanism care urmrete evoluia datelor, acesta putnd fi activat cu ajutorul parametrului -T n linia de comand. Astfel, apeluri de sistem care necesit o securitate mare nu vor fi executate, dac se bazeaz pe informaii primite de la utilizator. Cu ajutorul acestui limbaj se pot scrie foarte uor programe CGI (Common Gate Interface), ale cror rezultate de obicei apar ntr-o pagina WWW, singurul lucru la care trebuie s avem mare atenie este securitatea sistemului nostru, adic serverul pe care vor rula aceste programe. Ca i n alte programe, i n Perl mediul n care ruleaz un program CGI poate fi controlat ntr-o mare msur. Iniial acest mediu este setat de ctre serverul Web, care poate fi acelai cu mediul serverului sau modificat doar pentru programe CGI (aceasta depinde de serverul pe care-l folosim). Mediul n care ruleaz un program CGI, poate s schimbe comportamentul programului i rezultatele lui. De exemplu, variabila de mediu PATH este folosit de un program CGI pentru a cuta alte aplicaii care sunt lansate din cadrul programului CGI. Dac variabila PATH era setat la /bin:/usr/bin:/usr/local /bin, i a fost lansat programul ls, atunci programul va fi cutat n aceste trei directoare. Se atept ca programul ls s fie gsit (/bin/ls pe cele mai multe sisteme de operare UNIX). Dac variabila PATH ar fi fost setat la /tmp:/bin:/usr/bin (de ctre server sau de programator), iar noi lucram la un proiect oarecare pe acelai sistem, crend un script temporar numit /tmp/ls, cnd programul CGI caut i lanseaz comanda ls n loc de /bin/ls va rula /tmp/ls care va avea desigur alte rezultate dect cele la care ne-am fi ateptat. 3.3.2 Interfaa Perl cu SGBD MySQL Pentru orice SGBD poate fi gsita biblioteca care ar da posibilitatea sa conectam si sa accesam datele dela acest sistem .Pentru cele mai populare SGBD exista biblioteci care permit accesul cu ajutorul limbajelor C, C++, perl, Tcl, Java etc. Setul de funcii care este dispus in biblioteca se numete API (Application Program Interface ) de conectare la baza de date. Schema de funcionare a intefetei este prezentata in urmtoare shema (Vedei Anexa 2 )

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

33

Exista doua biblioteci de conectare la baza de date MySQL din programe scrise in PERL. In complectatia interpritatorului Perl intra ambele . Biblioteca nativa Perl da posibilitatea sa accesam repede gfunctiile intefetei MySQL fara careva nivele intermediare. Pentru a accesa aceasta biblioteca este nevoie de include in primele rinduri ale scriptului codul. use Mysql; ce include set de funcii Perl in programul nostru. Mai jos sunt prezentate cele mai principale funcii din aceasa biblioteca. Conectare la SGBD MySQL $dbh = Mysql->Connect($host,$database,$password,$user); Funcia data stabilete conecsiune cu serverul SGBD. Parametrii care snt transmise la aceasta funcia snt numele hostului (si poate fi transmis numrul portului ), si denumirea bazei de date la care ne conectam. SGBD MySQL permite a ipri accesul la BD pentru mai muli utilizatori prin mecanizmul de autentificare. Pentru aceasta la conectare se transmite numele utilizatorului si parola. Pentru fiecare utilizator se indica nivelul de permisiune la care putem pune nite restrictii i s restrictm aciunile pe care el poate sa execute ( de exemplu: limitarea numai posibilitatea de citirea datelor pentru utilizatori nepriviligiati si etc. ). Daca hostul nu este indicat adic se las ir vid , aceasta nseamn ca conectare are loc la calculatorul local. Daca nu este indicat numele utilizatului se folosete numele curent. Funcia ntoarce ca valoarea descriptorul bazei de date in caz de reusuita, si valoarea nedefinita in caz ca nu are loc conectare. Din descriptorul primit putem sa extragem informaia despre portul folosit, adresa serverului $scalar = $dbh->sock; $scalar = $dbh->host; Aciunea principala a serverului SGBD este executare comenzilor SQL. Aceasta se face prin funcia $sth = $dbh->Query($sqlsquery) or die $Mysql::db_errstr Funcia de mai sus tremite interogarea SQL ctre baza de date deschisa prealabil , prin folosirea descriptorului bazei de date $dbh. Ca rezultat este ntors set de iregistrari in cazul interogri de selectare sau set vid in caz interogrii de modificare a BD. Este recomandata controlul rezultatului cu ajutorul blocului or die care afiseaza irul cu descrierea erorii.

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

34

Cu rezultatul acestei functi putem sa executam mai multe operaii : sa controlam datele returnate, numrul nregistrrilor modificate, etc. , aproape toate operaiile care permite SGBD. $scalar = $sth->affected_rows; se ntoarce numrul de nregistrri afectate $scalar = $sth->insert_id; numrul ID pentru ultima iregistrarea inserata prin SQL comanda INSERT $scalar = $sth->numrows; numrul de nregistrri in setul rezultat $scalar = $sth->numfields; Numrul de cimpuri in setul rezultat Funcia $sth->DataSeek($row_number) mica cursorul interior la o anumita inregistrarae dup ordine. Setul de iregistrari se acceseaz prin cursorul interior. Este o noiune folosita des in domeniul bazelor de date. Instruciunea @arr = $sth->FetchRow; Inscrie in masivul l @arr nregistrarea urmtore dup ordine. Fiecare element al masivului conine valoarea cimpului respectiv. Elementele din masiv merg in ordine dup care ele snt in interogarea SQL. Dup nscrierea , cursorul interior se mica cu o nregistrarea mai departe. %hash=$sth -> FetchHash( ); In masivul asociativ %hash este nscrisa nregistrarea urmtore dup ordine. Accesarea cimpurilor se face prin $hash{numele cimpului}Dup nscrierea , cursorul interior se mica cu o nregistrarea mai departe. $scalar = $dbh->quote($binary_string); este funcia care controleaz interogarea SQL, daca ea conine simboluri care nu snt permise in interogarea si snt evaluate ca speciale .Ea aduce interogarea la forma corecta. Ai fi de dorit ca toate interogrile formate cu datele obinute de la utilizator sa fie trecute prin aceasta funcia, pentru scopul de securitatea. @arr = $sth->FetchCol($col); ntoarce masivul care conine valorile coloanei $col

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

35

4. CONCEPTUL AEP 4.1. Destinaia si facilitaile AEP Asistentul electronic la prima vedere este o sinteza carnetului de notie simplu si carnetului de adrese, cutiei potale, calendarului si altor atribute necesare omului contemporan. Dar aceasta e numai la prima vederea. Datorita funciilor sale , care snt posibile numai in Internet el poate fi un ajutor pentru utilizator in orice partea a lumii. De ce a fost conceput asistentul electronic ? informaia are proprietea sa acomuleze , a umpla carnetele de notie care se stocheaz in arhiva tot mai mult si mai mult. Deacea cind este nevoie de a aminti detaliile unei sau altei intilniri sau a numrului de telefon apar unele probleme care nu pot fi rezolvate daca ne gsim departe de casa sau oficiul. Aceste probleme nu vor aprea daca vei avea la mina asistentul electronic care nu poate fi pierdut , nu poate fi uitat acas ,deoarece el nu poate fi mutata , el se gaseste la locul sau permanent in Internet . Acum in loc de cutarea lunga in arhivele existente, putem sa visitam asistentul electronic si informaia necesara poate fi gsita in citeva secunde . Aceasta aciunea poate fi fcuta in orice loc pe pamint , principal sa avem calculator cu acsesul la Internet. In afara de accesibilitatea rapida este inca un avantaj- confedentialitatea. In diferena de analogul sau de hirtie asistentul utilizatorului electronic poate fi deschis numai de stapin, si lui poate fi incredintata orice informaia confedentiala. In afara de aceasta asistentul electronic poate fi folosit nu numai ca nlocuitorul carnetului de notie ci si ca secretarul virtual neinsufletit. La dorina utilizatorului el va deveni ajutorul activ, care nu va uita si va aminti de evinementele apropiate in viitor tremitind un mesaj SMS, un mesaj la pager sau la cutie electronica potala. Utilizatorilor asistentului electronic snt prezentate urmtoarele servicii si componente. Calendarul zilnic el da posibilitaea de a compune si a redacta oralul utilizatorului zilnic, saptaminal etc., si a pstra informaia despre evinementele importante a utilizatorului ( de exempu zilele de natere a prietenelor, intilniri etc. ). Pentru fiecre evinementul planificat este posibilitatea de a termite un mesaj de rememorare la telefonul mobil, pager sau adresa electronica in timpul indicat. Calendarul zilnic electronic nu are limitarea de timp, adic evinementele pot fi planificate pe termen de 10 ani . Carnetul de adrese care permite utilizatorului a pstra careva informaii de contact : telefon, adrese email, etc. a mai multor adresai ( fra limitarea numarului lor ). Carnetul de adrese este integrat strins cu cele lalte componente ale asistentului electronic.

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

36

Referine preferate acest serviciu este orientat mai mult pentru utilizatori activi ai Internetului care acceseaz Internet din mai multe calculatore. Acest serviciul permite a pstra centralizat referine la cele mai des vizitate internet-saituri. Referine se organizez in structura ierarhica comoda. Carnetul de notie este un serviciul simplu care permite de a pstra datele de tip text ( careva notie de exemplu ) nu pe hirtie , ci intru-un loc in Internet. Informaia personala- este destul de des cazul cind la alctuirea unor documente oficiale apare necesitate a nscrie numrul paaportului, cartelei de munca sau a altui document , dar el nu este la indemina. In acest caz asistentul electronic l poate ajuta utilizatorului. 4.2 Schema funcional Aplicaia asistentului electronic poate fi mprit funcional n dou pri. Scriptul plan.pl care va executa aproape toate aciunele n aplicaia i scriptul serv.pl care este un script ajuttor . La culegerea adresei secretary.hit.md este executat scriptul plan.pl ( aceasta poate fi configurat la web server ).Acest script execut la nceput toate aciunele necesare de iniializare : conectarea la baza de date, includerea bibliotecelor Perl necesare, decodificarea parametrilor de ntrare. Scriptul ajuttor serv.pl execut urmtoarele aciuni : terge din tabelul Sesions identificatorii timpul crora a expirat, tremite evinementele de avertizare la e-mail, pager, SMS. Informaia care este primit de aplicaie este transmis n dou moduri n dependena de care codificarea am folosit la transmiterea datelor din forme (application/x-www-formurlencoded, metoda multipart/form-data). La nceputul scriptului trebuie de stabilit ce metoda este folosit i de decodificat datele. La realizarea sistemului meu am ales modul de pstrarea a sesiunii cu ajutorul unui identificator Session, acest parametru este dat sesiunii la intrarea n sistem i transmis mai departe prin cmpul ascuns Session . La fiecare executare a scriptului plan.pl este controlat prezena acestui cmp. n caz dac acest cmp nu exist sau nu este prezent n tabelul Session atunci utilizatorul trebuies ntre iari n sistem. Dac utilizatorul nu efectuiaz nici o aciune n timp de 30 minute atunci sesiunea este terminat. Acesta este planificat cu scopul securitii aplicaiei. Scriptul primete informaia despre aciunea care trebuie s fie executat prin cmpul HTML ascuns Action. Acest cmp este obligatoriu prezent in datele de ntrare, n caz dac nu

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

37

exist atunci se ncepe procedura de ntrarea n sistem i apare interfaa de ntrare pentru utilizator pstrat in ablonul login.html. Aciunele care pot fi executate de utilizator snt : ntrarea n sistem sub un nume de utilizator nregistrat i nregistrarea sub un nou nume de utilizator. La ntrarea sub un nume deja exitent este controlat existena acestui nume i veridicitatea parolei. Sesiunii este atribuit un identificator - un ir arbitrar ales la ntmplare, probabilitatea ca irul va coincide cu altul e foarte mic. La nregistrarea se ntroduce un nou utilizator n tabelul Users i se atribuie sesiunii curente un identificator. Dup aceasta se execut aciunea GoToDate de trecerea la calendarul i afiarea evinementelor pe zi curent. La afiarea evinementelor pe o zi i pe o luna n partea de dreapt se afieaz calendarul pe 3 luni. Folosind acest calendar se poate trece la orice data care ne trebuie . La trecerea se transmit paramentele Session, Date, Action, .Unde Date este data la care trecem iar Session este identificatorul sesiunii, care este asignat la intrarea n sistem. Schema aplicaiei permite trecerea la afiarea evinementelor pe sptmna, luna , anul, . La afiarea sptmnii este transmis un parametru Action=showweek, lunei=showmonth, anului=showyear. La primirea unui din aceste parametre este stabilit data de incepere a perioadei i data de sfirit a perioadei pe care am ales. Aceasta se execut de procedurile speciale de manipulare a datei din modulul Date::Manip , un modul standart luat din arhivul organizaiei SPAN. Folosirea acestui modul ne elibereaz de o munca grea la calcularea a numrului de zile n an i luna ,zilele de odihn i etc. Are loc interogarea SQL ctre baza de date pstrat i anume tabelul Tasks. Toate evinementele se afieaz n celula cu data respectiv. La afiarea evinementului este controlat cmpul TYPE a lui i este afiata iconia respectiv . La adugarea unui evinement se transmite si tipul evinementului pentru adugarea . n dependena de acest parametru procedura care afieaz forma alege forma respectiva necesara. La afiarea formei se transmite acest parametru pentru a seta cmpul Type al Taskului . Forma conine toate cmpurile text pentru setarea cmpurilor n tabel .Cmpul mesajului este complectat automat de ctre funciile Java Script pstrate n fiierul plan.pl, . acest script ie datele din cmpurile de mai sus i formeaz textul final. Inserarea nemijlocita se face la apsarea butonului submit si este introdusa nregistrarea in tabel Tasks. In dependenta de dorina utilizatorului mesajul evinementului poate fi codificat in tranliteratie kirilica si este ndeplinit de procedura Transliterate. Aceasta este efectuat pentru utilizatorii echipamentului far susinere grafiei chirilice. Un alt bloc de subrutine rspunde de funcionarea Carnetului de adrese. La primirea parametrului Action=addres se afiseaza toate contactele utilizatorului pstrate in tabelul
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

38

Contacts. Daca utilizatorul alege o litera la care se ncepe adresatul se executa interogarea SQL cu limitarea spaiului de nregistrri rezultante la prima litera respectiva. Alte proceduri efectuiaza adugarea, tergerea, redactarea DeleteContact(), UpdateContact(), EditContact(), AddContact().. 4.3 Cerinele ctre resurse hard si soft Produsul program Asistentul electronic public este elborat pentru lucrul la serverul sub

sistemul de operare FreeBSD. Produsul este elaborat in limbajul de programare interpritabil Perl. Pentru functionarae normala a programului pe server trebuie sa fie instalate urmtoarele modul.e Web-server Apache Serverul bazei da date MySQL SMTP server POP3 server Interpritatorul limbajului Perl Motherboard cu doua procesoare Procesorul Intel Xeon 256 MB memoriei operative Discul fix cu interfaa SCSI cu memoria disponibila 20GB 4.4 Web-server Apache si configurarea lui Servere Apache trebuie sa fie configurat n aa fel nct atunci cnd o cerere HTTP de la navigator solicit un fiier cu extensia "cgi", fiierul nu va fi trimis. n schimb, serverul va verifica dac programul respectiv este executabil i, n caz afirmativ, va rula programul, despre care se poate presupune c are sarcina s genereze date de ieire corespunztoare. Serverul Apache poate fi configurat i n aa fel nct o cerere ctre un fiier aflat ntr-un director anume s se execute ca un script. Acest director special este numit de obicei "cgi-bin". Aceasta este adoptat din motive de securitate. Este periculos s permitem utilizatorului necunoscut s lanseze programe pe maina noastr - chiar dac este vorba de propriile noastre programe - deci majoritatea serverelor limiteaz accesul la scripturile CGI. Este un obicei bun s ascundem scripturile n aa fel nct acestea s fie executabile, dar s nu poat fi descrcate.

Configurarea prtii hardware pentru desrvirea 1000 utilizatori

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

39

Pentru activarea serverului se executa comanda /usr/local/apache/httpd -f /usr/local/apache/conf/httpd.conf Configurarea webserverului se face prin redactarea fisieruelor httpd.conf, srm.conf access.conf. Toate parametri de reglare a fiierului de configurare se mpart in doua grupuri: cele legate cu specificul sistemului (directoria de baza ,adresa IP, etc ) si cele necritice pentru system care pot fi lsate standarte Parametri globali: DocumentRoot directorul de baza ServerRoot directorul unde se afla subdirectoriile principale conf,logs MaxClients numrul maxim de clieni care pot fi deservii de web server User Group grupa si numele utilizatorului de la care vor fi.

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

40

5. PROIECTAREA DE DETALIU 5.1 Crearea bazei de date Modelul de securitate folosit de MySQL se bazeaz pe username/password, hostname si privilegii si este similar celui generic folosit de sistemele Unix. Prin privilegii se inteleg in cazul MySQL operaiunile ce vor fi permise asupra bazei/bazelor de date, tabelelor sau indecilor, cum sunt de exemplu SELECT, INSERT, UPDATE, DELETE, CREATE, DROP. Crearea bazei de date: CREATE DATABASE Secretary ; Acord utilizatoruluiului user cu parola parola care se conecteaz la serverul MySQL de pe orice maina din reeaua dreptul de a face SELECT pe orice tabele din baza de date Clieni: GRANT SELECT ON * TO user IDENTIFIED BY 'parola' ; Folosirea GRANT si REVOKE este notificata serverului imediat si, spre deosebire de acordarea de privilegii cu UPDATE sau INSERT, nu necesita o comanda ulterioara de tip FLUSH PRIVILEGES - care spune serverului sa reciteasc tabelele de permisiuni. Pentru securizarea datelor si a accesului la mysqld se recomanda implementarea politicilor specifice necesare, instrumentele furnizate de MySQL fiind doar o parte din ntreg. Dup crearea nemijlocita a bazei de date trebuie sa cream toate tabelele care snt necesare pentru lucrul apliocatiei. Tabelul Login conine informaia referitor la utililizatorii ( numele, parola, e-mail etc.) CREATE TABLE Login ( Login char(255) DEFAULT '' NOT NULL, Pswd char(255), Question char(255), Answer char(255), Email char(255), PRIMARY KEY (Login) ); Tabelul Session este necesar pentru pstrarea sesiunilor utilizatorului pentru protecia informaiei. CREATE TABLE Sessions ( Session char(48),

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

41

Login char(255), Time int(11) ); Tabelul Tasks conine toate informaia despre evinementele de alerta. In el se pastraza atit codul mesajelor cit aciune ce trebuie sa fie ndeplinita, data si timpul de activare a ei si destinaia (numrul SMS, e-mail ,etc. ) CREATE TABLE Tasks ( ID int(11) DEFAULT '0' NOT NULL auto_increment, Login varchar(255), Date date, Time time, Category varchar(255), Description blob, RemTime datetime, Email varchar(255), SMS varchar(255), Operator varchar(255), Pager varchar(255), Message varchar(255), PRIMARY KEY (ID) ); In tabelul Dates se meemioreaza evinementele sistemului. Anume din acest table ie informaia cal;endarul. CREATE TABLE Dates ( ID int(11) DEFAULT '0' NOT NULL auto_increment, Login varchar(255), Day int(11), Month int(11), Year int(11), Category varchar(255), Description blob, PRIMARY KEY (ID) ); Bookmarks e tabelul pentru componenta Favorites si conine referinele la resurse web
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

42

CREATE TABLE Bookmarks ( ID int(11) DEFAULT '0' NOT NULL auto_increment, Login varchar(255), Code varchar(255), Type int(11), Path varchar(255), Title varchar(255), Description blob, PRIMARY KEY (ID) ); Tabelul Personal conine informaie adugtoare despre utilizator adic numele,prenumele, telefon, email si etc. necesar pentru funcionarea AEP. CREATE TABLE Personal ( Login char(255) DEFAULT '' NOT NULL, Name char(255), Lastname char(255), Email char(255), SMS char(255), Operator char(255), Pager char(255), IDcart char(255), Passport char(255), Drivers char(255), AutoPassport char(255), Insurance char(255), Bank char(255), Blood char(255), Info BLOB, PRIMARY KEY (Login) ); Componenta carnetul de adrese folosete aceasta table pentru pstrarea contatelor si adresatelor CREATE TABLE Contacts ( ID int(11) DEFAULT '0' NOT NULL auto_increment,
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

43

Login varchar(255), Lastname varchar(255), Name varchar(255), Email varchar(255), Phone varchar(255), Work varchar(255), Mobile varchar(255), Operator varchar(255), Pager varchar(255), Fax varchar(255), Address blob, http varchar(255), Info blob, PRIMARY KEY (ID) ); Utilitatea publicarii pe WWW din baze de date apare, printre altele, pentru companiile care au sedii, depozite sau puncte de lucru dispuse in diverse locaii geografice distincte, unde accesul la Internet este totui disponibil pe baza unui cont de dial-up. Aceste companii pot dori, de exemplu, ca o baza de date centrala a firmei sa fie accesibila pe web angajailor si, care sa introduc si sa extrag unele date aferente operaiunilor zilnice. Raportarea sau introducerea datelor se poate face difereniat, in funcie de privilegiile per utilizator, si intr-o maniera sigura, mpiedicnd furtul de date confideniale, daca se aleg soluii de securizare potrivite. Costul final al unei aplicaii de acest tip este compus numai din tariful perceput pentru servicii de web hosting de ctre orice Internet Service Provider si de costul de dezvoltare. Produsele software menionate in articol (Linux, Apache, interpretorul PERL, MySQL) sunt disponibile gratuit pentru uz comercial/non comercial, intern (MySQL este disponibil gratuit pentru uz intern pe sisteme de operare non-Microsoft). Doar in cazul MySQL, pentru uz comercial este posibil sa fie nevoie de o taxa modica de liceniere precizri pot fi gsite in manualul MySQL

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

44

5.2. Utilizarea programului

Pentru nceputul lucrului cu asistentul electronic este necesar de culege in browser adresa asistentului in Internet -(http://secretary.hit.md). Dup ncrcarea primei pagini a asistentului elctronic pagina autinteficarii utilizatorului utilizatorul trebuie sa introduc in cimpurile respective numele de nregistrare si parola pentru accesul la system.

Figura 1. Intrarea in sistem Daca utilizatorul nu este inregistrat in sistem el poate pe aceiai pagina sa treac prin procedura simpla ( conine numai trei cimpuri ) de nregistrare . Dup nscrierea informaiei de autentificare si apsarea butonului respectiv utilizator va intra in sistem. Pentru trecerea in diferite prti ale asistentului electronic trebuie sa folosim panelul de navigare care se afla in partea de sus a paginei. Dup intrarea in sistem vom putea sa lucram cu asistentul electronic un timp nelimitat , dar daca in timpul 30 de minute utilizatorul nu va apasa nici o referina, atunci conectarea la server se va intererupe in scopurile securitatii si pentru continuarea lucrului trebuie ca utilizatorul sa intra in sistem inca o data. Tot in scopul securitatii se recomanda la terminarea lucrului sa apasati referina Logout pe panelul de navigare.
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

45

5.2.1. Calendarul La prima deschiderea a calendarului el va afia toate evinementele planificate pe ziua curenta . Pentru afiarea evinementelor pe luna , saptamina , anul trebuie sa apasam referina respectiva .Pe urma vom putea uor sa trecem la evinementele zilei curente. Evinemente care au loc fiecare an ( zilele de natere, aniversari, srbtori etc. ) se afieaza in partea de sus prin butoane mari cu descripia respectiv. Pentru tergerea astfel de evinementelor din calendar trebuie sa apasam pe butonul de dreapta in fata evinementului respectiv ( pe el este semnul crucii ) si sa confirmai stergerea prin apsarea butonului OK in fereastra de dialog ce va aprea . Evinementele care au fost planificate pe ziua concreta ( intilniri, adunri, calatorii, etc. ) se afiseaza pe ecran prin imaginea mai mica care caracterizeaz evinement, timpul , si descrierea lui. In cazul in care pentru evinement este aplicat serviciul de amintire , in partea dreapta va fi pictograma respectiva tipului echipamentului la care va fi tremis mesaj ( telefon mobil , care conine timpul de tremitere a mesajului, numrul de telefon, pagerul, sau adresatului , va fi afiat si mesajul respectiv. Tabelul 1 Pictogramele folosite Aniversarea; Zi de naterea Intilnirea Adunarea Calatorii Serata Pltirea contului Tipul de darea a lucrului Alte evinement pager , e-mail) Daca trecem cu mousul deasupra pictogramei vom vedea informatia pentru sugerarea, e-mailul

Daca vom alege afiarea evinementelor pe careva an, vom vedea calendarul pe an unde ling zi in care este planificat un evinement, se afla pictogramele a evinementelor respective . Daca trecem cu mousul deasupra pictogramei va aprea informaia de sugerarea care descrie evinementul respectiv. Apasind pe denumirea lunii vom trece pe pagina dorita in careva fi afiata evinementele pe luna respectiva, iar apasind pe data respectiva vom vedea evinemente pe ziua aceasta. Pentru planificarea unui evinement trecem cu mausul deasupra inscripiei Adugarea evinementelor in partea de sus a paginii. Din meniul care va aprea alegem referina respectiva : zi de natere, intilnirea, calatoria, etc. Forma care va aparea trebuie sa completam.

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

46

5.2.2 Completarea formelor Daca vom introduce informaia despre zi de natere, atunci in cimpul Zi de natere va fi indicata virsta acestei persoanei . Analogic va fi prelucrata informaia despre aniversarea. La introducerea informaiei despre careva evinement ( intilnirea, adunare, calatorie, etc. ) in timpul complectrii va fi generata descrierea evinementului si textul informaiei pentru aviz. Deacea se recomanda in cimpurile de introdus informaia in declinarea respectiva cimpului. De exemplu, in cimpul Cu cine va fi intilnirea trebuie sa introducei cu Ivanov Sergiu. In acest caz in cimpul descrierii evinementului va fi generat textul Intilnirea cu Ivanov Sergiu. Analogic va fi generat textul avizului de avertizare 2001-08-05 10:00 Intilnirea cu Ivanov Serioja.In orice caz textul in cimpul Descrierea si Textul mesajului trebuie sa redactam numai nainte de salvarea formei.

Figura 2. Adaugarea evinementelor Pentru tremiterea mesajelor de avertizare despre careva evinement trebuie in cimpurile respective sa alegem data si timpul tremiterii mesajului iar dup aceasta sa setam chekbox care corespund email, telefonului mobil, sau pagerul. Dup aceasta introducem adresa si numrul de telefon la care va fi tremis mesajul de avertizare in cimpul corespunztor. Numarul telefonului mobil trebuie de introdus in formatul internaional fara delimitatori si spaiu liber adic "+3739xxxxxx" , atrgem atenia ca daca in rubrica Informatia personala am introdus email, numrul teelfonului mobil , sau pagerului , atunci ele vor aparea in cimpurile respective ale formei. Daca textul mesajului generat nu ne satisface , atunci nainte de salvare putem sa-l redactam. Checkbox A transla mesajul in transliterare trebuie sa setam in caz daca echipamentul la care va fi tremis mesajul nu corect afieaza simboluri chirilice.

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

47

Orice nregistrarea fcuta putem in viitor sa redactam sau sa stergem. Pentru aceasta trebuie sa apasam pe referina a redacta, sau a terge, care se gsesc sub descrierea evinementului respectiv. 5.2.3 Carnetul de adrese La deschiderea carnetului de adrese vom vedea lista tuturor contactelor care se gasesc in el. Pentru afisarea numelor care se incep cu o anumita litera, apasam referina respectiva in partea de sus a paginii. Pentru a introduce coordonatele unei persoane sau a organizaiei, apasam pe refirinta, Adugarea contactului. Numele si informaia poate fi introdusa atit cu grafia chirilica cit si latina. Redactarea si tergerea nregistrrilor se face cu ajutorul referinelor redactarea si stregerea . 5.2.4 Referine preferate In acesta partea putem sa pastram adrese paginelor care ne intereseaz. Pentru nceput formam lista temelor care ne intereseaz. De exemplu avem nevoie sa pastram adresese serverilor, dedicate Moldovei. Pentru aceasta trebuie sa apasam referina Adugarea catalogului in partea de dreapta sus a paginii. In forma care apare introducem cimpul denumirea directorului Moldova iar pe urma daca dorim si cimpul descrierea .

Figura 3. Referine preferate Descrierea se va conine in informaie de sugestie , care apare la micarea cursorului deasupra denumirii directorului. In cimpul In care directorul sa pastam directorul ?alegem directorul printe pentru directorul nou creat. Dapa aceasta apasam referina Pstrarea, dup aceasta vom fi transferai la pagina principala referinelor, unde deja a aprut catalog Moldova.

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

48

Pentru adugarea unei referine la internet resurs concret apasam la referinta adugarea referintei. In forma care va aprea alegem directorul in care va fi pastrata referina data (de exemplu Pota) si dup aceasta introducem adresa referinei in cimpul URL si nu sa uitam sa introducem http:// de exemplu http://www.mail.md. In caz contradictoriu legatura cu serverul necesar nu va fi stabilita. Daca e necesar putem sa complectam cimpul descrierea. Efectuind toate operatiile apasam butonul Pstrarea. In rezultat in directoarea moldova va aprea directoarea Pota apasind la care nimerim la adresa www.mail.md. Referine si directoarele putem sa tergem apasind la referina respectiv care se afla lng nregistrarea data.

5.2.5 Carnetul de notie Pentru a introduce inregistrarea apasam pe referina adugarea inregidtrarii . In forma ce va aprea trebuie sa complectam cimpul Denumirea nregistrrii si Textul, iar pe urma s salvam informaia introdusa. In rezulta pe pagina principala a carnetului de notie va aprea denumirea inregistarii. Apasam pe denumirea pentru a citi textul. tergerea este posibila daca apsam referinta stregerea. 5.2.6 Informaia personala Daca de exemplu pentru contabilul organizaiei utiliyatorului va fi necesar numrul pasaportuli lui, atunci uor gasim aici daca prealabil l-am introdus aici. In afara de aceasta numerele de telefon mobil si pagerului, si a adresei email vor fi automat introduse in cimpurile respective pentru trimiterea mesajelor de avertisment.

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

49

6. ESTIMAREA ECONOMIC A PROIECTULUI Pentru determinarea volumului de lucru necesar la executarea proiectului n cauz se alctuiete lista tuturor etapelor i lucrrilor de baz, care au fost ndeplinite. n timpul de fa Moldova se bazeaz pe relaiile de pia i este nevoie ca viitorii specialiti (cercettori, constructori, ingineri) s cunoasc nu numai ingineria, dar i economia. Aceasta este cauzat de mai multe aspecte: de intensificarea produciei, de dezvoltarea progresului tehnico-tiinific, de reforma economic i de trecerea la metodele economice de dirijare. Un inginer care cunoate noiuni generale n domeniul economiei duce la aceea, c specialistul dat va putea demonstra economic corectitudinea principiilor tehnice, va putea aprecia rezultatele muncii sale din punct de vedere economic i altele. Din cele expuse mai sus, reiese c fiecare proiect trebuie s fie privit i din punct de vedere economic. Adic, pe lng toate aprecierile tehnico-tiinifice, trebuie s apreciem i valoarea sa economic. Acest proiect va conine i toate cheltuielile care au fost fcute la realizarea proiectului. Proiectele tehnologice contemporane sunt caracterizate de urmtoarele particulariti: tehnica nou utilizat este foarte complex i este construit accelerarea vitezei de elaborare a proiectelor; proiectele referitoare la complexele tehnicii de calcul i softului necesitatea proiectrii de sistem la elaborarea softului i utiliznd ultimele elaborri tiinifice;

sunt supuse uzurii morale foarte rapide; sistemelor tehnice. Toate acestea au dus la necesitatea de creare a noi metode de planificare. Una din aceste metode prezint modelarea procesului de elaborare, adic prezentarea legturilor i caracteristicilor lucrrilor n procesul elaborrii proiectului. Metodele tradiionale de planificare presupun utilizarea celor mai simple modele de tipul construirea diagramelor de tip consecutive i ciclice. Dar n asemenea diagrame nu este posibil de a prezenta legturile dintre nite lucrri, de unde rezult imposibilitatea de a afla ct de important este lucrarea dat pentru executarea scopului final. Pot aprea diferite ntrzieri n timp, ce apar pe poriuni de interconectare a lucrrilor, care sunt complicat de prezentat n diagrame. De obicei, n procesul dirijrii se culege informaia despre lucrrile efectuate i aproape nu se culege i nu se prezint informaia referitor
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

50

la prognoza finisrii lucrrilor viitoare, de aceia este imposibil de a prognoza rezultatele diferitor variante de soluionare la modificrile planului iniial de lucru. Este de asemenea complicat de a reflecta i dinamica lucrrilor, de a corecta toat diagrama n legtur cu schimbarea termenilor de efectuare a unei lucrri, ce este necesar de a efectua ca s nu schimbm termenul de efectuare a ntregului complex de lucrri. Aceasta este doar o parte mic din neajunsurile metodelor utilizate n prezent pentru planificare i prezentarea grafic a planurilor de pregtire a producerii. Aceste neajunsuri n mare pare sunt excluse de ctre sistemele de planificare i dirijare reea utilizate n prezent. Sistemele de planificare i gestiune reea prezint un complex de metode grafice i de calcul, metode de control i de organizare, care asigur modelarea, analiza i reconstruirea dinamic a planului de executare a proiectelor complexe. Sistemul de planificare i gestiune reea este o metod cibernetic creat pentru gestiunea cu ajutorul sistemelor dinamice complexe cu scopul asigurrii condiiei de optim pentru careva indicatori. Aa indicatori, n dependen de condiiile concrete, pot fi: timpul minim pentru elaborarea ntregului complex de lucrri; costul minim al elaborrii proiectului; economia maximal a resurselor.

Particularitile sistemului de planificare i gestiune reea n general sunt urmtoarele: se realizeaz metoda proiectrii de sistem la rezolvarea se utilizeaz modelul informaional-dinamic special (graful-reea) problemelor de organizare a gestiunii proceselor. pentru descrierea matematico-logic a procesului i calculul automat (conforma algoritmului) a parametrilor acestui proces (durata, costul, forele de munc, etc.) se utilizeaz sisteme de calcul pentru prelucrarea datelor operative pentru calculul indicatorilor i primirea rapoartelor analitice i statistice necesare. Unul din scopurile de baz a planificrii procesului de executare a procesului de executare a proiectului este determinarea duratei de ndeplinire a acestuia. n cazul unor lucrri nu mari ca volum se practic construirea graficului tabelar de ndeplinire a lucrrilor. Electric reprezint un tabel n care se enumer toate lucrrile petrecute, funciile u numrul executrilor, volumul de lucru a fiecrei lucrri. Longevitatea fiecrei lucrri se determin dup formula:

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

51

Tpl =

Ti ; Nl

unde Ti volumul de lucru a lucrrii; Nl numrul de executri. Graficul calendaristic este prezentat n tabelul 8.1 Tabelul 2 Biblioteca evenimentelor i lucrrilor, efectuate n procesul elaborrii Asistentului Electronic Public. Nr. Evenimentul 1 2 1 Sarcina pentru Asistentului 2 3 4 (AEP) a fost primit Sarcina a fost cercetat Codul 3 elaborarea Public 1-2 2-3 Denumirea lucrrii Durata 4 5 Cercetarea sarcinii pentru 2 elaborarea AEP Determinarea sistem Determinarea cerinelor ctre 1

Electronic

Cerinele ctre sistem au fost 3-4 determinate Profitabilitatea proiectului a fost 4-5 determinat 4-6

profitabilitii 1

proiectului Cercetarea AEP existente la 3 momentul actual Determinarea necesitilor hard 1 i soft Studierea domeniilor noi 5 2 1

5 6 7 8 9 10

AEP existente la momentul actual 5-7 au fost cercetate Necesitile hard i soft au fost 6-8 determinate Domeniile noi necesare pentru 7-8 elaborarea AEP au fost studiate Hardul necesar proiectrii AEP a 8-9 fost procurat i instalat Studierea mediilor de proiectare i 9-10 programare Sistemul de operare i a 10-11

necesare pentru elaborarea AEP Procurarea hardului necesar Instalarea hardului necesar

Studierea mediilor de proiectare 4 i programare existente Instalarea sistemului de operare 1 i a protocoalelor de reea Alegerea mediului de 1

protocoalelor reea a fost instalat

programare n care va fi realizat Continuarea tabelului 2 4 5 mediului de 1

1 11

2 3 Alegerea mediului de programare a 11-13 fost facut 11-14

Procurarea

programare necesar ntocmirea bibliografiei necesare 1


Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

52

12 13 14 15

Instrumentariile procurate ntocmirea

soft

au a

fost 12-15 fost 13-14

Instalarea

mediului

de 1 1

bibliografiei

programarea Procurarea literaturii necesare

facut Literatura necesar a fost procurat

14-15 14-16 Literatura procurat a fost studiat 15-17 i mediul de programare a fost instalat Modelul funcional a fost elaborat

Studierea literaturii procurate 12 Elaborarea modelului funcional 1 Cercetarea modului de stocare a 3 datelor n baza de informaii MIB Cercetarea modului de lucru a 2 protocolului de administrare SNMP Elaborarea algoritmului de lucru 12 al AEP Elaborarea algoritmului de lucru al AEP Instalm programul pe server 1

16

16-18

17 18 19 20

A fost cercetat modul de stocare a 17-19 datelor n baza de informaii MIB Modul de lucru al protocolului 18-19 SNMP a fost studiat A fost elaborat algoritmul de lucru 19-20 al AEP Programul a fost instalat pe server 20-21

Aplicm algoritmul de lucru 1 ntr-o situaie concret - rularea lui pe server Testm algoritmul de lucru la 1 eficacitate Analizm datele obinute Corectm algoritm 1

21

A fost aplicat algoritmul de lucru 21-22 ntr-o situaie concret - rularea lui pe server A fost testat algoritmul de lucru la 22-23 eficacitate Au fost analizate datele obinute 23-24

22 23 1 24

2 3 Corectrile au fost facute i au fost 24-25 implimentate n program

2 Continuarea tabelului 2 4 5 Pregtim i plasm programul 1 pentru plasarea lui in reeaua global Elaborarea recomandrilor de 2 utilizare a programului Pregtirea programului pentru 1 utilizarea n mas Sistematizarea lucrului efectuat Finism lucrarea de proiectare Finism lucrarea de proiectare 1 1 1

25

Plasarea programului n reeaua 25-28 global 25-27 25-26 A fost sistematizat lucrul efectuat 26-29 A fost pregtit programul pentru 27-29 utilizare n mas

26 27

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

53

28 29

Au fost elaborate recomandrile de 28-29 utilizare a programului A fost finisat lucrarea proiectare de

Finism lucrarea de proiectare Elaborarea AEP este terminat

Documentul de baz n sistemul de planificare i gestiune reea este graful-reea (modelul reea), care prezint modelul informaional-dinamic, n care sunt prezentate legturile i rezultatele tuturor lucrrilor, necesare pentru atingerea scopului final. n figura 8.1 este prezentat schema reprezentrii grafice a grafului-reea:

Ri Tdi Ni Tti

tij(Rdij / Rlij)

Rj Tdj Nj Ttj

Figura 4 Structura grafului-reea. unde: cercul un eveniment; sgeata o lucrare; tij durata lucrului ij; Rlij rezerva liber de timp a lucrului ij; Rdij rezerva deplin de timp a lucrului ij; Tdi timpul devreme de ncepere a evenimentului i; Tti timpul trziu de terminare a evenimentului i; Ri rezerva liber de timp a evenimentului i; Ni numrul evenimentului i; Tdj timpul devreme de ncepere a evenimentului j; Ttj timpul trziu de terminare a evenimentului j; Rj rezerva liber de timp a evenimentului j; Nj numrul evenimentului j. Parametrii calculai ai grafului reea sunt prezentai n tabelul 7.2. Tabelul 3 Calculul parametrilor grafului reea
i-j tij TdI TtI Tdj Ttj Rdij Rlij

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

54

1 0-1 1-2 2-3 3-4 3-5 4-6 5-7 6-7 7-8 8-9 9-10 10-11 10-12 11-14 12-13 13-14 13-15 14-16 15-17

2 2 1 1 3 1 5 2 1 4 1 1 1 1 1 1 12 1 3 2

3 0 2 3 4 4 7 5 12 13 17 18 19 19 20 20 21 22 33 24

4 0 2 3 4 4 7 11 12 13 17 18 19 19 32 20 21 21 33 34

5 2 3 4 7 5 12 13 13 17 18 19 20 20 33 21 33 22 36 24

6 2 3 4 7 11 12 13 13 17 18 19 32 20 33 21 33 34 36 36

7 0 0 0 0 0 0 6 0 0 0 0 12 0 12 0 0 12 0 12

8 0 0 0 0 0 0 6 0 0 0 0 0 0 12 0 0 0 0 0

1 16-18 17-18 18-19 19-20 20-21 21-22 22-23 23-24 24-25 24-26 24-27 25-28 26-28 27-28

2 12 12 1 1 1 1 2 1 2 1 1 1 1 1

3 36 24 48 49 50 51 52 54 55 55 55 56 56 57

4 36 36 48 49 50 51 52 54 55 55 55 57 57 57

5 48 48 49 50 51 52 54 55 56 56 57 58 58 58

6 48 48 49 50 51 52 54 55 57 57 57 58 58 58

Continuarea tabelului 3 7 8 0 0 0 12 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0

Graful n Anexa 1 Din graful-reea vedem c realizarea proiectului dureaz 58 de zile adic lucrtorilor este reprezentat n tabela 7.3 Tabelul 4 Salariul sptmnal al lucrtorilor
Coala

11,6

saptamni (saptamna cu 5 zile lucrtoare a cte 8 ore lucrtoare). Salariul sptmnal al

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

55

Nr. 1 2 3

Funcia executat eful proiectului Administrator reea Programator

Salariul sptmnal, lei 400 250 350

Salariul sptmnal alctuiete 1000 lei. Pe durata proiectului salariul de baz alctuiete: 11,6 1000 = 11600 lei Salariul suplimentar (10% din salariul de baz): 10% = 1160 lei 100%

11600

Defalcri n fondul social (31%): 31 = 4092 lei 100

(11600 + 1600)

S calculm cheltuielile de energie electric. Un calculator personal obinuit nu are o putere mai mare de 200 W. Toate calculatoarele n sum vor cheltui 400 W. Pe parcursul proiectului, timp de 58 de zile vor fi consumate: 400 58 8 0,8 = 148480 149 kW h Coeficientul 0,8 n formula de calcul apare din cauza c calculatoarele nu lucreaz n continuu cele 8 ore pe zi. La momentul actual un kW h cost 0,65 lei, deci cheltuielile vor fi: 149 0,65 = 96,85 97 lei Necesitile n materiale, soft i hard sunt prezentate n tabelele 8.4 i 8.5 Tabelul 5 Costul hardului i softului procurat Materialul Calculator personal Preul pentru o Cantitatea necesar 2 16000 Suma, lei unitate, lei 8000

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

56

Apache MySQL FreeBSD Perl Notepad

Free Free Free Free Free

1 1 1 1 1

Tabelul 6

Costul materialelor utilizate Materialul Hrtie Map Pix Unitatea Foaie Bucat Bucat Preul pentru o Cantitatea unitate, lei 0,10 1,5 2 necesar 500 10 10 Suma, lei 50 15 20

Deoarece procurarea hardului i a softului n domeniul Tehnologiilor Informaionale este considerat ivenstiie de capital, v-om amortiza aceste cheltuieli timp de 2 ani termen n care totul din acest domeniu se uzeaz moral: S Z ; A 365 unde: S - suma ce trebuie de amortizat; A - perioada de amortizare n ani; Z perioada proiectului n zile. 16000 70 = 1534,2 1535 lei; 2 365 Tabelul 7 Calculul preului de livrare a AEP Cheltuelile 1 Materiale Plata pentru Internet (136lei/lun) Arenda pentru ncpere (15 lei/m2) Cheltuieli pentru energie electric Salariul de baz Salariu suplimentar Defalcri n fondul social 85 272 810 97 11600 1060 4092 Suma, lei 2

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

57

1 Amortizarea investiiilor capitale Preul de cost al softului total

Continuarea tabelului 7 2 1535 19551

Aceast metod informaional poate fi utilizat la crearea oricrui modul de colectare a datelor. Astfel de module sunt prezente aproape n toate sistemele informaionale. Noi ne vom concentra atenia la sistemele informaionale noi create. innd cont c n ultimul an au fost nregistrate mai mult de 1000 de ntreprinderi, iar cel puin a douzecea partea din ele au nevoie de un asistent electronic public, noi estimm livrarea a 50 de copii ntr-un an. Sinecostul unei copii va fi

19551 = 391,02 50

Tabelul 8 Preul/lei

Estimarea preului unei copii a programului Materiale i componente 3 discuri magnetice (3.5) 15 foi pentru documentaie Copierea i testarea dischetelor Tiprirea documentaiei Pretul de cost a unei copii programei Profitul planificat (25%) Preul de cost a unei copii TVA (20%) Preul liber de vnzare 15,00 1,50 15,00 7,50 a 430,02 107,5 537,52 107,5 645,5

S-a presupus c cheltuielile suplimentare s fie recuperate de primele 100 de copii a programului realizate. Avind date despre cost, eficiena economic poate fi calculat dup urmtoarea formul: E anual =(P c -S n )*N-K en *(I c +I pr ) Unde: E anual -efectul economic anual;

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

58

P c -preul unei copii; S n -sinecostul unei copii; N numrul de copii realizate pe an; K en -coeficientul de normare a investiiilor capitale (=0,35); I c -investiii capitale; I pr -investiii de proiectare; Vom considera c numrul de copii a programului pa an se va lua 50, iar investiiile capitale snt estimateca fiind egale cu zero. Astfel obinem: E anual =(645,5-430,02)*50-0,35*(0+19551)=3908,15 lei Un alt coeficient important n aprecierea eficacitii economice este coeficientul eficienii investiiilor (sau timpul de recuperare a investiiilor): T rec =(I c +I pr )/E anual =(0+19551)/3908,15= 5 Calculm coeficientul eficientii economice - K ec K ec =1/T rec =1/5=0,20 P pe 50 de copii=50*(645,5-430.02)=10750 lei.

tot

Valorile indicatorior eficienei economice vorbesc c crearea AEP este oportun.

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

59

7. PROTECIA MUNCII Analiza condiiilor de munc apreciate n timpul efecturii practicii de diplom se apreciaz n primul rnd vizual aplicnd noiunile "normal" (n) i "periculos" (p). Analiza factorilor ce acioneaz asupra omului la locul de munc e prezentat n form de tabel (caracteristicile condiiilor sanitar-igienice, factorii de producie duntori i periculoi): Tabelul 9 Caracteristicile condiiilor sanitar-igienice i a factorilor de producie Factorii condiiilor de munc Aprecierea Vizual 1 . Factorii sanitaro - igienici 1 . 1 Parametrii microclimei (STAS 12.1.005.88) temperatura, C umiditatea relativ, % viteza aerului, m/s 1.2 Iluminatul (SNiP-II-A.8-72) natural lateral 1, % artificial general, Ix 1.3 Prezena prafurilor, mg/m3 minerale (praf, nisip, etc.) 1 .4 Factori chimici, mg/m 1 .5 Factori termici, mg/ m1 1.6 Factori de iradiere 1.7 Factori mecanici Zgomotul, dB 2. Caracteristica ncperilor n 50 60 n 0.75 n n 1.0125 300 1.0125 300 IV 2' n n n 20 60 0.12 20-22 60-40 0.2 n condiiilor Instrumental Dup STAS -

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

60

Continuarea tabelului 9 Clasa dup pericolul de explozie Clasa dup pericolul de incendiu Categoria dup pericolul de electrocutare Clasa zonei sanitare n Gradul de rezisten la foc a cldirii 3. Parametrii energiei electrice modalitatea curentului tensiunea, V frecvena, Hz 4. Cauzele incendiului substane arztoare (hrtia, mase plastice, etc.) electrice hrtie 5. Utilizarea apei 6. Degajri n atmosfer Surse electrice _ 220 50 alternativ 220 50 n n V II V II n SNIP-II-92-79 xxxxx p-IIa I

Analiza condiiilor de munc a fost efectuat pentru laboratorul firmei. In tabel se indic condiiile optimale microclimaterice (STAS 12.1.005.88), care sunt destinate crerii condiiilor favorabile de munc pentru personalul centrului de calcul. Dup STAS ele sunt clasificate ca nepericuloase. La laboratorul firmei se practic iluminarea natural lateral i iluminarea artificial general. Iluminarea corespunde normelor (SNIP-II-4-79). La laboratorul firmei persist zgomotul, generat de surse de zgomot de diferite tipuri. Imprimantele creeaz zgomot metalic, instalaiile de condiionare-aerodinamice, transformatoarele de tensiune-magnetice. Datorit msurilor luate (folosirea barajelor acustice, planificarea raional a ncperii) nivelul de zgomot la locul de munc nu depete nivelul admisibil.Analiza condiiilor de munc a artat c la laboratorul firmei sunt toi factorii, necesari

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

61

pentru izbucnirea incendiului (sursa de aprindere: sursa de curent electric, hrtia, etc.) De acea la laboratorul firmei sunt prevzute mijloace primare de stingere a incendiului - furtunuri n rezultatul analizei condiiilor de munc la locul de lucru, putem spune c ele corespund normelor i snt favorabile pentru lucru. Analiza ergonomic i aprecierea locului de munc Progresul tehnic ce a atins diferite domenii a producerii, folosirea pe larg a tehnicii de calcul i prelucrarea numeric a semnalelor, sistemele automate de proiectare sunt legate tot mai mult i mai mult cu trecerea de la munca fizic la munca intelectual. Automatizarea i computerizarea duc la schimbarea mijloacelor i caracterului activitii de munc, la schimbarea condiiilor de munc. Totodat automatizarea i computerizarea pot avea i urmri sociale negative, deoarece se cer cerine nalte fa de posibilitile psihofizice a inginerului-operator. n felul acesta, funciile activitii n condiiile automatizrii se schimb. n procesul de lucru operatorul primete, memoreaz si prelucreaz un mare volum de informaie, ia diferite decizii i dirijeaz cu starea sistemului. Principalul coninut a activitii omului l alctuiesc procesele de memorare i psihice recepionarea activ, memorarea i gndirea. De aceea n condiiile actuale a aprut necesitatea de a efectua acordarea dintre construciile sistemelor tehnice i condiiile lor de funcionare cu posibilitile psihofizice a lucrtorului. Cu studierea i proiectarea interacionrii omului (a unui grup de oameni) n procesul de lucru cu mijloacele tehnice, obiectele de activare cu mediul ambiant se ocup ergonomic. elul analizei ergonomice - ridicarea eficienei i calitii activitii omului n sistemul "om - main obiect - mediu" cu condiiile pstrrii sntii omului. n procesul de lucru a operatorului un mare rol l ocup dispozitivele de vizualizare a informaiei care trebuie s satisfac anumite cerine ergonomice. Ergonomie - tiin, care studiaz n mod complex particularitile psihofiziologice, anatomice i antropologice ale omului n procesul muncii, precum i problemele igienei, toxicologiei. biomecanicii i biofizicii n scopul de a crea omului condiii optime de munc cu un consum minim de energie. Respectarea recomandaiilor ergonomice duce la ridicarea productivitii muncii omului i la pstrarea capacitii lui de munc, a forei musculare i a sntii lui. Cercetrile ergonomice se extind i asupra unor discipline specializate (psihologia inginereasc, protecia muncii). Termenul "ergonomie" a fost pus n circulaie n Anglia (1949) de ctre un grup de specialiti.

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

62

Din punct de vedere ergonomic locul de munc destinat proiectrii este amenajat satisfctor, dat fiind faptul c pentru proiectare sunt prezente: un calculator IBM cu monitor color de o rezoluie satistctoare; microclima ncperii este asigurat de un condiioner; proiectarea se efectueaz cu ajutorul unui pachet destul de comod de proiectare a schemelor electrice principiale; scaune foarte comode, o mas special, ce permite aranjarea comod a tuturor componentelor necesare proiectrii (blocul calculatorului, monitorul, imprimanta, scheme electrice proiectate). Ca neajuns din punct de vedere ergonomic este generarea zgomotelor de ctre condiioner i imprimant; Aprecierea pericolului electrocutarii Analiza accidentelor arat c partea electrocutrii n producie face undeva 40 la 100, dar n sistemele energetice ajung 60 la 100. Aciunea curentului electric poate fi termic, electric, biologic, mecanic. Pericolul depinde de tipul de atingere i de tipul reelei. Tipul de atingere poate fi la un pol sau dou poluri la reea monofazic, sau la o faz sau la 2 a reelei trifazice. Ih=Uc/Rc Dac omul se atinge de o faz n reelele trifazice, atunci pericolul depinde de tipul reelei (curentul alternativ provoac un pericol mai mare dect cel continuu). Msurele de electrosecuritate Folosirea tensiunelor mici. Separarea reelelor electrice. Cea mai periculoas este atingerea omului la doi poli sau 2 faze. Curentul care, se scurge prin om este

Dac reelele snt lungi i ramificate, atunci capacitatea fa de pmnt se mrete, dar reactiv total scade. De aceia se produce separarea reelelor cu ajutorul transformatoarelor. Folosirea i controlul izolrii. Izolarea poate fi de lucru (menine tensiunea de lucru ndelungat); adugtoare (mnerele, carcasele); izolarea dubl - se folosete, cnd este contact nemijlocit a electroutilajului cu organizmul uman; izolarea perfecionat (izolarea de lucru dar are parametri izolrii dublei.

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

63

Starea izolrii se caracterizeaz cu rezistena electric activ, care periodic se controleaz cu megommetru i trebuie s fie nu mai mic ca 0.5 MH. Periodic se controleaz regiditatea electric (se aplic o tensiune major pn la 3UIIUix ntr-un timp scurt). Protecia prin legarea la pmnt const n egalarea potenialelor, i dac omul va atinge carcasa, atunci curentul care va trece prin el va fi minim. Asigurarea inactivitii prilor conductoare fr izolare: Atrnarea firelor la nlime ngrdirea lor Legarea la pmnt, se folosesc n reele cu neutrala izolrt unirea carcaselor cu priza de pmnt Protecia prin legarea la nul. Se folosete la reelele cu neutrala legat la pmnt. Ea prezint unirea carcaselor cu firul de protecie nul, care este unit cu neutrala legat la pmnt. Dac apare tensiunea, atunci se va scurge prin carcas, prin firul nul, prin neutral, prin firul fazic i formeaz un circuit. Acest circuit are o rezisten mic i deci o intensitate mare ceia ce va provoca arderea siguranei. Nivelarea potenialelor - legarea tuturor carcaselor a utilajului dat cu carcasa general. Protecia prin legarea la pmnt este unirea carcaselor cu priza de pmnt, prezint un ansamblu de electrozi btui n pmnt de la (0,8-3)^ n adncime i unii n paralel pentru asigurarea legturi bune cu pmntul. Protecia prin legarea la pmnt const n egalarea potenialelor dintre carcas i pmnt i n caz de atingere a omului curentul, care trece prin el este foarte mic. Protecia prin legarea la nul. Protecia prin legarea la nul prezint unirea carcaselor cu la nul, care la rndul su este unit cu neutrala legat la pmnt. Dac apare tensiunea pe carcas curentul se scurge prin carcas, prin firul nul, prin neutral, prin firul fazic i n rezultat formeaz un circuit cu o rezisten electric mic, ceia ce provoac scurtcircuit, care este mare i provoac arderea fuzibilitilor. Protecia legarea la nul const n reducerea duratei scurgerii curentului prin organismul omului. n laborator se folosete legarea prizei la pmnt. Cerinele ergonomice ale dispozitivului Criteriile ergonomice de baz: 1) securitate; 2) reparabilitatea; 3) comoditatea exploatrii;

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

64

Cerinele ergonomice generale i recomandaiile

ctre construcia aparatajului sunt

ndreptate spre asigurarea securitii i ridicarea productivitii muncii tehnicienilor, operatorilor i personalului de deservire. Dei multe din cerine par a fi triviale, ele nc nu ntotdeauna i nu complet sunt realizate. Cerinele ergonomice pentru design: Design - metod de creare a unor forme estetice ale obiectelor, n care ideea constructiv, argumentat din punct de vedere tehnic i economic, capt o form expresiv, de o nalt valoare estetic, mbinat organic cu coninutul i destinaia funcional a obiectului, fiind potrivit condiiilor lui de utilizare. Aplicarea designului permite obinerea cu cheltuieli minime a unei producii industriale care se deosebete prin comoditate, confort i securitate n exploatare, prin greutate i gabarite reduse, acionare fr zgomot i printr-un aspect frumos. Cerinele ergonomice generale: 1). Dispozitivele electronice trebuie proiectate i construite utiliznd maximal module i elemente standarde. 2). Trebuie s fie asigurat posibilitatea montrii, demontrii simple i rapide, a extragerii, substituirii sau remontrii a unor elemente aparte. Instrumentele necesare pentru astfel de operaii trebuie pstrate ntr-un loc accesibil. 3). Trebuie de nlturat posibilitatea instalrii, schimbrii i montrii greite a blocurilor sau componentelor i de prevzut msurile pentru ce asigur identificarea, orientarea i amplasarea corect a cablurilor i conectorilor Cerinele ergonomice la instalarea componentelor n interiorul blocurilor aparatajului electronic: 1). Componentele de form identic sau asemntoare trebuie s fie uor identificate i deosebite. 2). Componentele fragile trebuie amplasate n aa mod, ca ele s nu se deterioreze n timpul efecturii lucrrilor de montare /reglare. Cerinele ergonomice pentru organele de dirijare cu reglarca i acordare: 1). Toate organele de reglare trebuie s fie asistate de indicatoare sau cn mijloace de legtur invers. 2). Regulatoarele pentru rotire limitat trebuie s fie asigurate cu delimitatori mecanici pentru evitarea deteriorrii. 3. Organele de reglare sensibil trebuie s fie protejate sau amplasate astfel ca ele s nu fie ntmpltor atinse. Cerinele ergoiiomice pentru accesihilitatca componentelor:
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

65

1). Elemcntele dc construcie ale blocurilor nu trebuie s nchid accesul la componente. 2). Detaliile care mai des trebuie schimbate din cauza frecvenei nalte de defectare ale lor trebuie de amplasat astfel ca s nu fie necesar deniontarea componentelor apte de kicru. Cerinte-ergonomice pentru conductoare - electrice: 1). Conductoarele electrice trebuie s fie unite n mnunchiuri. 2). Cablurile trebuie s fie marcate pentru ca s fie clar la ce bloc ele se refer i la ce conectoare trebuie unite. 3). Cablurile trebuie s fie ndeajuns de lungi pentru a avea posibilitatea de a extrage fiecare bloc pentru a putea fi verificat sau reparat. 4). Cablurile trebuie protejate astfel ca ele sa nu poat fi deteriorate prin careva aciuni involuntare. Dat fiind faptul c dispozitivul proiectat este un sistem portativ cerinele ergonomice fa de el se reduc la: 1). Minimizarea dimensiunilor i masei dispozitivului. 2). Reducerea vibraiilor cauzate de prile rotative ale aparatului sau evitarea n genere a componentelor mecanice. 3). Utilizarea unei surse de alimentare autonome. Pentru prevenirea incendiilor sunt necesare urmtoarele msuri: a) b) prevenirea i combaterea formrii mediului inflamabil; prevenirea i combaterea formrii n mediul inflamabil a surselor

i cauzelor de aprindere; c) meninerea temperaturii i presiunii mediului inflamabil mai jos de nivelul de autoinflamare; d) micorarea mrimii determinate (dimensiune, volum, cantitate) a mediului inflamabil la nivel mai jos de cel de ardere sinestttoare, Securitatea n caz de incendiu se asigur de urmtoarele msuri: Aplicarea maxim posibil a materialelor i substanelor nearztoare i greu fuzibile n locul celor ce prezint pericol, Limitarea substanelor fuzibile i amplasarea lor n laborator corespunztor normelor stabilite, a) b) c) d) izolarea mediului inflamabil; prevenirea rspndirii incendiului din limitele focarului; aplicarea surselor de stingere eficiente; folosirea construciilor cu limit reglamentat de rezistena la ardere i de ardere de

sinestttoare;
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

66

e) evacuarea oamenilor, conform planului de evacuare n caz de incendiu; f) utilizarea mijloacelor de securitate colectiv i personal; g) utilizarea mijloacelor de semnalizare antiincendiar; h) organizarea pazei antiincendiare,

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

67

CONCLUZII n aceasta lucrare de diplom este elaborat i realizat un produs soft complet - asistent electronic public. El nclude n sine o gama larg de servicii online: calendarul, notiele, pstrarea evinementelor pe o perioad nelimitat de timp, referinele preferate, pstrarea infromaiei personale, carnetul de adrese. Posibilitaile i facilitile lui snt destule pentru a nlocui mijloacele tradiionale de organizarea informaiei pe hrtie. AEP mai dispune de posibili care nu le au analogii lui de hirtie : posibilitatea de a tremite mesaje de alert, securitatea informaiei pstrate, spaiul nelimitat. Acest produs este explorat deja n reea, adresa web secretary.hit.md, i va fi dotat n versiunea lui final cu posibilitile mai largi: lucrul cu pota electronic. In perioada actuala elaborarea si punerea in funciune a asistentului electronic public este o schimbare modern a conceptului de organizare si pstrare a datelor i este o introducere binevita pentru utilizatori n instituiile publice i unitile economice. Organizarea datelor in reea a devenit astzi o necesitate stringent, deoarece volumul si complexitatea informaiei crete pe orice zi, iar ramnerea n urma n acest domeniul aduce pierderi organizatorice considerabile. El poate fi folosit n organizaiile mijlocii i mari, ageni economici, insituii de stat care au un numr mare de utilizatori i pot permite instalarea i intreinere cuplului: web-server, serverul SGBD. Pentru o organizaie e comod ca lucratorii n cadrul ei s dispuna de facilitaile AEP prentru c se micoreaz cheltuieli organizatorice. AEP este o aplicaie care face parte din rndul de aplicaii cu o concepie nou de accesarea datelor. Informaia nu este pstrata la calculatorul utilizatorului ci se afl pe un server n reea : o astfel de aplicaii au aprut n numr mare n ultimul timp i vor aprea curnd. Ca de exemplu poate fi artat sistemul de operare Windows XP, care va nclude n versiunea sa final unele servicii Internet de felul realizate mai sus. O astfel de concepie va fi realizat n versiunea urmatoare a Internet pagerului ICQ, se va ncrca un applet Java prin browser iar datele despre adresai vor fi pstrate pe serverul Mirabilis corporation. Exemplele expuse mai sus arat perspectiva astfel de aplicaii n lumea contemporan mobil. Realizarea acestui proiect a fost o ncercare de crea o aplicaie cu faciliti bune i destule pentru utilizatorii din Republica Moldova.

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

68

BIBLIOGRAFIE [1] Perl , , Ed. BHV, Peterburg 2000, ISBN 5-8206-0070-3 [2] MySQL and mSQL Randy Jay, George Reese, Tim King, Ed.OReilly 1999 ISBN: 1-56592-434-7 [3] CGI/Perl Web . , . , Ed. BHV, Chiev 1999, ISBN 0-7315-0043-6 [4] CGI- . , Ed. 2000, ISBN 5272-00242-3 [5] Programming Perl - Larry Wall, Tom Christiansen & Jon Orwant Ed. OReilly 2000 ISBN-0-596-00027-8 [6] HTML 4.0 - , , Ed. BHV, 1999, ISBN 5-8206-0072-X [7] Perl Cookbook. Tips and Tricks for Perl Programmers - Tom Christiansen & Nathan Torkington Ed. OReilly 1998 ISBN-1-56592-243-3 [8] http://www.beep.ru [9] http://anyday.com [10] http://www.mywebos.com [11] http://calendar.rambler.ru [12] http://www.ezcontact.com [13] http://www.webaddressbook.com [14] http://www.daylydrill.com [15] http://www.perl.com/pub [16] http://www.mysql.com/ [17] http://www.apache.com/ [18] http://www.programare.ro [19] http://phobos.cs.unibuc.ro/~ancag/proiect/ [20] http://www.computerworld.com/ [21] http://www.citforum.ru [22] http://www.resurse.com/programare/ [23] http://rowd.go.ro/articole/tehnologie/ [24] http://conferences.oreilly.com/perl/

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

69

ANEXE

Anexa 1 Graful reea la estimarea economic

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

70

0 2 2 1 3 1 4 3 7 5 12 0 6 0 4 7 0/0 12 0/0

0 0

0 0/0 2 0/0 1 20 12 32 0 11

A 1 19 0 10 0/0 19 1 0/0 20 1 1 12/12 0 6 5 33 11 3 36 6/6 0 16 14 21 12 0/0 33 0/0 36 12 0/0 48 1 49 1 50 0 20 B 0 19 0 18 12 48 0/0 49 0/0 50 1 56 25 57 0 1 0 13 0 12 20 0/0 33 12/0 1 12 22 34 15 2 24 12 17 12/0 36 1 51 1 52 2 54 1 55 1 1/0 0 24 1 0 23 0 22 0 21 B 0/0 51 0/0 52 0/0 54 0/0 55 2 0/0 57 1 0/0 0 27 57

1 0 2 0 3

12/0

3 0/0 4 1 0/0 5

0 f

0/0 o 1 r 13 m 13 7 e 4 0/0 i 0 17 17 8 1 18 0 9 A 0/0 18

0/12

1 1/0 56 56

1/0

26 1 1/0 0 28

58

58

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

71

Anexa 2 Codul surs al programului secretary.pl #!/usr/bin/perl use Mysql; use Socket; use Date::Manip; require 'login.pl'; require 'mail.pl'; require 'personal.pl'; require 'calendar.pl'; require 'address.pl'; require 'note.pl'; require 'bookmarks.pl'; require 'settings.pl'; print "Content-type: text/html\n\n"; $dbh = Mysql->Connect($host,$database,$user,$password); $attach_folder = "/plan.md/attachments/"; sysread(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); if ($ENV{'CONTENT_TYPE'} =~ /multipart/) { ($bound) = ($ENV{'CONTENT_TYPE'} =~ /boundary=(\S+)/); @arguments = split (/--$bound(-)*\n/,$buffer); @arguments = grep (length > 2, @arguments); for $item (@arguments) { $item =~ s/Content-Disposition: form-data; name=\"//g;

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

72

@nt = split (/"\s*/,$item,2); if ($nt[0] ne 'file') { chop $nt[1]; } $args{$nt[0]} = $nt[1]; if ($nt[0] eq 'file') { @fl = split (/\n/,$nt[1],4); chop $fl[3]; $filedata = $fl[3]; ($filename) = ($fl[0] =~ /filename=\"(.+)\"/); if ($filename =~ /\\/) { ($filename) = ($filename =~ /\\([^\\]+)$/); } if ($filename =~ /\//) { ($filename) = ($filename =~ /\/([^\/]+)$/); } } } } else { @arguments=split("\&",$buffer); foreach $item (@arguments) { @nt = split("=",$item,2); $nt[1] =~ tr/+/ /; $nt[1] =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($)/eg; $nt[1] =~ s/"/""/g; $args{$nt[0]} = $nt[1]; #print "$nt[0] = $nt[1]<br>"; } } if ($args{'Session'}) { $query = "SELECT Login FROM Sessions WHERE Session=\"$args{'Session'}\""; $sth = $dbh->Query($query); if ($sth->NumRows) {
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

73

%arr = $sth->FetchHash; $login = "\"$arr{'Login'}\""; $user = $arr{'Login'}; $from = "$arr{'Login'}\@hit.md"; $tm = time; $query = "UPDATE Sessions SET Time=$tm WHER Session=\"$args{'Session'}\""; $sth = $dbh->Query($query); } else { &ShowLogin("Scuyai dar timpul de lucru sa terminat. Trebuie s intri nc o dat"); exit; } } @pagers = ("Telecom Pager","NewPage"); if elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif ($args{'Action'} eq 'register') { &Registration; } ($args{'Action'} eq 'login') ($args{'Action'} eq 'logout') ($args{'Action'} eq 'inbox') ($args{'Action'} eq 'drafts') ($args{'Action'} eq 'newmessage') ($args{'Action'} eq 'sendmessage') ($args{'Action'} eq 'savedraft') ($args{'Action'} eq 'uploadfile') ($args{'Action'} eq 'readmessage') { &LogIn; } { &LogOut; } { &Inbox; } { &Drafts; } { &NewMessage; } { &SendMessage; } { &SaveDraft; } { &UploadFile; } { &ReadMessage; }

($args{'Action'} eq 'outbox') { &Outbox; } ($args{'Action'} eq 'deleted') { &Deleted; }

($args{'Action'} eq 'replymessage') { &ReplyMessage; } ($args{'Action'} eq 'forwardmessage'){ &ForwardMessage; } ($args{'Action'} eq 'editmessage') { &EditMessage; }


Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

74

elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif elsif else

($args{'Action'} eq 'deletemessage'){ &DeleteMessage; } ($args{'Action'} eq 'dropmessage') { &DropMessage; } ($args{'Action'} eq 'addtask') { &AddTask; } ($args{'Action'} eq 'adddate') { &AddDate; } ($args{'Action'} eq 'updatetask') ($args{'Action'} eq 'deletetask') ($args{'Action'} eq 'deletedate') ($args{'Action'} eq 'showform') ($args{'Action'} eq 'gotodate') ($args{'Action'} eq 'showweek') ($args{'Action'} eq 'showmonth') ($args{'Action'} eq 'showyear') ($args{'Action'} eq 'personal') { &UpdateTask; } { &DeleteTask; } { &DeleteDate; } { &ShowForm; } { &GoToDate($args{'Date'}); } { &ShowWeek; } { &ShowMonth; } { &ShowYear; } { &EditPersonal; }

($args{'Action'} eq 'edittask') { &EditTask; }

($args{'Action'} eq 'updatepersonal'){ &UpdatePersonal; } ($args{'Action'} eq 'address') { &AddressBook; } ($args{'Action'} eq 'addcontact') ($args{'Action'} eq 'editcontact') { &AddContact; } { &EditContact; }

($args{'Action'} eq 'updatecontact'){ &UpdateContact; } ($args{'Action'} eq 'deletecontact'){ &DeleteContact; } ($args{'Action'} eq 'bookmarks') ($args{'Action'} eq 'addfolder') { &Bookmarks; } { &AddFolder; }

($args{'Action'} eq 'addbookmark'){ &AddBookmark; } ($args{'Action'} eq 'deletebookmark'){ &DeleteBookmark; } ($args{'Action'} eq 'notebook') ($args{'Action'} eq 'viewnote') ($args{'Action'} eq 'updatenote') ($args{'Action'} eq 'deletenote') ($args{'Action'} eq 'help') { &Notebook; } { &ViewNote; } { &UpdateNote; } { &DeleteNote; } { &Help; }

($args{'Action'} eq 'addnote') { &AddNote; }

($args{'Action'} eq 'settings') { &Settings; }

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

75

{ &ShowLogin; } #+++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++ sub Help { open (template,"html/help.shtml"); while ($line = <template>) { if ($line =~ /<input type=hidden name=Session>/) { print "<input type=hidden name=Session value=\"$args{'Session'}\">\n"; } elsif ($line =~ /<body bgcolor=/) { print "<body bgcolor=\#FFFFFF onLoad=\"javascript:location.href=\'\#$args{'HelpID'}\'\">\n"; } else { print $line; } } } #+++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++ sub ShowLogin { open (template,"html/login.shtml"); while ($line = <template>) { if ($line =~ /<<message>>/) { if ($_[0]) { print "<br>\&nbsp\;<b>$_[0]</b><br><br>"; } } else { print $line; } } } sub LogIn
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

76

{ $query = "SELECT Login, Pswd FROM Login WHERE Login=\"$args{'Login'}\""; $sth = $dbh->Query($query) || print $Mysql::db_errstr; %arr = $sth->FetchHash; if ((!$sth->NumRows) || ($args{'Password'} ne $arr{'Pswd'})) { &ShowLogin ("Numarul vostru de utliliyator nu e corect."); } else { &GetSessionID; $tm = time; $query = "INSERT INTO Sessions (Session,Login,Time) VALUES (\"$session\",\"$args{'Login'}\",\"$tm\")"; $sth $dbh->Query($query); $args{'Session'} = $session; $login = "\"$args{'Login'}\""; &Inbox; } } #+++++++++++++++++++++++++++++++++++++++++++++++++++++ sub GetSessionID { $session = ""; for ($i=0;$i<48;$i++) { $session .= int rand 10; } $query = "SELECT Session FROM Sessions WHERE Session=\"$session\""; $sth = $dbh->Query($query); if ($sth->NumRows) { &GetSessionID; } } #+++++++++++++++++++++++++++++++++++++++++++++++++++++ sub LogOut
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

77

{ $query = "DELETE FROM Sessions WHERE Session=\"$args{'Session'}\""; $sth = $dbh->Query($query); &ShowLogin; } #+++++++++++++++++++++++++++++++++++++++++++++++++++++ sub Registration { $query = "SELECT Login FROM Login WHERE Login=\"$args{'Login1'}\""; $sth = $dbh->Query($query); if (!$sth->NumRows) { for ($i=0;$i<12;$i++) { $passwd .= int rand 12; } $add_ok = `/usr/home/secretary/mcgi/adduser.pl $args{'Login1'} $passwd`; if (!$add_ok) { $query = "INSERT INTO Login (Login,Pswd,Pop) VALUES (\"$args{'Login1'}\",\"$args{'Password1'}\",\"$passwd\")"; $sth = $dbh->Query($query) || print $Mysql::db_errstr; $args{'Login'} = $args{'Login1'}; $args{'Password'} = $args{'Password1'}; &LogIn; } } else { &ShowLogin("Scuyati dar nume de utiliyator deja exista<b>$args{'Login1'}</b> Alegei un alt nume"); } } #+++++++++++++++++++++++++++++++++++++++++++++++++++++
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

78

sub Bookmarks { $query = "SELECT * FROM Bookmarks WHERE Login=$login"; $sth = $dbh->Query($query)|| print "$Mysql::db_errstr"; open (template, "html/bookmarks.shtml"); while ($line = <template>) { if ($line =~ /<<data>>/) { $len = length($args{'Code'}); $len2 = length($args{'Code'}) + 2; $query = "SELECT * FROM Bookmarks WHERE Code LIKE \"$args{'Code'}\ %\" AND (LENGTH(Code) = $len OR LENGTH(Code) = $len2) AND Login=$login ORDER BY Type DESC, Code"; $sth = $dbh->Query($query)|| print "$Mysql::db_errstr"; print "<table celpadding=2 cellcpacing=0 border=0 width=100%><tr><td colspan=2></tr>"; if (!$args{'Code'}) else { $i=1; %arr = $sth->FetchHash; } for (;$i<$sth->NumRows;$i++) { %arr = $sth->FetchHash; if ($arr{'Type'}) { print "<tr><td width=20><img src=\"/images/folder.gif\"></td><td><b><a
Coala

{ $i=0; }

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

79

href=\"javascript:Bookmarks(\'$arr{'Code'}\')\" title=\"$arr{'Description'}\">$arr{'Title'}</a></b> (<a href=\"javascript:DeleteBookmark(\'$arr{'Code'}\')\" class=small>teregere</a>)</td></tr>"; } else { print "<tr><td width=20></td><td><a href=\"$arr{'Path'}\" title=\"$arr{'Description'}\">$arr{'Title'}</a> (<a href=\"javascript:DeleteBookmark(\'$arr{'Code'}\')\" class=small>Stergerea</a>)</td></tr>"; } } if ($sth->NumRows < 2) { print "<tr><td>\&nbsp\;\&nbsp\;Date nu sint .</td></tr>"; } print "</table>"; } elsif ($line =~ /<input type=hidden name=Session>/) { print "<input type=hidden name=Session value=\"$args{'Session'}\">\n"; } elsif ($line =~ /<<path>>/) { print "\&nbsp\;<b><a href=\"javascript:Bookmarks(\'\')\"> </a> "; $code = $args{'Code'}; for ($i=1;$i<=length($args{'Code'})/2;$i++) { $code = substr($args{'Code'},0,$i*2); $query = "SELECT * FROM Bookmarks WHERE Code = \"$code\" AND Login=$login"; $sth = $dbh->Query($query)|| print "$Mysql::db_errstr"; %arr = $sth->FetchHash;

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

80

print "| <a href=\"javascript:Bookmarks(\'$arr{'Code'}\')\">$arr{'Title'}</a> "; } print "</b>"; } elsif ($line =~ /<<codeinput>>/) { print "<input type=hidden name=Code value=\"$args{'Code'}\">\n"; } else { print $line; } } } #+++++++++++++++++++++++++++++++++++++++++++++++++++++ sub AddBookmark { $query = "SELECT ID From Bookmarks WHERE Code LIKE \"$args{'Code'}\%\" AND Login=$login"; $sth = $dbh->Query($query)|| print "$Mysql::db_errstr"; $nc = $sth->NumRows; if (length($nc) == 1) { $nc = $args{'Code'} . "0" . $nc; } else { $nc = $args{'Code'} . $nc; } if ($args{'Path'}) { $query = "INSERT INTO Bookmarks (Login,Type,Code,Path,Title,Description) VALUES ($login,0,\"$nc\",\"$args{'Path'}\",\"$args{'Title'}\",\"$args{'Description'}\")"; $sth = $dbh->Query($query)|| print "$Mysql::db_errstr"; }

&Bookmarks;
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

81

} #+++++++++++++++++++++++++++++++++++++++++++++++++++++ sub AddFolder { $query = "SELECT ID From Bookmarks WHERE Code LIKE \"$args{'Code'}\%\" AND Login=$login"; $sth = $dbh->Query($query)|| print "$Mysql::db_errstr"; $nc = $sth->NumRows; if (length($nc) == 1) { $nc = $args{'Code'} . "0" . $nc; } else { $nc = $args{'Code'} . $nc; } if ($args{'Title'}) { $query = "INSERT INTO Bookmarks (Login,Type,Code,Title,Description) VALUES ($login,1,\"$nc\",\"$args{'Title'}\",\"$args{'Description'}\")"; $sth = $dbh->Query($query)|| print "$Mysql::db_errstr"; } &Bookmarks; } #+++++++++++++++++++++++++++++++++++++++++++++++++++++ sub DeleteBookmark { $query = "DELETE FROM Bookmarks WHERE Code LIKE \"$args{'BookmarkID'}\ %\" AND Login=$login"; $sth = $dbh->Query($query)|| print "$Mysql::db_errstr"; &Bookmarks; } #+++++++++++++++++++++++++++++++++++++++++++++++++++++ sub AddTask
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

82

{ if ($args{'Description'}) { ($year,$month,$day) = split ("-",$args{'Date'}); $month_length = &Date_DaysInMonth($month,$year); if ($day > $month_length) { $args{'Date'} = "$year-$month-$month_length"; } if (!$args{'SendEmail'}) { $args{'Email'} = ""; } if (!$args{'SendSMS'}) { $args{'SMS'} = ""; } if (!$args{'SendPager'}) { $args{'Pager'} = ""; } if ($args{'Transliterate'}) { $args{'Message'} = &Transliterate($args{'Message'}); } $query = "INSERT INTO Tasks (Login,Date, Time, Category, Description, RemTime, Email, SMS, Operator, Pager, Message) VALUES ($login,\"$args{'Date'}\", \"$args{'Time'}\", \"$args{'Category'}\", \"$args{'Descr iption'}\", \"$args{'RemTime'}\", \"$args{'Email'}\", \"$args{'SMS'}\", \"$args{'O perator'}\", \"$args{'Pager'}\", \"$args{'Message'}\")"; $sth = $dbh->Query($query) || print "$Mysql::db_errstr"; &GoToDate($args{'Date'}); } else { &GoToDate; } } #+++++++++++++++++++++++++++++++++++++++++++++++++++++ sub AddDate { if ($args{'Description'}) { $month_length = &Date_DaysInMonth($args{'Month'},2000); if ($args{'Day'} > $month_length) { $args{'Day'} = $month_length; } $query = "INSERT INTO Dates (Login,Day,Month,Year,Category,Description)
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

83

VALUES ($login,\"$args{'Day'}\",\"$args{'Month'}\",\"$args{'Year'}\",\"$args{'Category'}\ ",\"$args{'Description'}\")"; $sth = $dbh->Query($query) || print "$Mysql::db_errstr"; if ($args{'Party'}) { $args{'Formname'} = 'party'; &ShowForm; } else { &GoToDate($args{'Date'}); } } else { &GoToDate; } } #+++++++++++++++++++++++++++++ +++++++++++++++++++++++++++ sub UpdateTask { $query = "DELETE FROM Tasks WHERE ID=$args{'ID'} AND Login=$login"; $sth = $dbh->Query($query); &AddTask; } # ++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++ sub DeleteTask { $query = "DELETE FROM Tasks WHERE ID=$args{'TaskID'} AND Login=$login"; $sth = $dbh->Query($query); &GoToDate($args{'Date'}); }

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

84

Anexa 3 Codul surs al programului service.pl #!/usr/bin/perl use Socket; use Mysql; print "Content-type: text/html\n\n"; $dbh = Mysql->Connect($host,$database,$user,$password); $tm = time - 1800; $query = "DELETE FROM Sessions WHERE Time < $tm"; $sth = $dbh->Query($query); ($sec,$min,$hour,$day,$month,$year,$week_day,$yday,$isdst) = localtime(time); $year += 1900; $month++; if ($min < 10) elsif ($min >=10 && $min <20) elsif ($min >=20 && $min <30) elsif ($min >=30 && $min <40) elsif ($min >=40 && $min <50) elsif ($min >=50) { $min="00"; } { $min="10"; } { $min="20"; } { $min="30"; } { $min="40"; } { $min="50"; }

$query = "SELECT RemTime, Email, Operator, Pager, SMS, Message FROM Tasks WHERE RemTime=\"$year-$month-$day $hour:$min:00\""; $sth = $dbh->Query($query); $ec="0";$sc="0";$cp="0"; for ($i=0;$i<$sth->NumRows;$i++) { %arr = $sth->FetchHash;

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

85

if ($arr{'Email'})

{ &SendEmail('asistent.hit.md',$arr{'Email'},'Measjul de

avertizare',$arr{'Message'}); $ec++;} if ($arr{'SMS'}) { &SendSMS($arr{'SMS'},$arr{'Message'}); $sc++;} if ($arr{'Pager'}) { &SendPager($arr{'Operator'},$arr{'Pager'},$arr{'Message'}); $cp++;} } ($sec,$min,$hour,$day,$month,$year,$week_day,$yday,$isdst) = localtime(time); $year += 1900; $month++; $query = "SELECT * FROM Sessions"; $sth = $dbh->Query($query); $ses = $sth->NumRows; print "[$year/$month/$day $hour:$min:$sec] $ses sessions active. $ec email messages, $sc SMS messages, $cp pager messages was sent";

sub SendEmail { local ($from,$to,$subject,$message) = @_; $host="dnt.md"; $port="25"; socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp')); $iaddr = inet_aton($host); $paddr = sockaddr_in($port, $iaddr); connect(SOCK, $paddr); $data=<SOCK>; send (SOCK,"helo titan\n", 0); $data=<SOCK>;
Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

86

send (SOCK,"mail from: <>\n", 0); $data=<SOCK>; send (SOCK,"rcpt to: $to\n", 0); $data=<SOCK>; send (SOCK,"data\n", 0); $data=<SOCK>;

send (SOCK,"from: $from\n", 0); send (SOCK,"Subject: $subject\n", 0); send (SOCK,"To: $to\n", 0); send (SOCK,"Content-type: text/plain\n", 0); send (SOCK,"\n", 0); send (SOCK,"$message\n", 0); send (SOCK,".\n", 0); $data=<SOCK>; send (SOCK,"quit\n", 0); $data=<SOCK>; close(SOCK); } sub SendPager { local($operator,$pager,$message) = @_; if ($operator == 1) { &SendEmail("","540540\@pagers.md",$pager,"secretary.hit.md reminder \n$message"); }

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

87

Anexa 4 Bloc schema programului secretary.pl


STAR T

Adaugarea tuturor modulelor necesare application/x-www-formurlencoded multipart/form-data

Codarea formei

Decodarea dupa metoda application/x-wwwform-urlencoded

Decodarea dupa metoda multipart/form-data

Atribuim Action=login

nu

Identificatorul sessiunii este valid

da

Modificam tabelul Sessions

addtask showform gotodate showweek showmonth Blocul de proceduri de lucru cu Calendarul

notebook addnote viewnote Blocul de proceduri de lucru cu Notiele

Valoarea cimpulului ascuns Action

address addcontact editcontac

registration login logout Blocul de proceduri de inregistrarea i intrarea n sistem

Blocul de proceduri de lucru cu Carnetul de adrese

Afisarea html fiierului cu forma i parametrii noi

STOP Coala

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

88

Anexa 5 Interaciunea programului cu SGBD

Programul in Perl

Modulul DBI

Driver Oracle

Driver MySQL

Driver Postgres

Driver N

SGBD Oracle

SGBD MySQL

SGBD Posrgres

SGBD N

BD

BD

BD

BD

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

89

Anexa 6 Interaciune client-server la executarea programului CGI

Client

Tremite URL programului

Serverul tremite inapoi rezultatul

Server

Se d la execuie CGI programa i se tranmit datele

Rezultatele programului CGI sunt tremise la server

CGI programa

CGI programul primete datele

Programul prelucreaz datele Proceduri de lucru cu BD, prelucrarea formelor, lucrul cu pota electronica

Programul tipreste la ieirea OUTPUT rezultatul

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

90

Anexa 7 Interfaa AEP

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

91

Anexa 8 Bloc schema programului service.pl

STAR T

Adaugarea tuturor modulelor necesare i decodarea datelor tergerea tuturor sesiunilor vechi din tabelul Sessions

Din BD se ieu toate evinementele de memorare

Email

M sin ai ta sc t ur i

nu

da Tipul evinemen tului Pager SMS

Tremiterea e-mailui

Tremiterea pagerului

Tremiterea SMS

STOP

UTM.2152.02.101.ME
Mod Coala Nr. document Semnat. Data

Coala

92