Aplicatie Pentru Managementul Contractelor de Achizitie

UNIVERSITATEA ”TITU MAIORESCU” DIN BUCUREȘTI

FACULTATEA DE INFORMATICĂ

LUCRARE DE LICENȚĂ

Aplicație pentru managementul

contractelor de achiziție

COORDONATOR ȘTIINȚIFIC:

Conf. univ. dr. Apostolescu Tudor Cătălin

ABSOLVENT:

Ion L. Robert Marius

SESIUNEA IULIE

2016

CUPRINS

Introducere. Elemente descriptive ale aplicatiilor web

In lucrarea prezentata sunt descrise tehnologii, arhitecturi si aplicatii software folosite pentru proiectarea, dezvoltarea si utilizarea unei aplicatii web. Scopul aplicatiei web propuese este acela de a oferi suport in managementul contractelor de achizitie, pentru o instituite publica. Datele referitoare la contracte si elementele descriptive ale contractelor sunt stocate intr-o baza de date relationala, la nivelul logic datele sunt preluate in seturi de date si prelucrate de aplicatie. Nivelul de prezentare este sustint de serverul web ce furnizeaza pagini web dinamice in functie de necesitatile utilizatorilor.

Internetul si intranetul

Scurta istorie a internetului

Internetul este sistemul global al rețelelor de calculatoare interconectate care utilizează Internet Protocol ( TCP / IP ) pentru a lega de dipozitive din întreaga lume . Este format din multimea rețelelor fie ca sunt private, publice , academice, de afaceri sau rețelele guvernamentale. Internetul oferă o gamă largă de resurse și servicii de informare , cum ar fi documentele interconectate hipertext și aplicații ale World Wide Web ( WWW ) , poșta electronică , serviciile de telefonie (VOIP) și rețele peer-to -peer pentru partajarea de fișiere .

Cercetarea în domeniul de comutare de pachete a început la începutul anilor 1960 si retelele cu pachete comutate ca reteaua NPL, ARPANET, Ciclade, Tymnet și Telenet, au fost dezvoltate în la sfârșitul anilor 1960 și 1970, folosind o varietate de protocoale. Proiectul ARPANET a condus la dezvoltarea de protocoale pentru Internetworking (conectarea unei retele de calculataoare la alta retea prin folosirea de gateway), prin care mai multe rețele separate ar putea fi unite într-o singură rețea de rețele.

In 1982, Internet Protocol Suite (TCP / IP) a fost standardizat, ceea ce a permis proliferarea la nivel mondial a rețelelor interconectate.Acces în rețea TCP / IP s-a extins din nou, în 1986, când National Science Foundation Network a oferit acces la site-urile gazduite de supercalculatoare din Statele Unite ale Americii pentru cercetători, initial la viteze de 56 kbit/s și mai târziu la 1,5 Mbit/s și 45 Mbiți/s. Furnizori de servicii Internet (ISP) au apărut la sfârșitul anilor 1980 și începutul anilor 1990. ARPANET a fost scoasă din funcțiune în 1990. Până în 1995, internetul a fost comercializat in SUA cand NSFnet a fost scoasă din funcțiune, eliminarea ultimelor restricții privind utilizarea Internetului pentru a transporta traficul comercial. Internetul sa extins rapid în Europa și Australia, în la mijlocul anilor 1980 și Asia, la sfârșitul anilor 1980 și începutul anilor 1990.

In 1990 Tim Berners-Lee a inceput lucrul al WorldWideWeb, primul browser web. Pana la sfarsitul anului a construit toate instrumentele necesare functionarii WWW: HyperText Transfer Protocol (HTTP), HyperTextMarkup Language (HTML), primul browser Web care incorpora un editor HTML cu care se puteau accesa grupuri de stiri Usenet si cat si fisiere prin protocolul FTP. A fost construit primul HTTP server software si primul web server (http://info.cern.ch) si primele pagini Web care drescriau proiectul.

Internetul continuă să crească, condus de cantități tot mai mari de informații on-line și de cunoștințe, comerț, divertisment și rețele sociale. În timpul anilor 1990, s-a estimat că traficul pe Internet a crescut cu 100% pe an, în timp ce medie anuală de creștere a numărului de utilizatori de Internet a fost considerat a fi între 20% și 50%. Această creștere este adesea atribuită lipsei administrației centrale, ceea ce a permis o creștere organică a rețelei,precum si a naturii non proprietare a protocoalelor de Internet, care încurajează interoperabilitatea furnizorilor și împiedica orice companie de a exercita prea mult control asupra rețelei. La data de 31 martie 2011, numărul total estimat de utilizatori de Internet a fost de 2.09 miliarde (30,2% din populația lumii) insa acest numar este in continua crestere.

Tabel 1: utilizatori de internet pe glob. Sursa: International Telecommunications Union

Ce este intranetul

Un intranet este o rețea privată accesibilă numai personalului unei organizații. O gamă largă de informații și de servicii furnizate de sistemele IT interne ale organizației sunt disponibile intern, nefiind disponibile publicului de pe Internet. Un Intranet la nivel de companie poate constitui punctul central al comunicării interne oferind suport pentru colaborare, ofera un singur punct de pornire pentru a avea acces la resursele interne și externe. În forma sa cea mai simplă este un Intranet bazat pe tehnologiile pentru rețelele locale (LAN) și rețele de arie largă (WAN

Intranetul este folosit pentru a furniza instrumente, de exemplu, colaborare (pentru a facilita lucrul în grupuri și teleconferințe) sau accesul la site-ul de vânzări și instrumente de management al relațiilor cu clienții, site-ul management de proiect, avand ca scop cresterea informarii si a productivitatii.Un număr mare de angajați pot discuta aspecte-cheie într-o aplicație de tip forum Intranet si pot aduce noi idei în management, productivitate, calitate și alte probleme ale corporatiei.

Într-un Intranet de mari dimensiuni, traficul site-urilor este adesea similar cu traficul site-ul public al companiei. Corporatiile mai mari permit utilizatorilor din Intranet accesul public la Internet prin intermediul serverelor firewall. Serverelor firewall au rolul de a citi mesajele care vin și pleacă pentru pastrarea securitatii.

Figura 1: Pozitionarea Intranet fata de Internet. Sursa: https://msdn.microsoft.com/

Atunci când o parte a unui Intranet este făcută accesibilă clienților și alte persoane din afara companiei, acea parte devine parte a unui Extranet. Companiile pot trimite mesaje private prin intermediul rețelei publice, folosind tehnici de criptare / decriptare și alte garanții de securitate pentru a conecta o parte din Intranet la Intranetul din alta locatie.

Intraneturile și utilizarea lor sunt în creștere rapidă. În conformitate cu „Intranet design annual” pe 2007 de la Nielsen Norman Group, numărul de pagini de pe intranetul participanților o medie de 200.000 de-a lungul anilor 2001 până în 2003 și a crescut la o medie de 6 milioane de pagini în perioada 2005-2007.

Beneficiile aplicatiilor web Intranet

Cresterea productivitatea forței de muncă: Intraneturile poate ajuta utilizatorii să localizeze și să vizualizeze informații mai rapid prin folosirea de aplicațiile relevante pentru rolurile și responsabilitățile lor. Cu ajutorul unei interfețe de browser web, utilizatorii pot avea acces la datele deținute în orice bază de date pe care compania dorește să o pună la dispoziție, în orice moment și – sub rezerva dispozițiilor de securitate – de oriunde în stațiile de lucru ale companiei. Creșterea capacitatea angajaților de a-și îndeplini sarcinile mai rapid, cu mai mult cu acuratețe și cu încredere că au informații corecte folosite de toti membrii companiei. De asemenea, ajută la îmbunătățirea serviciilor furnizate utilizatorilor.

Timp: Intraneturile permite organizațiilor să distribuie informații către angajați pe bază de necesității lor. Angajații pot accesa informații relevante decât să fie caute prin e-mail.

Comunicare: Intraneturile poate servi ca un puternic instrument de comunicare în cadrul unei companii. Prin furnizarea de informații prin Intranet, personalul are posibilitatea fi la curent cu orientarea strategică a companiei. Câteva exemple de comunicare ar fi chat-ul, e-mail, forum.

Publicarea Web permite informatiilor corporative complicate să fie menținute și accesate usor în întreaga companie cu ajutorul tehnologiilor hipermedia și Web. Exemplele includ: manuale ale echipamentelor, proceduri de lucru, politicile companiei, standarde de afaceri, fluxuri de știri, și chiar de formare, pot fi accesate folosind tehnologi comune de Internet (fisiere Acrobat – PDF, fișiere Flash, aplicații CGI). Pentru că fiecare poat actualiza copia on-line a unui document, cea mai recentă versiune este de obicei disponibil angajaților folosind Intranet.

Operațiunile de afaceri și de management: Intraneturile sunt de asemenea folosite ca o platformă pentru dezvoltarea și implementarea aplicațiilor pentru a sprijini operațiunile de afaceri și a deciziilor în cadrul întreprinderii internetworked.

Eficientizarea costurilor: Utilizatorii pot vizualiza informații și date prin browser web, mai degrabă decât prin menținerea de documentelor fizice, cum ar fi manualele de proceduri, lista telefonică internă și formulare rechiziție. Acest lucru poate scatea costul cu tipărirea, copierea documentelor, stocarea documentelor precum și costuri de regie de întreținere a documentelor.
Creste colaborarea:. Informația este ușor accesibil de către toți utilizatorii autorizați, ceea ce permite lucrul în echipă.

Independente de platforma: browsere web conforme cu standardele sunt disponibile pentru Windows, Mac și UNIX.

Construit pentru un segment tinta: Companii pot specificații de mediu, prin care, dezvoltatori de aplicatii pot sa scrie aplicatii Intranet, care pot fi accesate de un singur browser (sunt eliminate problemele de compatibilitate cross-browser). Din moment ce Intraneturile sunt specifice utilizatorului (care necesită baze de date / autentificare de rețea înainte de acces), este cunoscut cine este utilizatorul si se poate personaliza interfata (titlu loc de muncă, departament) sau se pot afisa mesaje individuale ( "Felicitări Mihai, ai incheiat contractul 50! ").

Promovarea culturii corporative comune: Fiecare utilizator are posibilitatea de a vizualiza aceleași informații în cadrul Intranet.

Actualizări imediate: Intraneturile face posibilă pentru a oferirea de informatii cu modificări "la zi”.

Este o arhitectură de calcul distribuit: Intranet poate fi, de asemenea, legat de sistemul informatic de management al unei companii, de exemplu, un sistem de păstrare a pontajului.

Website si tipuri de aplicatii web

Un site web (ex: www.gov.ro/) este o colecție de pagini web relationate, inclusiv conținut multimedia, identificat în mod obișnuit cu un nume de domeniu comun, și publicat pe cel puțin un server de web. Un site web poate fi accesat prin intermediul Internet Protocol (IP), cum ar fi Internetul, sau o rețea privată locală (LAN), prin apelarea uniform resource locator (URL), care identifică site-ul. Toate site-urile accesibile publicului constituie în mod colectiv World Wide Web, in timp ce site-urile private, sunt, de obicei o parte dintr-un Intranet.

Paginile web, care sunt elementele de baza ale site-urilor, sunt documente compuse din text simplu intercalate cu instrucțiuni de formatare ale Hypertext Markup Language (HTML, XHTML). Acestea pot include elemente din alte site-uri, prin referinte. Paginile web sunt accesate și transportate cu Hypertext Transfer Protocol (HTTP), care poate fi si criptat Secure HTTP (HTTPS) pentru a asigura securitatea și confidențialitatea datelor pentru utilizator. Aplicatia utilizatorului, un browser web, redă conținutul paginii conform instrucțiunilor sale HTML de marcare pe ecran.

Figura 2:Cum este afisat in browser website-ul www.gov.ro

Un site este găzduit pe un sistem informatic, cunoscut ca un web server, numit si un server HTTP. Acești termeni se pot referi, de asemenea, la software-ul care ruleaza pe aceste sisteme care primesc cererile și livrează paginile web, ca răspuns la solicitările de la utilizatorii site-ului. Apache este software-ul de web server cel mai frecvent utilizat (conform statisticilor Netcraft) urmat de IIS Microsoft. Microsoft IIS este indeosebi folosit in Intraneturi.

Figura 3: Distributia utilizatii serverelor web 1995 – 2014

Web site static. Un site web static are pagini web stocate pe server în formatul care este trimis la un browser web client. Acesta este codat în principal în Hypertext Markup Language (HTML); Cascading Style Sheets (CSS) sunt folosite pentru a controla aspectul dupa folosirea HTML. Imaginile sunt utilizate atat pentru continut cat si pentru formatare.Elementele audio sau video ar putea fi considerate, de asemenea conținut "static" în cazul în care redă în mod automat sau este, în general, non-interactiv.

Acest tip de site-ul afișează, de obicei, aceleași informații pentru toți vizitatorii. Similar cu predarea unei broșuri tipărite către clienți sau clienți, un site web static va furniza, în general, informații coerente, standard pentru o perioadă mai lungă de timp. Cu toate că proprietarul site-ului poate face periodic actualizări, acesta este un proces manual de a edita textul, fotografiile și alte tipuri de continut. Formele simple sau exemplele de marketing de site-uri web, cum ar fi site-ul clasic, un site de cinci pagini sau un site web broșură sunt de multe ori site-uri web statice, deoarece acestea prezintă informații statice predefinite pentru utilizator. Acest lucru poate include informații despre o companie, produse si servicii. Site-uri web statice pot fi editate folosind patru mari categorii de software:

editori de text, cum ar fi Notepad sau TextEdit, în cazul în care conținutul și HTML de marcare sunt manipulate în mod direct în cadrul programului editor

WYSIWYG editori offline, cum ar fi Microsoft FrontPage si Adobe Dreamweaver cu care site-ul este editat folosind o interfață grafică, iar elementele de limbaj HTML finală este generat automat de software-ul editor

WYSIWYG editori on-line, care creează conținut media îmbogățit online de prezentare cum ar fi pagini web, widget-uri, intro, bloguri și alte documente.

editori bazate pe șabloane, cum ar fi WordPress permit utilizatorilor să creeze și să încarce pagini web pe un server web, fără cunoștințe detaliate HTML, deoarece acestea aleg un șablon adecvat dintr-o paletă și adăugați imagini și text la acesta într-un mod de desktop publishing fără manipulare directă a codului HTML.

Web site dinamic. Un site dinamic este o aplicatie web care se schimbă sau se particularizează în mod frecvent și în mod automat. Paginile dinamice server-side sunt generate "on the fly" de un procesator care produce HTML (CSS sunt responsabile pentru formatare, sunt fișiere statice). Există o gamă largă de sisteme software, cum ar fi CGI, Servlets Java și Java Server Pages (JSP), Active Server Pages(ASP) și ColdFusion (CFML), care sunt disponibile pentru a genera sisteme dinamice web și site-uri dinamice. Diverse cadre de aplicații web (web application framework) și sabloane web sunt disponibile pentru uz general precum si limbaje de programare cum ar fi Perl, PHP, VB.NET, C#, Python și Ruby pentru a face mai rapid și mai ușor procesul de a crea site-uri web dinamice complexe.

Figura 4: Distributia limbajelor de tip server side; sursa https://en.wikipedia.org/wiki/Website

Tipuri de web-site. Site-uri interactive fac parte din comunitatea Web 2.0 de site-uri, și să permită o interactivitate între proprietarul site-ului și vizitatorii site-ului. Site-uri statice servesc informații, dar nu permit interctiunea cu publicul în mod direct.Unele site-uri web sunt informaționale sau produse de entuziaști sau pentru uz personal sau de divertisment. Multe site-uri web urmăresc profitul, folosind unul sau mai multe modele de afaceri, inclusiv:

Postarea de conținut interesant cu scopul de vânzare de publicitate contextuală, fie prin vânzări directe, fie prin intermediul unei rețele de publicitate.

E-commerce – produsele sau serviciile sunt achiziționate direct prin intermediul site-ul web

Produse de publicitate sau servicii disponibile la o afacere de tip B&M (detine atat facilitatatile de productie cati si o retea de distributie si vanzare)

Freemium – conținutul de bază este disponibil gratuit, dar conținutul premium este plătit

Tabelul 2: Tipuri de sit-uri web

Aplicatia web Managementul Contractelor de Achizitie este o aplicatie web ce este gazduita de un server web ISS, in Intranetul unei companii. Este o aplicatie web dinamica, cu pagini ASP.Net ce folosesc fisiere CSS (Cascading Style Sheets) pentru formatare. Aplicatia se conecteaza la o baza de date si genereaza continut dinamic in functie de cererile transmmise de utilizatori.

Structuri de aplicatii web

Continut

Informatia furnizata de o aplicatie web este unul din cei mai importanti factori pentru succesul acelei aplicatii, în principal datorita originii web-ului ca un mediu informational. Modelarea continutului în sensul de modelare pura a datelor este suficienta în mod normal pentru aplicatiile web statice. Aplicatiile web complexe solicita în plus modelarea ce tin de utilizarea aplicatiilor. Modelarea continutului include analiza domeniului problemei pentru a identifica particularitatile. Din proiectarea software clasica sunt preluate modelarea pentru aspectele statice si dinamice. Este important sa fie evaluate urmatoarele caracteristici:

Caracterul axat pe text si fisiere media : este necesar sa luam în considerare toate tipurile de formate media când este modelat continutul, inclusiv structurile pe care informatia este bazata.

Integrarea datelor existente si software-ului: este necesara adaptarea strucutrilor de date existenta si a componentelor software la mediul web. Modelarea continutului trebuie sa îndeplineasca doua obiective contradictorii: trebuie sa acopere cerintele de continut ale aplicatiei web pentru o extindere ulterioara si trebuie sa includa structurile de date.

Modelarea continutului se focalizeaza pe transferarea informatiei si cerintelor functionale, stabilite prin proiectarea cerintelor, într-un model. Caracterul hipertext al aplicatiilor web si cerintele prezentarii acesteia nu vor fi luate în considerare.

Non-linearitatea hipertextului este o proprietate importanta de care trebuie tinut cont când modelam aplicatiile web. Din acest motiv structura hipertext trebuie proiectata cu atentie. Aceasta poate fi realizata prin utilizarea structurilor de acces adecvate – optiuni de navigare pentru eliminarea riscului de „ratacire” a utilizatorilor cat si a scaderii gradului de complexitate a navigarii in site.

Obiectivul modelarii hipertext (cunoscuta si ca modelarea navigarii) este are ca scop definirea cailor de navigare disponibile utilizatorilor. Modelarea hipertext genereaza un rezultat dublu: în primul rând produce modelul structurii hipertext (modelul structurii de navigare) care defineste structura hipertextului, respectiv ce clase ale modelului de continut pot fi vizitate prin navigare. În al doilea rând, rafineaza modelul de structura hipertext prin accesarea elementelor sub forma unui model de acces.

Modelarea hipertext se focalizeaza pe aspectele structurale ale hipertextului si elementele de acces. Comportamentul de navigare a unei aplicatii web nu este în mod normal reprezentat explicit, deoarece ofera informatii aditionale nesemnificative pentru dezvoltatori.

Figura 5: Model de navigare intr-un site. Sursa: http://wwwebdesigngeek.com/website-design/website-design-content-navigation/

Modelarea structurii hipertext se bazeaza pe conceptele hipertext (noduri – pagini sau documente si legaturi între aceste noduri). Punctul de plecare folosit pentru crearea modelului structurii hipertext este de obicei modelul de continut care contine clasele si obiectele care vor fi disponibile ca noduri în hipertext. Deseori modelul de structura hipertext este specificat ca o perspectiva a modelului de continut, fiind uneori numit perspectiva navigationala. Astfel, un nod este specificat ca o perspectiva a modelului de continut, selectând unul sau mai multe obiecte din continut. Unele metode modeleaza structura hipertext indiferent de modelul de continut. De exemplu OOHDM (Object-Oriented Hypermedia Design Method) ofera o abordare de a modela scenariile, în care modelul de structura hipertext poate fi construit direct pe baza cerintelor de navigare identificate de aceste scenarii.

În literatura de specialitate distingem tipuri de legaturi folosite pentru rafinarea ulterioara a semanticii modelului structurii hipertext. De exemplu metoda HDM (Hypertext Design Model) specifica urmatoarele tipuri de legaturi:

Legaturile structurale conecteaza elementele aceluiasi nod (de exemplu de la rezumatul recenziei la detaliile recenziei)

Legaturile de perspectiva plaseaza diferite perspective ale unui nod în relatie cu altele (de exemplu versiunile PostScript si PDF ale unui articol).

Legaturile aplicatiei plaseaza noduri diferite în relatie unul cu altul în functie de aplicatie (de exemplu o legatura care trimite la "cel mai bun articol").

Alte clasificari se bazeaza pe posibilul transport al informatiei pe parcursul navigarii. De exemplu metoda WebML (Web Modeling Language) specifica urmatoarele tipuri de legaturi:

legaturi contextuale – transmit informatia contextuala (de exemplu numarul unic al articolului pentru un site de stiri)

legaturi noncontextuale – nu au asociate informatii de context (de exemplu legaturi care duc de la o stire singulara la lista tuturor stirilor dintr-o zi)

Datorita distributiei nodurilor la nivel hipertext asupra paginilor de la nivelul prezentare, WebML specifica în plus urmatoarele tipuri de legaturi:

legaturi intra-pagina – sunt utilizate când sursa si destinatia legaturii apartin aceleiasi pagini (de exemplu când o legatura permite utilizatorului sa navigheze direct la rezumatul articolului, care este afisat în partea de jos a paginii);

legaturi inter-pagini – sunt utilizate când sursa si destinatia se afla pe pagini diferite (de exemplu când informatii detaliate despre redactor si stirile lui se gasesc pe pagini diferite).

Pe baza cerintelor functionale ale aplicatiilor web, metoda de modelare UWE defineste urmatoarele tipuri de legaturi:

legaturi de navigare – sunt utilizate pentru a naviga între noduri (de exemplu legaturi între redactori si stirile lui)

legaturile procesului – indica nodul de început al unui proces (de exemplu spre începutul unui capitol dintr-o documentatie online)

legaturile externe – indica un nod care nu apartine în mod direct aplicatiei (de exemplu spre referinte externe sau site-uri conexe).

Metoda de modelare OO-H (Object-Oriented Hypermedia) defineste cinci tipuri de legaturi dupa cum urmeaza:

legaturi I (legaturi interne) – indica nodurile din interiorul granitelor unei cerinte de navigare (de exemplu legaturi interne la detaliile articolului realizat de unul dintre redactori)

legaturi T (legaturi transversale) – indica nodurile care satisfac alte cerinte de navigare (de exemplu de la un redactor la articolele acestuia)

legaturi R (legaturile cerintei) – indica începutul unei cai de navigare (de exemplu adaugarea unei noi stiri)

legaturi X (legaturi externe) – indica noduri externe (de exemplu la site-uri de continut media externe)

legaturi S (legaturile serviciului) – indica (împreuna cu legaturile corespunzatoare de raspuns) spre servicii (de exemplu spre un motor de cautare extern)

Din punct de vedere al tipului de continut, aplicatiile web pot fi impartite in urmatoarele categorii:

aplicatii web cu continut static, de prezentare a unei societati, locatii turistice dar care au asocit un forum unde utilizatorii pot inregistra opinii, pot pune intrebari si pot obtine informatii actualizate

aplicatii web cu contiut static, actualizat frecvent – siteurile de stiri

aplicatii web media – directoare de fisiere video sau audio

aplicatii web cu continut dinamic din baze de date. Sunt folosite indeosebi de corporatii in Intranet pentru a oferi aaces la o baza de in formatie unitara angajatilor.

aplicatii web de interfata pentru servicii online. Servicii de stocare cloud, servicii de transfer fisiere, servicii de portare a datelor dintr-un format in alt format.

Aplicatii web de comert. Au ca scop prezentarea porduselor, pentru utilizatori publici sau privati, cu scopul comercializarii. Galeriile foto ale produselor cat si descrierea producatorilor ajuta utilizatorii in alegerea produselor potrivite nevoilor lor.

Aplicati web pentru resurse umane. Au continut adus de utilizatori. Utilizatorii ce doresc sa se angajeze pot stoca fisiere online iar angajatorii pot crea continut si pagini personalizate pe care posibili angajati le pot vizita pentru informare.

Aplicatii web de tip blog, sunt un mix intre site-urile statice si aplicatiile web. Sunt prezente platforme (Joomla) ce stocheaza intr-o structura propietarea continutul pe un server web cu articole stocate intr-o baza de date.

Aplicatii web de tip forum. Sunt folosite de comunitatile online cu interese comune pentru a discuta si impartii informati. Articolele, categoriile si utilizatorii sunt stocate intr-o baza de date. Afizarea este realizata dinamic, in functie de nodul accesat de utilizator.

Evolutie aplicatii web dinamice

Aplicatii web au evoluat odata cu tehnologia. De la site-uri statice HTML apoi la pagini dinamice si aplicații AJAX mai recent, prin tehnologii multiple dinamice (PHP, ASP, Java, Ruby on Rails). Arhitecturile de aplicații Web și instrumentele lor dedicate de dezvoltare înregistreaza in mod regulat progrese majore.

In ultimii ani au aparut un nou val de tehnologii care vin si transforma peisajul aplicațiilor Web. Spre deosebire de AJAX, înainte, nu există un nume încă pentru această nouă tendință. Momentant este identificata ca fiind "MV * arhitecturi client-side".

Principiul de baza este urmatorul: serverul nu mai gestionează întreaga pagină si transmite format HTML (cu sau fara scripturi Java) catre client, acum serverul web trimite numai date brute către client; toate de management de generare de pagini și interacțiuni ale utilizatorilor se face pe partea de client, adică în browser.

Figura 6: Evolutia arhitecturii aplicatiilor web: Sursa http://blog.octo.com/en/new-web-application-architectures-and-impacts-for-enterprises-1/

Pagini web statice. Pe prima diagramă din figura 6, aplicația Web se execută în principal pe partea de server. Acesta trimite direct la browser-pagini HTML, CSS și JavaScript eventual pentru îmbunătățirea comportamentului. Apoi, pentru fiecare acțiune de utilizator care necesită noi date, serverul este interogat și returnează o pagină cu totul nou HTML.

Aplicatii web AJAX. Cea de a doua diagramă din figura 6 introduce modelul AJAX, pentru Asynchronous JavaScript și XML, care a apărut la mijlocul anilor 2000.Acest principiu de arhitectura poate face aplicatia web sa raspunda mai rapid prin reducerea schimburilor între browser și server. Atunci când o acțiune de utilizator generează un apel client pentru a prelua noi date, serverul returnează numai fragmente de vizualizare. Astfel, doar o mică parte a ecranului este împrospătată, mai degrabă decât întreaga pagină. Acest lucru necesită dezvoltarea de client-side JavaScript pentru a gestiona improspatari ale continutului de pagina parțiale, de exemplu, prin utilizarea bibliotecii jQuery și si functii Ajax sau altele de instrumentele mai integrate cu platformele server (cum ar fi Java Server Faces sau Google Web Toolkit pentru mediile Java). Aceasta arhitectura a adus mai mult de reactivitate dar, de asemenea, o mai mare complexitate. Ea are multe dezavantaje:

Utilizarea pe scară largă a jQuery poate face imposibilă menținerea aplicării, fără punerea în aplicare a normelor tehnice complexe. In ciuda scopul lor de a facilita dezvoltarea, framework-urile server-side, cum ar fi Java Server Faces s-au dovedit a fi foarte complexă, ceea ce duce la mai multe bug-uri și probleme de performanță.

Cea de a treia diagramă din figura 6 prezinta noul MV * arhitectura client-side, al cărui principiu difera de cele anterioare: acum serverul trimite numai date brute neformatate, iar clientul este responsabil pentru generarea afisarii din datele primite. Termenul MV * se referă la modelul MVC, pentru modelul View Controller, utilizat pe scară largă de server-side pentru a separa datele și gestionarea punctele de vedere. Mai mult și mai folosim acest termen MV *, în scopul de a evidenția diferențele mici de la implementari MVC pure.

Cel mai important punct în această nouă arhitectură este trecerea tuturor logica UI de la server la client.Această separare se referă între server și client nu este un fenomen nou. Acesta a fost preluat de aplicații mobile native, consumatoare de API-uri independente de client.

Motivul pentru care aceste arhitecturi nu au fost puse în aplicare mai devreme este practic, limbajul JavaScript este de la inceputul tehnologiei web. Principiul nu pare atât de revoluționar, deoarece este foarte similar cu aplicațiile clasice client-server care existau deja înainte de Web. Doi factori au limitat posibilitatea de a se dezvolta cu JavaScript:

limitări ale browser-ului în ceea ce privește capacitățile și performanțe

lipsa de industrializare a dezvoltării JavaScript

Ceea ce s-a schimbat a fost finalul limitărilor browser-uluiPrimul punct de evident a fost până când Microsoft lansează Internet Explorer 9 și 10. încetineala și bug-uri în versiunile anterioare au împiedicat lansarea in productie de aplicații care folosieau JavaScript masiv.

Descrierea paginilor

Multi dintre arhitectii de wplicatii web recomanda acum utilizarea diagramelor de descriere a paginilor (PDD – Page Descptions Diagams), ca un pas înainte de designul interfetei sau chiar ca un înlocuitor pentru designul interfetei. Diagramele de descriere a paginilor urmaresc doua aspecte:

Ce conținut face parte din această pagină

Ce este prioritate pentru fiecare parte de conținut

Figura 7: Diagrama de descriere a paginilor: Sursa: https://www.utexas.edu/learn/designprocess/structure.html

Un aspect comun pentru PDD este de a utiliza accesul orizontal pentru prioritate. De exemplu, un PDD pentru orice pagină da ar putea avea trei coloane. Prima coloană ar lista conținutul de mare prioritate. Cea de a doua coloană ar lista conținutul de prioritate medie. A treia coloană ar lista cel mai mic conținut de prioritate.

Avantajele diagramei de descriere a paginilor fata de designul interfetei includ:

clarifică tot conținutul pentru o anumită pagină

clarifică prioritatea fiecărei bucată de conținut

elimină complet design vizual (culoare, font, plasare) din această etapă a conversației.

Un studiu publicat de Nielsen Norman Goup arata modul in care utilizatorii citesc paginile web si cat de diferit este modul de citire a paginilor web fata de o publicatie.S-a constatat ca un comportament principal de citire al utilizatorilor a fost destul de consecvent în multe site-uri. M de lectură dominantă arată oarecum ca un F și are următoarele trei componente:

Utilizatorii citesc mai întâi într-o mișcare orizontală, de obicei peste partea superioară a zonei de conținut. Acest element inițial formează bara de sus a formei F.

In continuare, utilizatorii muta pagina ceva mai jos și apoi citesc peste într-o a doua mișcare orizontală, care acoperă în mod obișnuit o suprafață mai scurtă decât mișcarea anterioară. Acest element suplimentar formează bara inferioară a formei F.

În cele din urmă, utilizatorii cauta continut in partea stanga, într-o mișcare verticală. Acest ultim element formează tulpina F a lui.

Evident, exista modelele de cautare de continut ale utilizatorilor să nu fie cuprinse întotdeauna exact trei părți. Uneori, utilizatorii vor citi peste o a treia parte a conținutului. Alte ori ei vor citi numai intr-o trecere, ceea ce face modelul sa arate ca un L inversat (cu bara transversală la partea de sus) . In general, modelele de lectură seamănă aproximativ cu forma literei F, deși distanța dintre bara superioară și inferioară variază.

Figura 8: Modelul de citire si cautare de continut in pagini web. Sursa: https://www.nngroup.com/articles/f-shaped-pattern-reading-web-content/

 In figura 8 este afisat cu ajutorul unor hărți termice modul in care utilizatorii citesc trei tipuri diferite de pagini Web:

un articol în secțiunea "despre noi", a unui site al unei corporatii (extrema stanga),

o pagină de produs pe un site de e-commerce (centru)

pagină de rezultate ale motorului de căutare (google, extrema dreaptă).

Designul interfetei

La fel ca in modelarea aplicatiilor software desktop, modelarea interfetei aplicatiilor web trateaza interfata utilizator si necesita prezentarea aspectului unei aplicatii web. Spre deosebire de aplicatiile desktop, elementul central al prezentarii din aplicatiile web este pagina ca unitate de vizualizare.

Designul interfetei este realizata în momentul proiectarii structurii si comportamentului interfetei utilizator pentru a asigura interactiunea cu aplicatia web într-un mod simplu si intuitiv. Se tine cont de aspectele de comunicare si de reprezentare ale aplicatiei web. Prin designul interfetei se urmareste un rezultat dublu: în primul rând produce un concept de prezentare uniforma prin modelarea elementelor recurente din pagini (de exemplu meniuri si subsoluri de pagina). Interfata ar trebui în mod ideal sa afiseze structura fiecarei pagini si proiectarea câmpurilor textelor, imaginilor, formularelor etc., incluse în aceste pagini. În al doilea rând, pe lânga structura paginilor designul ales pentru interfata descrie aspecte comportamentale ale interfetei utilizator (de exemplu pe ce buton se apasa pentru a activa o functie din logica aplicatiei). Datorita diversitatii mari a optiunilor de navigare si riscului inerent al ratacirii utilizatorilor, trebuie avut în vedere acordarea unui sistem de ajutor pentru orientarea utilizatorilor la nivelul prezentarii. Aceasta poate fi realizata, de exemplu, prin afisarea caii de navigare curente sau a paginilor vizitate pe parcursul sesiunii active. Este o practica curenta, cu precadere in website-urile statice, ca link-urile (legaturile hypertext) desja accesate sai aiba o alta culoare decat link-urile care nu au fost accesate.

Stiluri – CSS

Cascading Style Sheets (CSS) este un limbaj folosit in definirea unui stil pentru a descrie prezentarea unui document scris într-un limbaj de marcare (HTML). Deși este cel mai des folosit pentru a seta stilul vizual de pagini web și interfețe scrise în HTML și XHTML, limbajul CSS poate fi aplicat oricărui document XML. Impreuna cu HTML și JavaScript, CSS este una din tehnologiile cel mai des folosite de cele mai multe site-uri web pentru a creea pagini web personalizate, interfețe de utilizator pentru aplicații web și interfețe de utilizator pentru multe aplicații mobile. Stilurile se pot defini in fisiere externe cu extensia CSS, astfel incat se pot utiliza toate proprietatile CSS.

In HTML, legatura cu documentul CSS extern se precizeaza in interiorul elementului astfel <head>:

<link rel=”stylesheet” type=”text/css” href=”exemplu.css” /> </head>

Pentru XML: <?xml-stylesheet href=”exemplu.css” type=”text/css”?>

CSS este destinat în primul rând pentru a permite separarea conținutului documentului de stilul documentului, inclusiv aspecte cum ar fi aspectul, culorile și fonturile. Această separare poate îmbunătăți accesibilitatea conținutului, oferă mai multă flexibilitate și control în specificarea caracteristicilor de prezentare, permite mai multor pagini HTML partajarea formatari prin specificarea fisierelor CSS relevante într-un fișier .css separat. Astfel reduce complexitatea și repetarea în conținutul paginilor HTML si permite, atunci cand este necesara, o schimbare unitara de stil, in toate paginile relationate de CSS.

Exista doua modalități de a defini un stil:

sintaxa CSS (Cascading Style Sheets);

sintaxa Javascript.

Stilurile sunt introduse în doi pași care sunt:

definirea stilului;

precizarea domeniului de aplicare a stilului.

In functie de modul de definire a stilurilor putem departtaja urmatoarele categorii:

stiluri dedicate – aceste stilui se aplica blocurilor de text pentru care sunt definite

clase de stiluri – aceste stiluri permit definirea unui stil general și folosirea lui oriunde este necesar. Exemplu: Definim o clasă de stiluri ‘‘ac” (albastru și centrat) în interiorul blocului <style>…</style>, aflat la rândul lui în blocul <head>…</head>:

stiluri identificate – Toate elementele unui document admite un atribut universal numit id. Atributul id poate identifica stilul utilizat de un element.

Orice tip de continut este incadrat intr-o „boxa” de afosare continuta de zonele padding, border, margin, fiecare cu laturile top, bottom, left si right.

Figura 9: Perimetrele zonelor in care este incadrat continutul. Sursa https://www.w3.org/TR/CSS2/box.html

Sablonul interfetei – layout

Un alt factor important pentru aplicatiile web este proiectarea grafica a layout-ului pentru interfata utilizator, care deseori este realizata de un grafician pe baza unor schite de baza sau conceputa prin implementarea paginilor prototip cu ajutorul utilitarelor.

Figura 10: Tipuri de interfata in functie de dispunerea elementelor principale. Sursa : http://www.stylisticweb.com/website-layouts

Elementele modelului sunt descrise pe trei nivele ierarhice:

pagina de prezentare descrie o pagina prezentata utilizatorului ca o unitate de vizualizare. Poate fi compusa din diferite unitati de prezentare.

unitate de prezentare este utila pentru gruparea elementelor interfetei utilizator si reprezinta un fragment logic al paginii. Prezinta un nod ce deriva din modelul hipertext.

Un element de prezentare este blocul de baza al modelului prezentare. Elementele de prezentare sunt un set de informatii ale nodului si pot include text, imagini, audio etc.

Relatia cu modelarea hipertext.Similar cu relationarea modelului de continut la modelul hipertext (structura link-urilor), trebuie sa specificat modul în care elementele hipertext trebuie relationate la elemente de interfata. Aceasta se realizeaza de obicei pornind de la ipoteza ca toate instantele unui nod vor fi afisate la nivelul de interfata cu utilizatorul. Interactiunile declansate de un utilizator nu sunt limitate doar la nivelul de interfata. Din acest motiv trebuie sa tinem cont de corespondenta acestora cu alte legaturi. Aceasta corespondenta poate fi sub forma obiectelor si logicii aplicatiei la nivelul de continut, iar pentru navigare la nivel hipertext.

Figura 11: Elemente ale interfetei care atrag utilizatorii. Sursa: https://blog.kissmetrics.com/landing-page-design-infographic/?wide=1

In figura 11 sunt prezentate o serie de elemente de interfata care imbunatatesc experienta utilizatorilor atunci cand acceseaza o pagina web:

Titlul paginii este clar si poate fi folosit in aplicatii de tip AdWords

Subtitlul estee clar si concis. Este unul dintre primele elemente citite de utilizatori

Scriere impecabila. Greselile de gramatica si ortografie trebuiesc evitate pentru a pastra increderea vizitatorilor.

Folosirea elementelor de crestere a increderii. Parerea altor vizitatori este importanta precum si certificate ale altor site-uri, diplome de la concursuri, certificate de securitate sau ISO.

Folosirea unui ton imperativ. Este util atunci cand se doreste ghidarea utilizatorilor intr-o anumita directie.

Butoanele si actiunile urmatoare trebuie sa iasa in evidente. Pot fi folosite cuvinte cheie precum „Nou”, „Descarca acum”

Folosirea precauta a link-urilor. Prea multe legaturi hypertext catere alte site-uril sau pagini o sa distraga atentia utilizatorilor, avand o influenta negativa

Se folosesc imagini si elemente video care au legatura cu continutul. Adaugarea de continut media pe prima pagina poate avea o influenta pozitiva asupra utilizatorilor si sa-i atraga sa exploreze continutul

Pastararea limitelor ecranului. Spatiul pe care utilizatorii il vad fara a derula pagina este locul unde cele mai importante parti ale continutului trebuie sa fie.

Testarea permanenta. Optimizarea paginilor trebuie sa fie un proces permanten si depinde de raspunsul utilizatorilor la schimbare.

Clasificarea arhitecturilor aplicatiilor web

Raspândirea din ce în ce mai mare a sistemelor software a condus la dezvoltarea arhitecturilor si infrastructurilor ce se adreseaza distribuirii datelor si mesajelor:

DOM (Distributed Object Middleware) – permite accesarea obiectelor de la distanta în mod transparent si se bazeaza pe mecanismul RPC (Remote Procedure Call) (exemplu: Microsoft's DCOM (Distributed Component Object Model)

VSM (Virtual Shared Memory) – permite proceselor distribuite sa acceseze datele comune (exemplu: Corso http://www.tecco.at)

MOM (Message Oriented Middleware) – ofera functionalitati pentru transmiterea asincrona a mesajelor. Comunicarea asincrona difera de cea sincrona prin faptul ca mesajele sunt trimise destinatarului indiferent de starea acestuia ( de exemplu destinatarul poate sa nu fie disponibil când mesajul este trimis – este offline). Exemplu: Microsoft's MSMQ (Microsoft Message Queue).

P2P (Peer to Peer) – înseamna comunicarea directa între doua dispozitive (parteneri) într-un sistem fara utilizarea unui server (ei pot comunica printr-o conexiune de tip punct-la-punct). Exemplu: Xmiddle (http://xmiddle.sourceforge.net/)

SOM (Service Oriented Middleware) – îmbunatateste sistemele DOM prin conceptul de servicii. Un serviciu în acest context reprezinta un numar de obiecte si comportamentul acestora; aceste obiecte folosesc o interfata predefinita pentru a face un serviciu disponibil altor sisteme/servicii. Exemplu: sistemul Jini de la Sun (http://www.sun.com/software/jini/).

Arhitecturile prezentate se pot aplica sistemelor distribuite în general si nu sunt limitate doar la aplicatiile web.

Din punct de vedere a numarului de nivele din arhitectura, aplicatiile web pot fi:

Cu doua nivele. Arhitectura aplicatiilor web cu doua nivele este similara cu arhitectura client-server. Cleintul comunica cu serverul in cadrul unui sistem. Serverul gazduieste unul sau mai multe programe ce impart resursele cu clentii. Clientul nu imparte resursele ci acceseaza continut sau servicii oferite de server. Clientii initiaza sesiuni de comunicare si serverul asteapta cererile.

Figura 12: Modelul de arhitectura cu 2 nivele. Sursa: https://en.wikipedia.org/wiki/Client%E2%80%93server_model

Cu mai multe nivele (n-tire arhitecture). Este o arhitectura in care interfata, procesarea datelor aplicatiei si managementul datelor sunt functii separate fizic. Cel mai comun tip de arthitectura multi-tier este arhitectura cu 3 nivele. Arhitectura aplicatiilor cu mai multe nivele ofera un model pe care dezvoltatorii pot creea flexibil aplicatii si pot refolosi aplicatii. Prin separare aplicatiei pe nivele, dezvoltatorii obtin posibilitatea de a modifica sau a adauga un nivel specific, in loc sa rearanzeze intreaga aplicatie. O arhitectura pe 3 nivele este comusa din nivelul de prezentare, nivelul logic si nivelul de stocare date.

Nivelul de prezentare este nivelul în care utilizatorii interacționează cu o aplicație. Acesta conține de multe ori si logica aplicatiei. Componentele tipice nivelului de prezentare includ următoarele:

componente, cum ar fi BindingSource și BindingNavigator pentru conectarea la date.

Obiecte ale reprezentarii datelor, cum ar fi clase LINQ la date SQL

Nivelul de prezentare accesează de obicei nivelul de mijloc prin utilizarea unui serviciu de referință (de exemplu serviciu Windows Communication Foundation Services și WCF din Visual Studio). Nivelul de prezentare nu are acces direct la nivelul de date. Nivelul de prezentare comunică cu nivelul de date prin intermediul nivelulului de aplicatie/logica.

Nivelul de mijloc (application tier) este nivelul pe care nivelul de prezentare și nivelul de date il folosesc pentru a comunica unele cu altele. Componentele ale nivelului de mijloc tipice includ următoarele:

logica de afaceri, cum ar fi regulile de operare și de validare a datelor.

Componentele de acces la date cât și logica, cum ar fi următoarele:

Obiectele TableAdapters și DataAdapters și DataReaders.

Obiecte ce contin reprezentări ale datelor, cum ar fi clase LINQ

Servicii de aplicații comune, cum ar fi autentificarea, autorizarea și stilul (CSS)

Figura 13: Legaturile dintre nivelul de prezentare, nivelul de aplicatie si nivelul de date. Sursa: https://en.wikipedia.org/wiki/Multitier_architecture

Nivelul de date este în principiu serverul care stochează datele unei aplicații (de exemplu, un server care rulează SQL Server). Nivelul de date nu pot fi accesat direct de la client în nivelul de prezentare. In schimb, componenta de acces la date în nivelul de mijloc este utilizat pentru comunicarea între prezentare și nivelurile de date.

Solutii tehnice Microsoft pentru aplicatii web

Siteme de operare pentru aplicatii web

Cele mai folosite siteme de operare pentru gazduirea serverelor web sun Linux si Windows. Este imposibil de facut o recomandare generală pentru că alegerea sistemului de operare depinde de cerintele proiectului. Linux are avantajul de a fi sistemul de operare pentru 70% din webservere la nivel mondial, astfel încât ar putea constitui un avantaj pentru portabilitate.

Principala diferență este sistemul de operare, care este responsabil pentru executarea script-uri și gazduirea bazelo de date. Linux și Windows folosesc script-uri și baze de date diferite. Atunci când nu este nevoie de ASP.NET, VBScript sau MSSQL, Linux este sistemul de operare preferat. Sistemul de operare client nu este important in alegerea sistemului de operare pentru serverul web, pentru că toate computerele sunt capabile să comunice cu servere Linux sau Windows.

Windows face posibilă executarea .NET framework sau SharePoint, tehnologii care nu pot rula pe sistemele de operare Linuz. Windows este sistemul de operare preferat atunci când doriți să adăugați aplicații pentru Windows pe site cum ar fi ActiveServerPages (ASP), Limbaje .NET (Visual Basic .NET, C#) sau daca se doreste utilizarea de baze de date SQL (Microsoft Access sau MSSQL).

Linux a prezentat o fiabilitatea crescuta, stabilitate și eficiență. Sistemul de operare Linux este folosit in mediile web complexe si pentru serverele de mail. În cazul în care doriți să utilizați PHP, Perl sau MySQL, Linux este sistemul de operare preferat, deoarece serverele web gazduite pe sisteme de operare Linux pot furniza serviicii de tip blog, sisteme de management al conținutului (CMS), magazine online și forumuri.

Figura 14: Distributia instrumentelor de dezvoltare in functie de sistemul de operare ales. Sursa Godaddy.com

Incepand cu editia Windows Server 2008 R2, sistemele de operare Windows Server au o distribuitie dedicata pentru web. Distributiile mai avansate decat distributia Web (Enterprise, Datacenter, Itanium) contin toate caracteristicile acestei editii.

Componente web servere – IIS

Am aratat in capitolele anterioare ca, pentru a putea accesa o aplicatie web, continutul acesteia trebuie furnizat de un server web. Pentru platforma Microsoft, cu sisteme de opereare Windows serverul web, serverul web dezvoltat de Microsoft este Internet Information Services. Internet Information Services (IIS, fostul Internet Information Server) este un server de web extensibil creat pentru utilizarea cu familia Windows NT. IIS acceptă HTTP, HTTPS, FTP, FTPS, SMTP și NNTP. A fost o parte integrantă a familiei Windows NT, de la versiunea Windows NT 4.0, deși a lipsit ca si componenta instalata implicit de la unele ediții (de exemplu, Windows XP Home Edition), și nu este activă în mod implicit.

Versiunile IIS recente includ:

IIS 7.0 a fost o reproiectare completă și IIS a fost rescris. A fost livrat cu Windows Vista și Windows Server 2008. IIS 7.0 a inclus un nou design modular, care a permis o siguranta crescuta și performanțe sporite. Acesta a introdus, de asemenea, un sistem de configurare ierarhic care permite implementarea usoara de site-uri simple, o nouă aplicație de management bazată pe Windows Forms, noi opțiuni de management in linie de comandă și suport extins pentru .NET Framework.. Implementarea IIS 7.0 pe Windows Vista nu limitează numărul de conexiuni permise ca implementarrea IIS pe Windows XP, dar se limitează solicitările concurente la 10 (pentru Windows Vista Ultimate, Business și edițiile Enterprise) sau 3 ( pentru Vista Home Premium). Noile cereri suplimentare sunt tinute în coada de așteptare, ceea ce scade performanța, dar acestea nu sunt respinse ca in Windows XP.

IIS 7.5 a fost inclusă în Windows 7 (dar trebuie să fie adaugat din optiunea Control Panel – Programs and Features ) și Windows Server 2008 R2. Versiunea IIS 7.5 aduce module WebDAV și FTP îmbunătățite precum și administrarea din linie de comandă în PowerShell. Acesta a introdus TLS 1.1 și TLS 1.2, un instrument de analiza pentru bune practici și procesul de izolare pentru zonele de aplicatii(Applications pool)

IIS 8.0 este disponibil numai în Windows Server 2012 și Windows 8. IIS 8.0 include SNI (legarea SSL, la hostname fata de adrese IP), scalare multicore pe hardware-ul NUMA, printre alte caracteristici noi.

IIS 8.5 este inclusă în Windows Server 2012 R2 și Windows 8.1. Această versiune include procesul Idle worker-Process, Dynamic Site Activation, Enhanced Logging și reinoirea certificatelor automat (Automatic Certificate Rebind).

IIS 10 este inclus în Windows Server 2016 și Windows 10. Această versiune include suport pentru HTTP / 2.

IIS 8.0 oferă noi caracteristici orientate spre performanță și administrare mai ușoară. Noile caracteristici sunt:

Application Initialization: o facilitate care permite unui administrator să configureze anumite aplicații pentru a porni automat cu pornirea serverului. Acesta configurare reduce timpul de așteptare pe care utilizatorii care accesează site-ul pentru prima dată după repornirea serverului il consuma.

„Splash page” în timpul inițializării aplicației web:. Administratorul poate configura o pagină de start care urmează să fie afișata utilizatorului site-ului în timpul unei cereri de inițializare.

Suporta ASP.Net 4.5: Cu IIS 8.0, ASP.net 4.5 este inclus în mod implicit, și IIS oferă, de asemenea, mai multe opțiuni de configurare pentru a rula impreuna cu ASP.Net 3.5.

Suport certificate SSL centralizat: este o caracteristică ce face mai ușoară administrarea certificatelor permițând administratorului să stocheze și să acceseze certificatele de pe un sistem de fisiere partajate (file share).

Server Name Indicator (SNI): SNI este o extensie a Transport Layer Security, ceea ce permite legarea a mai multor site-uri cu diferite nume la o singură adresă IP.

Dynamic IP Address Restrictions: o funcție care permite unui administrator să blocheze în mod dinamic adrese IP sau intervale de adrese IP care a cerut serverulului cu un număr mare de solicitări.

CPU Throttling: un set de controale care permit administratorului serverului să controleze utilizarea procesorului de fiecare Application Pool, în scopul de a optimiza performanța într-un mediu partajat.

Figura 15: Imaginea consola de management pentru IIS 8.5. Sursa: creatie proprie – platforma de dezvoltare pentru aplicatia de management a contractelor de achizitie

IIS 8.5 are mai multe îmbunătățiri legate de performanța în scenarii de utilizare pe scară largă, cum ar fi cele utilizate de către furnizorii de hosting comerciali și solutiile de cloud proprii Microsoft. Aduce mai multe caracteristici noi legate de logare și de depanare. Noile caracteristici sunt:

Idle worker-Process page-out: este o funcție ce permite suspendarea site-ul inactiv pentru a reduce cantitatea de memorie folosita pentru site-urilor care nu sunt accesate.

Dynamic Site Activation: este o functie care activeaza procesele de primire cereri numai pentru site-urile care au primit solicitări.

Enhanced Logging: o caracteristică pentru a permite colectarea de variabile Server, header-urile cererilor si header-urile raspunsurilor în jurnalele IIS.

Automatic Certificate Rebind: o caracteristică care detectează atunci când un certificat al unui site a fost reînnoit, și în mod automat releaga site-ul la noul certificat.

Pe un IIS pot fi gazduite mai multe aplicatii web, de la acelasi IP, aplicatiile putand avea tehnologi ASP.NET diferite (ASP.NET 3.5 si ASP.NET 4.5).

Este de amintit IIS Express, o versiune simplificata de IIS. Este folosita la rularea aplicatiilor web dezvoltate in mediul Microsoft Visual Studio, in modul Debug. Astfel, daca pe un servere este gazduita o aplicatie si simultan se ruleaza o aplicati in mod Debug, cele doua aplicatii sunt separate.

Baze de date – Microsoft SQL Server

O caracteristica importanta a unui sistem de baze de date este ACID (atomicitate, consistenta, izolare, durabilitate) si trebuie sa fie acociata tranzactiilor din baze de date. În contextul bazelor de date, o operațiune logică unică pe datele se numește tranzacție.

Atomicitate. Impune ca fiecare tranzacție să fie "totul sau nimic": în cazul în care o parte a tranzacției eșuează, atunci întreaga tranzacție eșuează, iar starea bazei de date este lăsată neschimbată. Un sistem atomic trebuie să garanteze atomicitatea în fiecare situație, inclusiv căderi de tensiune, erori și accidente. Pentru exterior, o tranzacție comisă apare (prin efectele sale asupra bazei de date) ca fiind indivizibila ( "atomica").

Consistenta. Garantează că orice tranzacție va aduce baza de date de la un status valid la altul status valid. Orice data scrise în baza de date trebuie să fie valida în conformitate cu toate regulile definite, inclusiv constrângeri, triggers, precum și orice combinație a acestora. Acest lucru nu garantează corectitudinea tranzacției în toate modurile pe care programator ar fi dorit sa le aiba (aceasta implica responsabilitatea codului la nivel de aplicație), ci faptul că orice erori de programare nu poate avea ca rezultat încălcarea oricăror reguli definite.

Izolare. Aceasta proprietate asigură că executarea concomitentă a tranzacțiilor rezultă într-o stare a sistemului, care s-ar fi obținut în cazul în care tranzacțiile au fost executate în serie, adică una după alta. Izolare este obiectivul principal al controlului concurenței.

Durabilitate. Se asigură că odată ce o tranzacție a fost comisă, va rămâne așa, chiar și în caz de pierdere de energie, accidente sau erori. Într-o bază de date relațională, de exemplu, odată ce un grup de instrucțiuni SQL se executa, rezultatele trebuie să fie stocate permanent (chiar dacă baza de date se blochează imediat după aceea). Pentru a se proteze de cazurile pierderilor de energie, tranzacțiile (sau efectele acestora) trebuie să fie înregistrate într-o memorie non-volatilă.

Unele dintre cele mai importante carcteristic MS SQL Server sunt:

Este o baza de date ACID

Pastreaza integritatea referentiala – proprietatea a datelor, care daca este satisfăcuta, cere ca fiecare valoare a unui atribut (coloană) a unei relații (tabelul) să existe ca valoare a unui alt atribut (coloană) într-un alt (sau același) relația (tabel).

Este tranzactionala

Permite blocari la nivel redus – in acest caz la nivel de rand

Permite stocarea de date Unicode.

Sistemul de gestiune a bazelor de date, Microsoft SQL Server, ajuns la versiunea a 13 a (SQL Server 2016), este un sistem din clasa Enterprise, oferind din punct de vedere tehnologic caracteristici și performanțe care permit dezvoltarea unor aplicații la scară mare, extensibile și performante.

Dezvoltarea aplicațiilor de baze de date necesită limbaje de programare cât mai flexibile care să permită utilizatorului implementarea unui set cât mai mare de funcții și de algoritmi de programare. În acest sens, limbajul SQL este un mediu performant prin intermediul căruia pot fi manipulate obiectele și înregistrările din baza de date. SQL (Structured Query Language – limbaj de interogare structurat) este utilizat în comunicarea cu baza de date. Potrivit ANSI (American National Standards Institute) SQL este limbajul standard pentru sistemele de management al bazelor de date relaționale. Propozițiile SQL sunt utilizate pentru a efectua actualizări ale datelor sau retrageri de date dintr-o bază de date.

Tabelul 3: Caracteristici ale versiunilor MS SQL Server 2014. Sursa: Books online https://msdn.microsoft.com/en-us/library/cc645993%28v=sql.120%29.aspx

SQL Server include mai multe tehnologii de gestionare și de analiză a datelor:

Database Engine este serviciul de bază pentru stocarea, procesarea și securizarea datelor. Database Engine oferă acces controlat și procesare rapidă de tranzacții pentru a satisface cerințele celor mai solicitante aplicații de date din cadrul companiilor. Database Engine oferă, de asemenea, un suport pentru susținerea de unui rade mare de disponibilitate a datelor.

SQL Server Data Quality Services (DQS) vă oferă o soluție de intretinere a datelor bazata pe cunoaștere. DQS permite să construirea unei baze de cunoștințe, și apoi utilizarea aceastei baze de cunoștințe pentru a efectua corectii a datelor și deduplicarea pe datele utilizate, folosind mijloace asistate de calculator și interactive. Sunt posibile utilizarea serviciileor de date de referință bazate pe cloud, și poate fi construita o soluție de gestionare a datelor care integrează DQS cu SQL Server Integration Services și Master Data Services.

Analysis Services este o platformă de analiză a datelor și pentru uz personal, utilizare in echipa echipa si cat si in scenarii business intelligence la nivel de corporatie. Servere suporta solutiile OLAP traditionate, noi soluții de modelare sub formă de tabele, precum și unelte de colaborare folosind PowerPivot, Excel, și un mediu SharePoint Server. Analysis Services include, de asemenea, Data Mining, astfel încât să puteți descoperi modele și relații ascunse în interiorul unui volum mare de date.

Integration Services este o platformă pentru construirea de soluții de integrare a datelor de înaltă performanță, inclusiv pachete care furnizează unelete pentru extragerea, transformarea și de prelucrare (ETL) a datelor pentru stocarea de date in alte structuri.

Master Data Services este solutia SQL Server pentru gestionarea datelor de bază. O soluție construită pe Master Data Services asigura că raportarea și analiza se bazează pe informații corecte. Cu ajutorul Master Data Services, se creeaza un depozit central pentru datele de bază și se menține o înregistrare auditabila, din datele ce se pot schimba in timp.

Replicarea este un set de tehnologii pentru copierea și distribuirea datelor și a obiectelor bazei de date dintr-o bază de date la alta, iar apoi sincronizarea între bazele de date pentru a menține coerența. Prin utilizarea replicarii, puteți distribui date în locații diferite și pentru utilizatorii de la distanță sau aplicatiile mobile prin intermediul rețelelor locale, conexiuni fără fir și pe Internet.

Reporting Services oferă o funcționalitate de raportare baza pe tehnologii Web la nivel de corporatie, astfel încât să puteți crea rapoarte dintr-o varietate de surse de date. Este posibila publicarea de rapoarte în diverse formate, precum și gestionarea sicuritatii la nivel central.

Pentru aplicatia de management al contractelor de achizitie a fost folosita distributia Microsoft Sql Server 2012 – Developer Edition.

Din punct de vedere al arhitecturii sistemelor, bazele de date MS SQL sunt la nivelul de stocare al datelor. Prin componenta Reporting Services MS SQL 2014 integreaza o componenta de nivel de prezentare a datelor.

Figura 16: Nivelul de stocare a datelor si caracteristici/tehnologii din Visual Studio si integrarea lor la nivelul date. Sursa MSDN – N-tier data application overview

Mediu de dezvoltare – Visual Studio

Microsoft Visual Studio este un mediu de dezvoltare integrat (IDE) de la Microsoft. Este folosit pentru a dezvolta programe de calculator pentru Microsoft Windows, precum și site-uri web, aplicații web și servicii web. Visual Studio utilizează platforme de dezvoltare de software Microsoft, cum ar fi Windows API, Windows Forms, Windows Presentation Foundation, Windows Store și Microsoft Silverlight.

Visual Studio include un ajutor de codificare in editor – IntelliSense (componenta de autocompletare a codului), precum și o componenta de reutilizarea a codului. Componenta Debugger integrat functioneaza la nivel de sursă cat si la nivel de sistem. Alte unelte încorporate includ un designer de formulare pentru aplicatii grafice (GUI), web designer, designer de clase și designer de schemă de baze de date. Visual Studio accepta plug-in-uri care îmbunătățesc funcționalitatea. Plug-in-urile permit adăugarea de suport pentru sistemele de control al versiunilor (cum ar fi Subversion) și adăugarea de noi utilitare ca editori, designeri vizuale pentru limbaje specifice domeniului sau utilitare pentru alte aspecte ale ciclului de dezvoltare de software (cum ar fi clientul Team Foundation Server: Team Explorer).

Visual Studio suportă diferite limbaje de programare și permite editorului de cod și debugger-ului sa suporte aproape orice limbaj de programare, cu condiția să existe un serviciupentru acel limbaj. Limbajele preinstalate sunt C, C ++ și C ++ / CLI (prin Visual C ++), VB.NET (prin Visual Basic .net), C # (prin Visual C #), și F # (la Visual Studio 2010 ). Ofera suport pentru XML / XSLT, HTML / XHTML, JavaScript si CSS. Java (și J #) au fost sprijinite în trecut.

Arhitectura Visual Studio. Visual Studio nu acceptă nici un limbaj de programare, soluție sau instrument intrinsec; în schimb, permite adaugarea funcționalității prin plug-in-uri codificate ca VSPackage. Atunci când este instalat, funcționalitatea este disponibilă ca un serviciu. IDE ofera trei servicii: SVsSolution, care oferă posibilitatea de a enumera proiecte și soluții; SVsUIShell, care oferă și UI(UserInterface) funcționalitate in ferestre (inclusiv tab-uri, bare de instrumente și ferestre de unelte); și SVsShell, care se ocupă cu înregistrarea VSPackages. In plus, IDE-ul este de asemenea responsabil pentru coordonarea si comunicarea între serviciile. Toti editori, designeri, tipurile de proiecte și alte instrumente sunt implementate ca VSPackages. Visual Studio foloseste COM pentru a accesa VSPackages.

Caracteristi Visula Studio

Editorul de cod. La fel ca orice alt IDE, acesta include un editor de cod care acceptă evidențierea sintaxei și completarea automată a codului folosind IntelliSense pentru variabile, funcții, metode, bucle și interogări LINQ. IntelliSense este acceptată pentru limbile incluse, precum și pentru XML și pentru Cascading Style Sheets și JavaScript atunci sunt dezvoltare site-uri web si aplicatii web.

Figura 17: Sugestiile InteliSense in aplicatia Mangementul contractelor de achizitei, pentru un obiect de tip combobox. Sursa: creatie proprie

Sugestiile pentru completarea automată apar într-o casetă listă peste fereastra editorului de cod, în apropierea cursorului de editare. În Visual Studio începând cu 2008, acesta poate fi temporar semi-transparent pentru a vedea codul blocat de acesta.

Debugger-ul. Visual Studio include un program de depanare (Debugger). În cazul în care codul sursă pentru procesul de rulare este disponibil, se afișează codul așa cum este rulat. In Visual Studio debugger-ul poate crea, de asemenea, imagini de memorie și le poate încărca mai târziu pentru corectare. Sunt suportate si programe multi-threaded. Debugger-ul poate fi configurat pentru a fi lansat atunci când o aplicație care rulează în afara Visual Studio are o eroare. Debugger-ul permite setarea de breakpoint-uri (care permite ca executarea să fie oprita temporar într-o anumită poziție) și liste de obiecte urmarite ( watches – monitorizează valorile variabilelor pe parcursul executie).

Web designer. Visual Studio include, de asemenea, un editor de aplicatii web, care permite vizualizarea grafica a pagini web, vizualizarea in format HTML sau mixt. Este utilizat pentru dezvoltarea de aplicații ASP.NET și suportă HTML, CSS si JavaScript. Paginile ASP.Net au asocit un cod Visual Studio, ce este compliat si se executa in momentul rularii. Incepand cu Visual Studio 2008 componenta de proiectarea a interfetei utilizat de web designer este partajat cu Microsoft Expression Web.

Pentru dezvoltarea apicatiei web managementrul contractelor de achizitie a fost folosita Visual Studio 2013 Proffesional. A fost adaugata o solutie ce contine un proiect de tip ASP.NET Web Form Applications.

Analiza si proiectare

Situatia existenta

Reglementarea vanzarii si scopul OUG 34/2006

Vânzarea-cumpărarea este un contract prin care vânzătorul strămută dreptul de proprietate (sau un alt drept) asupra unui bun al său cumpărătorului, care se obligă în schimb, să plătească un preț plătit în bani.

Prin natura sa contractul de vânzare-cumpărare transferă dreptul de proprietate (art. 1294 C. civ.), dar se pot transfera și alte drepturi.

Pentru a forma obiectul strămutării de către vânzător, dreptul trebuie să fie transmisibil, adică să nu fie indisolubil legat de o anumită persoană; deci, nu se pot transmite prin vânzare: drepturile personale nepatrimoniale, cele patrimoniale cu caracter strict personal și nici cele constituite prin voința părților sau a legii, cu caracter intuitu personae. De exemplu, nu pot forma obiectul contractului de vânzare-cumpărare: dreptul de abitație al soțului supraviețuitor, dreptul de întreținere, dreptul de pensie etc.

Se poate spune că obiectul contractului de vânzare-cumpărare este dublu. Astfel, obligația vânzătorului are ca obiect lucrul, iar obligația cumpărătorului are ca obiect prețul. Putem spune astfel că, în cele ce urmează, ne vom referi la obiectul derivat (material) al prestațiilor părților.

Pentru ca vânzarea să fie valabilă lucrul vândut trebuie să îndeplinească următoarele condiții: lucrul să fie în comerț, să fie determinat sau determinabil, să existe în momentul încheierii contractului sau să poată exista în viitor, iar vânzătorul trebuie să fie proprietarul lucrului.

Actuala legislatie din Romania in domeniul achizitiilor publice a intrat in vigoare in anul 2006 si a vaut ca obiectiv principal transpunerea noilor Directive UE in materie. Un important act normativ este Ordonanta de urgenta a Guvernului nr 34/2006 privind atribuirea contractelor de achizitie publica, a contractelor de concesiune de lucrari publice si a contractelor de concesiune de servicii, aprobata prin legea 337/2006. Scopul OUG 34/2006 il constituie:

Promovarea concurentei intre operatorii economici

Garantarea tratamentului egal si nediscriminarea operatorilor economici

Asigurarea transparentei si integritatii procesului de achizitie publica

Asigurarea utilizarii eficiente a fondurilor publice,prin aplicarea procedurilor de atribuire de catre autoritatile contractante.

Scopul aplicatiei managementul contractelor de achizitie

Furnizarea unei aplicatii care sa permita accesul mai multor utilizatori pentru a gestiona contractele de achizitie. Datele introduse de utilizatori vor fi stocate intr-o baza de date relationala. Accesul la date se face restrictionat, prin validarea utilizatorului prin parola (principiul 2A, cine sunt? ce stiu?). Aplicatia va contine nomenclatorul de coduri CPV, listele entitatilor societatii, si departamentele pentru fiecare entitate. Este necesara raportarea datelor in mai multe formate, grupate de mai multe atribute si cu aplicarea dinamica a filtrelor. Datele gestionate de aplicatie au un caracter anual insa vor fi stocate si gestionate datele pentru mai multi ani.

Scopul aplicatiei este sa raspuna la nevoile de acces unitar la date referitoare la contracte, intr-o organizatie. Avand in vedere faptul ca organizatia este organizata pe mai multe sucursale, aflate in locatii diferite, transmiterea datelor operativ este dificila. Accesul la un punct comun de informare, unde datele sunt validate si au aceiasi cersiune pentru toti utilizatorii, ofera managementului un instrument valoros pe care il pot folosi in desfasurarea activitatii si luarea deciziior.

Raportarea datelor catre terti, la nivelul intregii societati, este optimizat. Prin implementarea aplicatiei de management al contractelor de achizitie se realizeaza scopul de a avea raportari consistente, fara riscul de a avea date, pe anumite zone, depasite din punct de vedere al relevantei. Creste si timpul de raspuns la solicitarile de raortare, avand un punct unic de extragere a datelor.

Prin suprapunerea funcitonalitatilor aplicatiei cu sistemele de backup si disaster recovery, este indeplinita cerinta de durabilitate a datelor din aplicatie. Asfel, in cazul unor atacuri informatice locale, sau chiar la nivel central, cazul unor evenimente cu caracter blocant in desfasurarea activitatii, sunt disponibile solutii pentru disponibilitatea datelor referitoare la contracte si utilizatorii pot avea acces la date. Sistemele de backup si disaster recovery sunt sunt sistem externe ce implementeaza functii pentru aplicatia de management al contractelor de achizitie. Din aplicatie, nivelul de stocarea a datelor, este asigurata salvarea periodica a datelor cat si procedura de intretinere a datelor salvate.

Plan de implementare.Descrierea procesului.

Exista mai multe metodologii care sunt folosite in dezvlotarea software. Printre cele mai cunoscute sunt Waterfall si Agile, fiecare cu avantaje si dezavantaje.Waterfall este caracterizata prin liniaritate. Este un proces care curge, prin mai multe secvente, de la inceputul pana la scarsitul proectului. Etapele se succed si nu se repeta. Agile este un proces iterativ, structurat pe secvente. Exista un set de pasi care se repeta pentru fiecare sprint (secventa). In metodologia Agile etapele se succed.

Figura 18: Reprezentarea grafica Waterfall vs Agile: Sursa https://www.pinterest.com/pin/42643527700363147/?from_navigate

In general etapele unui proiect de dezvoltare software sunt:

Analiza

Dezvoltare

Implementare

Testare

Lansare in productie

Avantajele Waterfall sunt:

Calendarul de implementarea poate fi stabilit cu suficienta acuratete de la inceputul proiectului

Bugetul proiectului poate fi estimat, pe baza calendarului si resurselor alocate

Fiecare etapa este documentata, se pastreaza mai usor evidenta schimbarilor.

Avantajele Agile sunt:

Resiztenta la schimbare scazuta. Daca se doreste o schimbare majora, aceasta este inclusa la urmatorul sprint

Problemele sunt identificate devreme in faza de dezvoltare

Lansarea unui produs de baza se poate face repede. Urmeaza imbunatatirea produsului in iteratiile urmatoare

Vizibilitatea la nivelul proiectului este mai buna si astfel se poate face un management al riscului mai bun.

Pentru proiectul aplicatiei de management al contractelor de achizitie a fost aleaza metodologia Waterfall. Motivul principla al acestie alegeri este necesitatea documentarii pasilor din etapele analiza, dezvoltare, implementare, testare si lansare in productie.

Procesul inregistraii datelor referitoare la contractele de achizitie in aplicatia de management al contractelor se face la nivel descentralizat. Aplicatia poate gestiona datele referitoare la contracte pentru o societate ce are mai multe sucursale. Fiecare sucursala are in structura un compartiment care are sarcina de a gestiona contractele. Organigrama societatii prevede ca sucursalelel sa aiba una sau mai multe directii, urmarirea contractelor fiind realizata pe beneficiari interni, respectiv directii la nivelul fiecarei sucursale. Utilizatorul aplicatiei are posibilitatea sa introduca contracte pentru zona in care are acces, aceasta insemnand una sau mai multe directii, care pot fi de la una sau mai multe sucursale. Responsabilitatea incadrrii contractelor corect pe tipuri de contract, procedura, apartine utilizatorului si trebuie sa fie in concordanta cu documetele scriptice aprobate.

Activitatea de introducere de date prin adaugarea de contracte este o activitate care se desfasoara pe toata durata anului. Evaluarea situatiilor referitoare la contracte se face:

La nivel de sucursala – lunar

La nivel de societate – trimestrial

Pentru urmarirea punctuala a contractelor sunt necesare mecanisme de identificare a contractelor care sa permita utilizatorilor accesul la datele contractelor. Cele mai folosite criterii de cautare sunt cautarea dupa denumirea contractului si denumirea dupa pozitia unica din planul de achizitii. Este necesara implementarea unui mecanism de cautarea a denumirii contractelor folosind subsiruri, cautarea folosind denumirea completa a contractelor fiind greoaie si cu o rata de regasire mica. Utilizatorii trebuiesc separati din punct de vedere al rolurilor, acestia avand rol de introducere date si vizualizare date configurare, introducere date si executare rapoarte, acces la rapoarte.

Din punct de vedere al urmarii valorice a contractelor, este necesara evidentierea valorilor prevazte pentru anul curent cat si pentru toata durata contractului, in cazul contractelor multianuale. Pentru repartizarea contractelor pe proceduri de achizitie este necesara gestionarea valorilor contractelor in Euro, cursul de schimb pentru conversie se stabileste la inceputul anului si se comunica tuturor sucursalelor respectiv utilizatorilor responsabili.

Pentru clasificarea contractelor se soloseste „Codul Comun International Privind Achizitiile de Produse si Servicii” (Common Procurement Vocabulary – CPV). Codul CPV stabileste un singur sistem de clasificare pentru achizitiile publice cu scopul de a standardiza referintele utilizate de autoritatile si entitatile contractante pentru a descrie obiectul contractelor de achizitii publice. In legatura cu alegerea codului CPV este recomandat sa se foloseasca un cod care sa descrie cat mai precis obiectul contractului de achizite, astfel avand posibilitate de a realiza analize avand criteriul de selectie tipul obiectului de achizite. Nomeclatorul CPV a fost completat cu informatii referitoare la tipul de contract ce este recomandat pentru un fiecare cod CPV, precizarea daca codul CPV face parte din Anexa 2A si Anexa2B, liste de servicii ce sunt evidentiate separat.

Durata contractului de achzitie este specificata la nivel de luna fiind precizata data de initiere a procedurii de achizitie si data de finalizarea a contractului. Aceasta perioada reprezita intervalul in care contractul de achiziti este „activ” din punct de vedere comercial si nu defineste efectiv perioada de desfasurare a contractului.

Rapoartele necesare cuprind date referitoare la contracte, grupate pe capitole de achizitie sau pe coduri CPV. Pentru realizarea urmarii contractelor este necesara filtrarea datelor din rapoarte pe:

Entitati

Directii

Capitole

Luni

Ani

In cadrul rapoartelor grupate pe capitolr sunt necesare subgrupuri cu subtotaluri pe entitati, directii. Pentru rapoartele grupate pe CPV, se fac subtotaluri pe CPV si total general.

In vederea prelucrarii si raportarii datelor, raportele trebuie sa poata fi listate, exportate in format PDF, exportate in format Excel (xls) si in format

Motivarea solutiei propuse.

Folosirea infrastructurii existente ; integrare in AD Microsoft;

Proiectarea aplicatiei

Designul aplicatiei web

O aplicatie Web este o aplicație care poate fi accesată de către utilizatori prin intermediul unui browser web. Browser-ul creează cereri HTTP pentru URL-uri specifice, care se regasesc ca si resursele de pe un server web. Server redă și returnează pagini HTML pentru client, iar browser-ul poate afișa. Nucleul unei aplicatii web este logica server-side. Aplicația poate conține mai multe nivele distincte – am prezentat anterior aplicatii web cu doua nivele si cu trei nivele. In figura urmatoare este prezentata o arhitectură tipică de aplicații web ASP.NET cu componente comune grupate pe diferite nivele.

Figura 4.5.1.1 Nivele ale aplicatiei web ASP.NET. Sursa: Designing Web Applications https://msdn.microsoft.com/en-us/library/ee658099.aspx

Nivelul de prezentare este reprezentat de elemente web APS.NET, publicate sub forma de pagini si elemente compilate. In pagina sunt asociate elemente HTML, pargarafe de text, elemente de organizare a paginilor si elemnte de stil.

Nivelul aplicatiei este reprezentat de logica aplicatiei prezenta atat in clasele asociate paginilor ASP.NET cat si in elemente de prelucrare a datelor la nivelul aplicatiei (validari de date, verificari valori introduse, dataset-uri).

Nivelul de date este reprezentat de baza de date MS SQL Server, accesata prin intermediul componentelor DataSet configurate sa se conecteze la baza de date folosind informatiile configurate in „connection string”.

Autentificarea. Proiectarea unei strategii eficiente de autentificare este importantă pentru securitatea și fiabilitatea aplicației. Autentificarea necorespunzătoare sau slabă poate face aplicația vulnerabile la atacuri spoofing, atacuri de dicționar, hijack, și alte tipuri de atac. In aplicatie accesul nu este permis decat utilizatorilor autentificati. Gestiunea sesiunilor este realizata de serverul web IIS. Utilizatorii din aplicatie sunt diferiti de utilizatorii din baza de date, in felul acesta fiind crescuta securitatea.

Autorizațiile. Autorizația stabilește sarcinile pe care o identitate autentificată le poate efectua, și identifică resursele care pot fi accesate. Proiectarea unei strategii eficiente de autorizare este importantă pentru securitatea și fiabilitatea aplicației. Autorizațiile necorespunzătoare sau slabe pot duce la dezvăluirea de informații. In aplicatie sunt definite patru grade de autorizare ce pot fi asociate fiecarui utilizator. Un utilizator are un singur grad de autorizare setat. Gradele de autorizare disponibile sunt:

Cu acces la vizualizarea informatiilor de administrare

Cu acces la introducerea datelor referitoare la contracte

Cu acces la rapoartele din aplicatie

Cu acces la aplicatie pentru a cauta contracte si coduri CPV

Controlul exceptiilor. Proiectarea unei strategii eficiente de gestionare a excepțiilor este importantă pentru securitatea și fiabilitatea aplicației. Excepțile de utilizare corectă în paginile Web previne dezvăluirea utilizatorului de detalii la care nu are acces, îmbunătățește robustețea aplicației, și ajută la evitarea părăsirea aplicației într-o stare necorespunzătoare în cazul unei erori. In aplicatie, la nivelul introducerii datelor, sunt aplicate validari ale datelor introduse. In zonele in care se pot produce erori prin nefunctionarea unui modul, au fost inserate proceduri de tratare a exceptiilor.

Descrierea modulelor. Lista paginilor si a drepturilor de acces

https://msdn.microsoft.com/en-us/library/ee658099.aspx

Structura baza de date

Descrierea tabelelor si obiectelor din DB

Implementare si lansare in productie

Implementarea solutiei

Drepturi si utilizatori

View-uri pentru raportare date. Proceduri stocate

Configurare web server

http://www.iis.net/learn/get-started/introduction-to-iis/introduction-to-iis-architecture

Configurare application pool. Configurare web.config.

Functionalitati aplicatie

Validari introducere date. Completare autoamata date. Rapoarte. Drilldown in rapoarte. Filtrari

Testare functionalitati

Lansarea in productie a aplicatiei

Descriere proces publicare. Diferente debug/publicare

Estimare costuri

Pentru evaluarea solutie din punct de vedeer economic este necesara o estimare a costurilor de implementare a solutie. Presupunem ca nu sunt disponibile in societate resurse hardware care sa poata fi refolosite cat si faptul ca sunt necesare licente pentru componentele software. Acest caz reflecta situatia cu cel mai mare grad de acoperire, orice situatie favorabila putatnd duce de aici la reducerea de costuri. Nu au fost prevazute costuri legate de neworing. Se presupune ca alegerea unei solutii care sa functioneze pe Intranetul companiei include existenta unei structuri de networking la nivelul companiei. Similar, legatura cu sucursalele aflate in alte locatii decat sediul central, sunt interconectate iar costul operarii serviciilor de networking nu sunt cuprinse in estimarea de pret.

Necesarul pentru infrastructura hardware:

Tabel : Estimare cost infrastructura hardware.

A fost aleasa o solutie dual processor pentru cresterea extensibilitatii sistemului, fara reinvestitii in hardware. In Solutia propusa, serverul de baze de date si web serverul sunt pe acelasi sitem de operare. Odata cu cresterea solicitarii sistemului, se poate opta, folosind acesiasi infrastructura hardware, la separarea sistemelor baza de date si server web, pe sisteme de operare diferite. In acest sens se poat aplica o solutie de virtualizare la nivelul serverului care sa gazduiasca 2 sistem de operare, unul pentru serverul de baze de date si unul pentru serverul web.

Necesarul pentru componentele software:

Tabel : Estimare cost componente software.

Au fost estimate costuri pentru componentele software necesare in faza de dezvoltare si faza de productie a aplicatiei web.

Necesar pentru serviciile de implementare:

Tabel : Estimare cost implementare solutie.

*Pretul pentru instruire poate varia in functie de numarul de persoane care participa la instruire.

A fost estimate costul de implementare a aplicatiei web in conditiile in care nu sunt incluse costuri de regie, deplasare, cazare. Logistica se presupune ca este asigurata de beneficiarul solutiei, pe durata implementarii. Instruirea beneficiarului are rol dublu: este instruit personal cu rol de formare a altor utilizatori, prin explicarea in detaliu a functionalitatilor aplicatiei; este intruit personal cu rol de administrare a aplicatiei web.

Concluzii

Integrare cu alte aplicatii

Integrare cu aplicatie document management. Integrare cu aplicatie urmarire contracte

Dezvoltare structura 3-tier

Dezvoltaer cu separearea serverului DB / server apliactii / server web

Varianta raportare pentru dispozitive mobile

Descriere posibilitate de a raporta date pe platforme mobile android

Anexe

Lista imagini

Lista tabele

Fisiere si elemente de configurare

Bibliografie

www.wikipedia.org

http://www.scritub.com/stiinta/informatica/

Tehnologi WEB – Conf.univ.dr.ing. Mironela PÎRNĂU

Curs SGBD – Conf.univ.dr.ing. Mihai POPESCU

Books Online for SQL Server 2014 – https://msdn.microsoft.com/en-us/library/ms130214%28v=sql.120%29.aspx

Drept Civil – Prof. univ. dr. Liviu STĂNCIULESCU

https://www.utexas.edu/learn/designprocess/structure.html

Similar Posts

  • Insolventa Si Practicienii In Insolventa

    === 5f98619c718907f01cf77fe08869592e6cd25ac4_369192_1 === Ϲuрrіns Ιntrоduϲеrе…………………………………………………………………………………………………………….4 ϹАРΙТОLUL Ι ΙΝSОLVЕΝȚА ȘΙ FАLΙΜЕΝТUL-RΕALIΤĂȚI ΕСΟΝΟMIСΕ……………………..6 1.1 Νоțіunі іntrоduϲtіvе……………………………………………………………………………………………6 1.2 Аrgumеntе șі sоluțіі реntru nоul ϲоd dе ɑl іnsоlvеnțеі în Rоmânіɑ…………………………11 ϹАΡΙТΟLUL ΙΙ АΝАLΙΖА RΙSϹULUΙ DЕ FАLΙМЕΝТ………………………………………………………………..17 2.1 Gеѕtіunеɑ rіѕϲuluі……………………………………………………………………………………………..18 2.2 Ϲlɑѕіfіϲɑrеɑ rіѕϲurіlοr……………………………………………………………………………………….18 2.3 Rіѕϲul în ɑfɑϲеrі……………………………………………………………………………………………….20 2.4 Ϲɑuzеlе fɑlіmеntuluі ѕοϲіеtățіlοr ϲοmеrϲіɑlе……………………………………………………….23 2.5 Ιndіϲɑtοrі ɑі ϲɑlіtățіі еϲοnοmіϲο-fіnɑnϲіɑrе…………………………………………………………24 2.6 Меtοdе dе…

  • Trucaje In Filmele Mute

    === 3e5a719c2b87b8d4984638aecef996b6ffa73930_668011_1 === INTRODUCERE Lucrarea de față își propune să analizeze câteva aspecte ale istoriei filmului mut, punând în valoare caracterul de noutate adus de cinematografie în epoca respectivă. Cea de a șaptea artă s-a născut odată cu filmul mut, dar a supraviețuit dispariției acestuia, continuând să se dezvolte și în prezent. Tema urmărită în…

  • Dezvoltarea Economica Si Sociala a Judetului Giurgiu

    PLANUL DE ACȚIUNI PE ANUL 2015 PENTRU REALIZAREA OBIECTIVELOR CUPRINSE ÎN PROGRAMUL DE DEZVOLTARE ECONOMICĂ ȘI SOCIALĂ A JUDEȚULUI GIURGIU, CONFORM PROGRAMULUI DE GUVERNARE 2013-2016 C U P R I N S Servicii publice deconcentrate, instituții publice, societăți comerciale și alte organizații implicate în realizarea programului de dezvoltare economică și socială ……………………………………………………………………………………………………pag. 4 Autorități publice…

  • Rezultate Functionale Dupa Tratamentul Chirurgical In Fracturile de Humerus Distaldocx

    === Rezultate functionale dupa tratamentul chirurgical in fracturile de humerus distal === Rezultate funcționale după tratamentul chirurgical în fracturile de humerus distal Introducere Fracturile de humerus distal sunt printre cele mai greu de gestionat. De obicei sunt cominutive, apar în oase osteoporotice cu o structură anatomică care permite puține opțiuni de imobilizare internă. Tratamentul se…

  • Cardul de Credit

    Cartea de credit (cardul de credit) Cărțile de credit reprezintă o formă simplificată de plată, care se extinde ireversibil. În același timp Însă, utilizarea cărților de credit presupune creșterea cheltuielilor atât pentru emițător, cât și pentru beneficiar. In cazul industriei turismului, comisionul perceput pentru cărțile de credit este de circa 10% , în beneficiul firmelor…

  • Modalitati DE Optimizare A Relatiilor Interpersonale In Clasa DE Elevi

    === b259f1fad76e89b4b6276a18100ad27cbdd773ef_72580_1 === CUPRINS ΑRGUΜΕΝT 2 Caрitolul I. 1. CLΑЅΑ DΕ ΕLΕVI- GRUΡ ΕDUCΑȚIOΝΑL 4 1.1. Gruрul – delimitări conceptuale 4 1.2. Tiрuri dе gruрuri 7 1.3. Caractеriѕtici alе gruрului еducațional 12 1.3. 1.Claѕa dе еlеvi- un ѕрațiu al învățării 12 1.3. 2. Claѕa ca mеdiu еducațiоnal 14 Caрitolul II NIVELUL DE ANALIZA A RELAȚIILOR…