Utilizarea Tehnologiilor Informatiei Si Comunicatiilor In Administratia Publica
Utilizarea tehnologiilor informației și comunicațiilor în administrația publică
Cuprins
Cuvânt introductiv
Capitolul 1 – e-Guvernare și politici publice în domeniul tehnologiei informației
1.1. Politici publice – definiții și utilizare
1.1.1. Scopul și obiectivele politicii publice
1.1.2. Trăsăturile politicilor publice
1.2. e-guvernare: concept și utilizare
1.2.1. E-guvernarea – clasificare
1.2.2. ONU e-Government Readiness Index
1.2.3. Procese de e-guvernare
1.3. Etape în integrarea e-guvernării
1.3.1. Avantajele procesului de e-guvernare
1.4. Digital Agenda for Europe – Inițiativa Europa 2020
1.5. Strategia guvernamentală de dezvoltare a comunicațiilor electronice în bandă largă în România pentru perioada 2009 – 2015
1.6. Servicii electronice de utilitate publică
1.7. E-sănătate
1.7.1. Studiu de caz: Programul SMURD de telemedicină pentru servicii de urgență
1.8. Infrastructura IT a unei instituții publice – elemente conceptuale și studiu de caz
1.8.1. Externalizare (outsourcing)
1.8.2. SaaS (Software as a Service – Software ca Serviciu)
1.8.3. Cloud Computing
1.8.4. Open Source
1.9. Studiu de caz – Estonia – exemplu european de referință în domeniul e-guvernare
1.9.1. Studiu de caz: Devino e-Rezident estonian
Capitolul 2 – Instrumente, metode și tehnici de lucru în implementarea sistemelor informatice integrate
2.1. Diagrama cauză – efect (Fishbone/ Ishikawa)
2.2. Analiza PARETO
2.3. Analiza SWOT
2.4 – Metoda (diagrama) GANTT
2.5. Diagrama PERT
2.6. Analiza cost beneficiu (ACB)
2.7. Analiza cost – eficacitate (ACE)
2.7. Balanced Scorecard (Tabelul cu Scoruri Ponderate)
2.8. Metodologia de implementare PQIS
2.8.1. Etape în implementarea PQIS
2.8.2. Alte elemente specifice PQIS
2.8.3. Metodologia BOSCARD
2.9. Microsoft Dynamics Sure Step Methodology (Microsoft 2014)
2.9.1. Fazele implementării Sure Step
2.10 Studiu de caz – Implementarea SAP la Primăria din Sibiu
Capitolul 3 – Arhitectura client-server în administrația publică
3.1. Elemente fundamentale privind arhitectura client-server
3.2. Avantajele modelului client-server
3.3. Sisteme informatice – arhitecturi particulare
3.3.1. Arhitectura two-tiers
3.3.2. Arhitectura three-tiers
3.4. Proceduri stocate în arhitecturile client-server bazate pe tehnologie Oracle
3.4.1. Modalitatea de lucru cu SQL*Plus
3.4.2. Limbajul procedural PL/SQL
3.4.3. Blocuri de comenzi, proceduri și funcții stocate în limbajul PL/SQL
3.5. Administrarea bazelor de date client-server
3.5.1. Mediul SQL Server
3.5.2. Principalele elemente ale managementului centralizat în SQL Server
Capitolul 4 – Integrarea suportului de baze de date în cadrul aplicațiilor de gestiune și al sistemelor de asistare a deciziilor
4.1. Arhitectura tehnologiei Data Access Objects
4.1.1. Stabilirea setului de înregistrări
4.1.2. Dezavantaje ale tehnologiei DAO
4.2. Arhitectura Universal Data Access
4.3. Modul de integrare a Active X Data Objects în aplicațiile realizate în Visual Basic
4.4. Data Environment precum și alte instrumente de dezvoltare a aplicațiilor de baze de date
4.5. Tehnologia ADO.Net
4.5.1. Conceptul ADO.Net
4.5.2. Elementele .Net Data Providers
4.5.3. Obiecte conectate
4.5.4. Obiecte deconectate
4.6. XML și Microsoft SQL Server
4.6.1. Elemente definitorii privind XML
4.6.2. Structura fișierelor XML
4.6.3. Legătura între XML și bazele de date
4.6.4. Folosirea suportului XML pentru SQL Server
4.6.5. Interacțiunea dintre SQL și XML
4.6.6. Modul de realizare a interogărilor SQL-XML
4.6.7. Rularea procedurilor stocate
4.7. Modelarea bazelor de date prin instrumente CASE
4.7.1. Conceptul și funcțiile instrumentelor CASE
4.7.2. Modelele conceptuale și fizice ale bazei de date
4.7.3. Modalități de lucru utilizând instrumentele CASE și accesul la bazele de date
4.7.4. Proiectarea bazei de date prin intermediul Power Designer
Capitolul 5 – Elemente arhitecturale privind tehnologia .NET
5.1. Cadrul software .Net Framework
5.1.1. Elemente fundamentale privind Common Language Runtime (CLR) și modul de rulare al aplicațiilor .Net
5.1.2. Arhitectura .Net Framework
5.2. Principalele limbaje compatibile cu CLR
5.2.1 Visual Basic .NET
5.2.2. Limbajele C# și C++
5.2.3. JScript.Net
5.3. Mediul Visual Studio .Net
5.4. Dezvoltarea aplicațiilor Windows standard prin intermediul tehnologiei .Net
5.5. Windows Server – platforma pentru rularea aplicațiilor .Net
5.5.1. Roluri și configurarea serverelor
5.5.2. Platformă pentru aplicații
5.5.3. Integrarea cu Visual Studio.Net
Capitolul 6 – Sisteme informatice de asistare a deciziilor și aplicații economice disponibile prin intermediul Internetului
6.1. Considerente preliminare privind integrarea soluțiilor Web în mediile economico-financiare
6.1.1. Mediul World Wide Web
6.1.2. Avantajele sistemelor informatice de gestiune și a altor soluții economice orientate către Web
6.2. Elemente fundamentale privind limbajele de scripting rulabile de server
6.3. Conceptul și elementele tehnologice ale tehnologiei ASP
6.4. Arhitectura aplicațiilor de baze de date pentru Internet
6.5. Datele preliminare ale studiului de caz
6.5.1. Descrierea aplicației
6.6. Elemente fundamentale privind ASP.Net
6.6.1. Modul de rulare al scripturilor ASP.NET
6.6.2. Controalele rulate pe server
6.6.3. Controalele definite de utilizator
6.7. Securitatea aplicațiilor Web
6.7.1. Elemente definitorii privind vulnerabilitatea sistemelor informatice
6.7.2. Modalitatea standard de securizare a aplicațiilor ASP
6.7.3. Securizarea aplicațiilor ASP.Net
6.7.4. Infrastructura de securitate specifică ASP.Net
6.7.5. Configurarea sistemului de securitate ASP.Net
6.7.6. Secure Sockets Layer (SSL) o cerință esențială pentru aplicațiile economice
6.8. Optimizarea aplicațiilor orientate către Web
6.8.1. Optimizarea paginilor ASP
6.8.2. Elemente specifice optimizării aplicațiilor care se conectează la surse de date
6.8.3. Optimizarea aplicațiilor ASP.Net
6.8.4. Metode pentru accelerarea aplicațiilor ASP.Net
6.8.5. Optimizarea serverului de web
6.8.6. Optimizarea aplicațiilor folosind cache-ului browser-ului și proxy-ului
Capitolul 7 – Dezvoltarea serviciilor Web și aplicațiile distribuite
7.1. Proiectarea sistemelor distribuite
7.1.1. Caracteristici generale ale sistemelor distribuite
7.1.2. Proiectarea sistemelor distribuite
7.2. Serviciile Web
7.2.1. Serviciile Web – concept
7.2.2. Tehnologiile care stau la baza serviciilor Web
7.2.3. Arhitectura serviciilor Web
7.2.4. Modul de operare al serviciilor Web
7.2.5. Cerințele pentru dezvoltarea și rularea serviciilor Web
7.2.6. Dezvoltarea propriu-zisă a serviciilor Web
7.2.7. Concluzii și avantajele serviciilor Web
7.3. Aplicații pentru dispozitivele mobile
7.3.1. Mobile .NET & Compact .NET Framework
7.3.2. Mobile WEB Application
Capitolul 8 – Sistem informatic de asistare a deciziilor de grup în contextul tehnologiilor client-server
8.1. Sisteme de asistare a deciziei (SIAD)
8.2. Elementele definitorii ale unui SIAD
8.3. Componente ale SIAD
8.4. Sisteme suport pentru decizii de grup (SIADG)
8.4.1. Elemente caracteristice unui sistem informatic de asistare a deciziilor de grup
8.4.2. Conceptul de SIAD de grup
8.4.3. Modelul fundamental al unui SIAD de grup
8.5. Arhitectura unui sistem informatic de asistare a deciziilor de grup
8.5.1. Sistemul de gestiune a bazelor de date
8.5.2. Integrarea cu sistemele operaționale și soluții adiționale de raportare
8.5.3. Comunicarea între participanții la procesul decizional
8.6. Proiectarea unui SIAD de grup
8.6.1. Elemente generale privind proiectarea unui sistem informatic
8.6.2. Proiectarea sistemelor informatice folosind UML (Unified Modeling Language)
8.7. Arhitectura generală a sistemului informatic de asistare a deciziilor de grup
8.7.1. Nivelul de infrastructură
8.7.2. Nivelul aplicativ al soluției SIAD de grup
8.8. Componenta de raportare
8.8.1. Funcțiile și proiectarea componentei de raportare
8.8.2. Conexiunea la bazele de date
8.8.3. Modul de folosire al generatorului de rapoarte
8.8.4. Crystal Analysis
8.9. Crystal Enterprise
8.9.1. Crystal Enterprise – concept și arhitectură
8.9.2. Automated Process Scheduler (APS)
8.9.3. Nivelul client al soluției Crystal Enterprise
8.9.4. Configurarea gamei de servere
8.9.5. Instrumente accesorii pentru publicarea și managementul rapoartelor
8.9.6. Modul de autentificare Crystal Enterprise
8.9.7. Elemente privind dezvoltarea aplicațiilor prin intermediul suportului obiectelor Crystal Report
8.10. Componenta de business intelligence
8.10.1. Arhitectura componentei de business intelligence în contextul sistemului informațional al companiei.
8.10.2. OLAP și SQL
8.10.3. Arhitectura OLAP și etapele urmate în realizarea analizelor multidimensionale
8.10.4. Principalele funcții OLAP
8.11. Componenta de colaborare și comunicare
8.11.1. Funcțiile componentei de colaborare
8.12. Data Mining (D.M.)
8.12.1. Data Mininng – elemente fundamentale
8.12.2. Data Mining – definiții
8.12.3. Funcțiile specifice procesului de date mining
8.12.4. Funcțiile unui sistem DM
8.12.5. Domenii de aplicativitate a tehnologiilor data mining
Glosar de termeni utilizați în cadrul lucrării
Bibliografie
Cuvânt introductiv
Lucrarea de față își propune să abordeze teoretic și practic tehnologiile informațiilor și comunicațiilor (TIC) și modul în care acestea pot contribui la eficientizarea proceselor din administrația publică. Cartea are două părți distincte, prima fiind dedicată prezentării unor elemente conceptuale legate de administrația publică, politicile publice, e-guvernarea, categorii de sisteme informatice în administrația publică, metodologii de implementare etc. Cea de a doua parte a lucrării cuprinde o prezentare tehnică a arhitecturilor sistemelor informatice și bazelor de date în administrație publică.
Cartea debutează printr-un capitol dedicat politicilor publice, în cadrul căruia sunt prezentate elemente generale privind acestea, precum și exemple de politici publice în domeniul TIC. Atât primul capitol, cât și întreaga lucrare includ mai multe studii de caz relevante pentru acest domeniu. Suplimentar, sunt prezentate mai multe elemente specifice tehnologiilor de e-guvernare, dedicate modului în care acestea eficientizează activitatea din administrația publică.
Capitolul 2 este dedicat Instrumentelor, metodelor și tehnicilor de lucru pentru implementarea politicilor publice și sistemelor informatice integrate. În cadrul capitolului sunt oferite informații despre două metodologii dedicate sistemelor informatice integrate (ERP – Enterprise Resource Planning) în administrația publică, precum și un studiu de caz pentru implementarea sistemului informatic integrat la Primăria din Sibiu.
În continuare, lucrarea abordează din punct de vedere tehnic, infrastructura de aplicații a unei instituții publice. Sunt prezentate elemente de ordin arhitectural, punându-se accentul pe zona de baze de date și sisteme moderne de asistare a deciziilor. Domeniul bazelor de date este intrinsec legat de aplicațiile economice din administrația publică, acesta fiind motivul abordării detaliate a acestui subiect.
Consider că lucrarea adresează diverse categorii de cititori, printre acestea numărându-se: studenți și masteranzi care au în curricula discipline de administrație publică, persoane care doresc să înțeleagă modul de utilizare a tehnologiilor TIC în administrația publică, precum și profesioniști din domeniu.
Autorul
Capitolul 1 – e-Guvernare și politici publice în domeniul tehnologiei informației
1.1. Politici publice – definiții și utilizare
Implementarea și utilizarea tehnologiei informației și comunicațiilor (TIC) face obiectul unor politici publice, atât la nivel național, cât și european. UE recunoaște astfelQL Server
Capitolul 4 – Integrarea suportului de baze de date în cadrul aplicațiilor de gestiune și al sistemelor de asistare a deciziilor
4.1. Arhitectura tehnologiei Data Access Objects
4.1.1. Stabilirea setului de înregistrări
4.1.2. Dezavantaje ale tehnologiei DAO
4.2. Arhitectura Universal Data Access
4.3. Modul de integrare a Active X Data Objects în aplicațiile realizate în Visual Basic
4.4. Data Environment precum și alte instrumente de dezvoltare a aplicațiilor de baze de date
4.5. Tehnologia ADO.Net
4.5.1. Conceptul ADO.Net
4.5.2. Elementele .Net Data Providers
4.5.3. Obiecte conectate
4.5.4. Obiecte deconectate
4.6. XML și Microsoft SQL Server
4.6.1. Elemente definitorii privind XML
4.6.2. Structura fișierelor XML
4.6.3. Legătura între XML și bazele de date
4.6.4. Folosirea suportului XML pentru SQL Server
4.6.5. Interacțiunea dintre SQL și XML
4.6.6. Modul de realizare a interogărilor SQL-XML
4.6.7. Rularea procedurilor stocate
4.7. Modelarea bazelor de date prin instrumente CASE
4.7.1. Conceptul și funcțiile instrumentelor CASE
4.7.2. Modelele conceptuale și fizice ale bazei de date
4.7.3. Modalități de lucru utilizând instrumentele CASE și accesul la bazele de date
4.7.4. Proiectarea bazei de date prin intermediul Power Designer
Capitolul 5 – Elemente arhitecturale privind tehnologia .NET
5.1. Cadrul software .Net Framework
5.1.1. Elemente fundamentale privind Common Language Runtime (CLR) și modul de rulare al aplicațiilor .Net
5.1.2. Arhitectura .Net Framework
5.2. Principalele limbaje compatibile cu CLR
5.2.1 Visual Basic .NET
5.2.2. Limbajele C# și C++
5.2.3. JScript.Net
5.3. Mediul Visual Studio .Net
5.4. Dezvoltarea aplicațiilor Windows standard prin intermediul tehnologiei .Net
5.5. Windows Server – platforma pentru rularea aplicațiilor .Net
5.5.1. Roluri și configurarea serverelor
5.5.2. Platformă pentru aplicații
5.5.3. Integrarea cu Visual Studio.Net
Capitolul 6 – Sisteme informatice de asistare a deciziilor și aplicații economice disponibile prin intermediul Internetului
6.1. Considerente preliminare privind integrarea soluțiilor Web în mediile economico-financiare
6.1.1. Mediul World Wide Web
6.1.2. Avantajele sistemelor informatice de gestiune și a altor soluții economice orientate către Web
6.2. Elemente fundamentale privind limbajele de scripting rulabile de server
6.3. Conceptul și elementele tehnologice ale tehnologiei ASP
6.4. Arhitectura aplicațiilor de baze de date pentru Internet
6.5. Datele preliminare ale studiului de caz
6.5.1. Descrierea aplicației
6.6. Elemente fundamentale privind ASP.Net
6.6.1. Modul de rulare al scripturilor ASP.NET
6.6.2. Controalele rulate pe server
6.6.3. Controalele definite de utilizator
6.7. Securitatea aplicațiilor Web
6.7.1. Elemente definitorii privind vulnerabilitatea sistemelor informatice
6.7.2. Modalitatea standard de securizare a aplicațiilor ASP
6.7.3. Securizarea aplicațiilor ASP.Net
6.7.4. Infrastructura de securitate specifică ASP.Net
6.7.5. Configurarea sistemului de securitate ASP.Net
6.7.6. Secure Sockets Layer (SSL) o cerință esențială pentru aplicațiile economice
6.8. Optimizarea aplicațiilor orientate către Web
6.8.1. Optimizarea paginilor ASP
6.8.2. Elemente specifice optimizării aplicațiilor care se conectează la surse de date
6.8.3. Optimizarea aplicațiilor ASP.Net
6.8.4. Metode pentru accelerarea aplicațiilor ASP.Net
6.8.5. Optimizarea serverului de web
6.8.6. Optimizarea aplicațiilor folosind cache-ului browser-ului și proxy-ului
Capitolul 7 – Dezvoltarea serviciilor Web și aplicațiile distribuite
7.1. Proiectarea sistemelor distribuite
7.1.1. Caracteristici generale ale sistemelor distribuite
7.1.2. Proiectarea sistemelor distribuite
7.2. Serviciile Web
7.2.1. Serviciile Web – concept
7.2.2. Tehnologiile care stau la baza serviciilor Web
7.2.3. Arhitectura serviciilor Web
7.2.4. Modul de operare al serviciilor Web
7.2.5. Cerințele pentru dezvoltarea și rularea serviciilor Web
7.2.6. Dezvoltarea propriu-zisă a serviciilor Web
7.2.7. Concluzii și avantajele serviciilor Web
7.3. Aplicații pentru dispozitivele mobile
7.3.1. Mobile .NET & Compact .NET Framework
7.3.2. Mobile WEB Application
Capitolul 8 – Sistem informatic de asistare a deciziilor de grup în contextul tehnologiilor client-server
8.1. Sisteme de asistare a deciziei (SIAD)
8.2. Elementele definitorii ale unui SIAD
8.3. Componente ale SIAD
8.4. Sisteme suport pentru decizii de grup (SIADG)
8.4.1. Elemente caracteristice unui sistem informatic de asistare a deciziilor de grup
8.4.2. Conceptul de SIAD de grup
8.4.3. Modelul fundamental al unui SIAD de grup
8.5. Arhitectura unui sistem informatic de asistare a deciziilor de grup
8.5.1. Sistemul de gestiune a bazelor de date
8.5.2. Integrarea cu sistemele operaționale și soluții adiționale de raportare
8.5.3. Comunicarea între participanții la procesul decizional
8.6. Proiectarea unui SIAD de grup
8.6.1. Elemente generale privind proiectarea unui sistem informatic
8.6.2. Proiectarea sistemelor informatice folosind UML (Unified Modeling Language)
8.7. Arhitectura generală a sistemului informatic de asistare a deciziilor de grup
8.7.1. Nivelul de infrastructură
8.7.2. Nivelul aplicativ al soluției SIAD de grup
8.8. Componenta de raportare
8.8.1. Funcțiile și proiectarea componentei de raportare
8.8.2. Conexiunea la bazele de date
8.8.3. Modul de folosire al generatorului de rapoarte
8.8.4. Crystal Analysis
8.9. Crystal Enterprise
8.9.1. Crystal Enterprise – concept și arhitectură
8.9.2. Automated Process Scheduler (APS)
8.9.3. Nivelul client al soluției Crystal Enterprise
8.9.4. Configurarea gamei de servere
8.9.5. Instrumente accesorii pentru publicarea și managementul rapoartelor
8.9.6. Modul de autentificare Crystal Enterprise
8.9.7. Elemente privind dezvoltarea aplicațiilor prin intermediul suportului obiectelor Crystal Report
8.10. Componenta de business intelligence
8.10.1. Arhitectura componentei de business intelligence în contextul sistemului informațional al companiei.
8.10.2. OLAP și SQL
8.10.3. Arhitectura OLAP și etapele urmate în realizarea analizelor multidimensionale
8.10.4. Principalele funcții OLAP
8.11. Componenta de colaborare și comunicare
8.11.1. Funcțiile componentei de colaborare
8.12. Data Mining (D.M.)
8.12.1. Data Mininng – elemente fundamentale
8.12.2. Data Mining – definiții
8.12.3. Funcțiile specifice procesului de date mining
8.12.4. Funcțiile unui sistem DM
8.12.5. Domenii de aplicativitate a tehnologiilor data mining
Glosar de termeni utilizați în cadrul lucrării
Bibliografie
Cuvânt introductiv
Lucrarea de față își propune să abordeze teoretic și practic tehnologiile informațiilor și comunicațiilor (TIC) și modul în care acestea pot contribui la eficientizarea proceselor din administrația publică. Cartea are două părți distincte, prima fiind dedicată prezentării unor elemente conceptuale legate de administrația publică, politicile publice, e-guvernarea, categorii de sisteme informatice în administrația publică, metodologii de implementare etc. Cea de a doua parte a lucrării cuprinde o prezentare tehnică a arhitecturilor sistemelor informatice și bazelor de date în administrație publică.
Cartea debutează printr-un capitol dedicat politicilor publice, în cadrul căruia sunt prezentate elemente generale privind acestea, precum și exemple de politici publice în domeniul TIC. Atât primul capitol, cât și întreaga lucrare includ mai multe studii de caz relevante pentru acest domeniu. Suplimentar, sunt prezentate mai multe elemente specifice tehnologiilor de e-guvernare, dedicate modului în care acestea eficientizează activitatea din administrația publică.
Capitolul 2 este dedicat Instrumentelor, metodelor și tehnicilor de lucru pentru implementarea politicilor publice și sistemelor informatice integrate. În cadrul capitolului sunt oferite informații despre două metodologii dedicate sistemelor informatice integrate (ERP – Enterprise Resource Planning) în administrația publică, precum și un studiu de caz pentru implementarea sistemului informatic integrat la Primăria din Sibiu.
În continuare, lucrarea abordează din punct de vedere tehnic, infrastructura de aplicații a unei instituții publice. Sunt prezentate elemente de ordin arhitectural, punându-se accentul pe zona de baze de date și sisteme moderne de asistare a deciziilor. Domeniul bazelor de date este intrinsec legat de aplicațiile economice din administrația publică, acesta fiind motivul abordării detaliate a acestui subiect.
Consider că lucrarea adresează diverse categorii de cititori, printre acestea numărându-se: studenți și masteranzi care au în curricula discipline de administrație publică, persoane care doresc să înțeleagă modul de utilizare a tehnologiilor TIC în administrația publică, precum și profesioniști din domeniu.
Autorul
Capitolul 1 – e-Guvernare și politici publice în domeniul tehnologiei informației
1.1. Politici publice – definiții și utilizare
Implementarea și utilizarea tehnologiei informației și comunicațiilor (TIC) face obiectul unor politici publice, atât la nivel național, cât și european. UE recunoaște astfel importanța crucială a TIC în dezvoltarea societății informaționale, societatea cunoașterii.
Conceptul de politică publică cunoaște o serie întreagă de definiții, pornind de la cea mai simplistă: “ceea ce guvernele aleg să facă sau să nu facă” (definiție dată de Thomas Dye, în 1992), până la cea instrumentalistă: “un curs al acțiunii cu un scop precis, urmărit de un actor sau un grup de actori în abordarea unei probleme” (definiția lui James Anderson, 1994). În sensul pe care ne-am obișnuit să îl atribuim termenului, „politică” se consideră de obicei că se aplică la ceva „mai mare” decât deciziile particulare, dar la ceva „mai mic” decât mișcările sociale generale. (Profiroiu, 2009)
Dincolo de faptul că în rândul specialiștilor există multe puncte de vedere cu privire la definirea conceptului și, de asemenea, multe abordări, în cele ce urmează vom enunța o definiție de lucru destul de cuprinzătoare și cât mai puțin complicată, astfel încât să servească scopurilor de înțelegere a principiilor generale pe care ni le-am propus. “O politică este o creare activă de soluții pentru probleme.” Uneori o politică poate presupune, însă, să nu faci nimic, iar atunci a fi inactiv este cea mai bună alegere, sau ”acțiune”. Și, de asemenea, o politică poate presupune să guvernezi viața de zi cu zi a cetățenilor, ceea ce ridică problema după ce reguli se realizează guvernarea și cine le-a produs. Dacă ar fi să rezumăm, am spune că o politică publică este un curs de acțiune sau de inacțiune guvernamentală, ca răspuns la problemele publice.
Atunci când spunem ”un curs” subliniem faptul că o politică publică nu este o acțiune separată, sau statică, este mai curând un curs de acțiuni, un flux al acestora, o serie de pași care au ca scop rezolvarea problemei publice care îi stă la bază. Atunci când ne referim la guvernare putem avea în vedere mai multe paliere, de la guvernarea internațională la cea națională sau locală, dar acesta este un aspect asupra căruia vom reveni mai târziu, pentru că este nevoie de foarte multă atenție în separarea public – privat a inițiativelor de interes public și a actorilor, guvernamentali și neguvernamentali, implicați în acestea. Așa cum a fost formulată, această definiție sugerează că o politică publică este reactivă: este un răspuns la o problemă deja existentă; în general, se acceptă ideea că politicile publice nu au abordări proactive, deci nu intenționează să anticipeze problemele potențiale și să inițieze rezolvarea lor.
Un alt aspect care trebuie discutat este semnificația conceptului de problemă publică, prin comparație cu ceea ce înseamnă opusul acesteia, adică o problemă privată. Este o distincție necesară și trebuie adusă în discuție. Șomajul, de exemplu, poate fi în egală măsură o problemă publică și una privată, încadrarea în final fiind influențată de foarte multe lucruri.
Și nu în ultimul rând, este important să stabilim ce este aceea o ”problemă”. O politică publică reprezintă un șir de decizii, de acțiuni care capătă un anume curs în funcție de modul în care este definită problema căreia i se adresează. Dacă formularea problemei se schimbă, cu siguranță ne așteptăm ca soluțiile pe care le găsim sau le propunem, să fie la rândul lor diferite. De exemplu, revenind la problema șomajului, dacă definim problema prin aceea că indivizii nu au un venit, atunci politica va trebui să se îndrepte în direcția creării de oportunități pentru obținerea venitului. Dacă, dimpotrivă, privim șomajul ca rezultat al lipsei de competențe, de abilități, atunci o politică publică de combatere va presupune o cu totul altă abordare, pentru că problema a fost definită diferit.
Scopul și obiectivele politicii publice
Scopul unei politici publice este reprezentat de o stare generală de lucruri care se așteaptă să fie atinsă după implementarea unei politici publice.
Așadar, putem considera că scopul politicii publice este atins prin îndeplinirea unor obiective Acestea pot fi generale și specifice. Obiectivele generale se referă la o direcție majoră de acțiune, în timp ce obiectivele specifice au în vedere o serie de rezultate cuantificabile obținute în urma implementării unei politici publice. Obiectivele specifice trebuie să fie măsurabile și concrete, permițând astfel monitorizarea și evaluarea rezultatelor implementării.
Obiectivele specifice trebuie să fie:
Temporal stabilite, indicând în mod clar perioada de timp în care vor fi atinse (ex: reducerea cu 15% a poluării fonice în București până în anul 2017);
Limitate numeric, pentru a nu dispersa eforturile și cheltuielile;
Cuantificabile (ex: dotarea a 18 școli cu infrastructură IT).
1.1.2. Trăsăturile politicilor publice
Pentru a înțelege mai bine dimensiunile noțiunii de politică publică, sunt necesare definiții pentru o serie de concepte-cheie care ajută la construcția conceptului:
a) acțiunea în baza autorității: politica publică este o acțiune implementată de structurile puterii, structuri care au autoritate legislativă, politică și financiară de a acționa;
b) o reacție la problemele societății („real world”): politica publică încearcă să răspundă unei nevoi/probleme concrete a societății (sau a unui segment al societății);
c) orientată spre un scop: politica publică este orientată spre atingerea unui set de obiective bine delimitate în încercarea de a rezolva o nevoie/problemă particulară a comunității (a grupului-țintă);
d) cursul acțiunii: politica publică nu este o decizie singulară (acțiune sau reacțiune), ci o abordare/strategie integrată;
f) politica este dusă la îndeplinire de un actor/un grup de actori: politica este, în general, implementată de o structură de implementare alcătuită din mai mulți actori și, în cazuri mai rare, de o singură structură (ex. agenție guvernamentală);
g) o justificare a unei acțiuni: orice politică publică trebuie să includă motivarea acțiunii/non-acțiunii;
h) o decizie luată: politica publică este o decizie asumată, nu o promisiune sau o intenție.
Trebuie, în acest context, să aducem în discuție faptul că noțiunii de politică publică îi sunt atribuite mai multe sensuri. Printre cele mai frecvente asocieri se numără:
• Politicile publice ca denumiri ale unor domenii de activitate: ex.: politici economice, sociale ale unui Guvern;
• Politici ca expresie a scopului general sau a stării de fapt dorite: ex.: într-un document politic (al unui partid, Guvern), politica este accepțiunea respectivei entități asupra scopului (finalității) acțiunilor sale;
• Politici ca propuneri specifice: ex.: politica unui Guvern de a susține și promova sectorul întreprinderilor mici și mijlocii;
• Politici ca decizii ale Guvernului: ex.: politica Guvernului în domeniul privatizării sectorului energetic;
• Politici ca programe: deseori, programele guvernamentale într-un anumit domeniu sunt asociate cu politicile guvernului în domeniul respectiv;
• Politici ca produse: percepția asupra a ceea ce oferă Guvernul (ex.: servicii), în comparație cu ceea ce a promis și/sau autorizat prin procesul de legiferare;
• Politici ca rezultate: reducerea unei politici publice la rezultatele pe care aceasta le produce are avantajul de a permite o evaluare a modului în care se reflecta scopul propus în rezultatele obținute;
• Politicile ca teorii sau modele: toate politicile au la baza supoziții cu privire la relațiile de tip cauză-efect sau corelațiile considerate ca fiind semnificative dintre anumite fenomene (sociale, politice, economice etc.), iar modul în care aceste presupoziții sunt transpuse în politici ține de anumite modele teoretice cunoscute;
• Politicile ca procese: această asociere implică perspectiva temporală a unei politici, care urmărește schimbarea unui anumit sector/fenomen etc., într-un interval de timp (de regulă, anticipat).
Indiferent de modul în care sunt definite politicile publice, putem extrage totuși componentele cele mai des întâlnite: acțiunile (alocare, decizie, non decizie), scop, obiectiv, valoare, actor sau grup de actori (instituții guvernamentale precizate explicit în definiția lui Thomas Dye sau implicit în definiția lui David Easton întrucât doar ele pot lua măsuri pentru întreaga societate).
O politică publică are următoarele trăsături generale: conține un set de măsuri concrete, include decizii cu privire la resursele alocate, descrie un cadru general de acțiune (și, de aceea, este diferită de o măsură izolată), de obicei implică mai multe categorii de actori implicați și, bineînțeles, are scopuri și obiective care sunt formulate în funcție de anumite norme și valori.
Tipologia politicilor publice
În funcție de amploarea lor, politicile publice sunt divizate astfel:
1. Naționale
2. Intersectoriale
3. Sectoriale
Teme importante care influențează elaborarea politicilor publice
Raritatea: resurse limitate pentru necesități mult peste capacități și problema renunțării. În ciuda a ceea ce ne place să credem și în ciuda a ceea ce uneori pare a fi îndeplinit, niciodată nu poate fi un rezultat de tipul win – win, pentru că, într-un fel sau altul, cineva pierde sau renunță la ceva.
Diversitatea: nu doar în sensul în care suntem obișnuiți să gândim conceptul, ca gen, rasă, orientare sexuală, religie etc., dar și în ceea ce privește diversitatea de idei, de opinii care fac în sine o societate pluralistă.
Schimbarea: trăim într-o lume în continuă schimbare și schimbarea afectează și politicile.
Cost – Beneficiu: costuri economice, financiare, sociale și beneficiile aferente. Întrebarea este cine suportă costurile și cine se bucură de beneficii.
Externalități sau consecințe neintenționate: oricât de mult s-ar gândi, cei care fac politicile publice nu pot să prevadă toate consecințele acțiunilor pe care le inițiază și nu întotdeauna au rezultatele pe care și le-au dorit atunci când au construit politica.
Criza în politicile publice, care poate fi o criză reală sau o criză percepută sau imaginară. Oricum ar fi, aceasta va influența major procesul de politică publică.
Inițiatorii și beneficiarii politicii publice
Politicile publice pot fi inițiate în mod direct de către Guvern, ministerele de resort și Parlament. Ele pot fi inițiate, în mod indirect, de către agenții, ONG-uri, organizații interesate, cetățeni și autorități locale.
Beneficiarii politicilor publice reprezintă orice individ, comunitate, grup social vizat (direct sau indirect) de implementarea politicii publice.
Identificarea beneficiarilor unei politici publice este foarte importantă. Trebuie avute în vedere următoarele categorii: consumatorii de bunuri și servicii publice, mediul de afaceri, organizații profesionale, sindicate, organizații neguvernamentale, diferite niveluri ale administrației publice.
Beneficiarii pot fi:
Direcți – acele categorii de persoane care constituie grupul țintă al politicii publice (ex: șomerii sunt beneficiarii direcți ai politicii de ocupare a forței de muncă);
Indirecți – acele categorii de persoane care suportă efecte ale implementării politicii fără să fie vizate în mod direct de aceasta (ex: membrii de familie ai șomerilor, localitățile în care aceștia au domiciliul).
Contexte de elaborare a politicilor publice
Nicio politică publică nu este creată în vid, ci este creată într-o lume foarte dinamică și, de aceea, are sens să ne gândim la contextele în care există o politică publică.
Contextul social include în primul rând aspectele demografice, care pot fi diferite nu doar de la o țară la alta, dar și de la o regiune la alta și care sunt în continuă schimbare: vârstă, sex, rasă, etnie, mediu (urban versus rural) etc. Aspectul demografic se poate analiza la un moment dat, ca o radiografie, ca o abordare statică sau se poate gândi pe o perioadă mai lungă de timp, pentru care schimbările sunt surprinse de trenduri.
Contextul economic: buget, impozite, inflație, șomaj, factori economici care pot afecta dramatic modul în care este construită și implementată o politică publică, în sensul în care rezultatele pot fi semnificativ afectate de influența acestor factori.
Contextul politic: este format din acele elemente care formează mai degrabă ideologia care stă la baza reglementărilor și din dinamica acestora. Este vorba despre compoziția societății, prin intermediul acelei părți din societate care are un cuvânt de spus în construcția legii.
Contextul de guvernare, care se consideră diferit de cel politic, se referă la cumulul de reguli și instituții care, prin structura lor, pot afecta major rezultatele politicii, viteza cu care se obțin acestea.
Contextul cultural: atitudini, valori, credințe, norme sociale; de exemplu, concepția asupra cooperării, asupra responsabilității, asupra participării, cum se raportează individul la rolul statului, al guvernului și cum este tentat să se raporteze la acestea. (Dilema prizonierului; nevroza balcanică).
Instrumentele de politici publice
Instrumentele de politici publice constituie mecanismele utilizate pentru realizarea politicilor publice. Aceste tipuri de instrumente pot fi informative, financiare, administrative, regulatorii.
În concluzie, o politică publică are câteva trăsături specifice care o definesc, și anume:
– conține un set de măsuri concrete;
– include decizii cu privire la resursele alocate;
– descrie un cadru general de acțiune și, de aceea, este diferită de o măsură individuală (acțiune colectivă vs. acțiune individuală);
– are scopuri și obiective care sunt formulate în funcție de anumite norme și valori.
Figura 1.1. Clarificări conceptuale ale politicilor publice
1.2. e-guvernare: concept și utilizare
E-guvernarea este un termen generic pentru serviciile bazate pe Internet ale instituțiilor publice locale și centrale. În e-guvernare, instituțiile publice utilizează tehnologia informației și în special Internetul pentru a sprijini operațiunile instituțiilor publice, pentru implicarea cetățenilor și pentru oferirea unor servicii guvernamentale. Interacțiunea poate fi sub formă de obținere de informații, efectuarea de plăți de taxe sau oferirea unor instrumente complexe prin intermediul WWW (World Wide Web). În continuare, am făcut o selecție a principalelor definiții ale conceptului de e-guvernare.
Definiția Băncii Mondiale (www.worldbank.org) este următoarea: "E-guvernarea se referă la utilizarea de către instituțiile publice a tehnologiilor informaționale (cum ar fi Wide Area Networks, Internet și mobile computing) care au capacitatea de a transforma relațiile cu cetățenii, cu întreprinderile și modul de interacțiune dintre diverse instituții publice. Aceste tehnologii pot servi pentru o varietate de scopuri: o livrare mai bună a serviciilor guvernamentale pentru cetățeni, îmbunătățirea interacțiunilor cu mediul de afaceri, responsabilizarea cetățenilor prin accesul la informații sau un management guvernamental mai eficient. Beneficiile rezultate pot fi: mai puțină corupție, mai multă transparență, mai mult confort pentru cetățeni sau persoane juridice, creșterea veniturilor și reducerea costurilor."
Gartner Group definește conceptul de e-guvernare în felul următor: "optimizarea continuă a furnizării de servicii și a calității guvernării prin transformarea relațiilor interne și externe prin intermediul tehnologiei, Internetului și a noilor instrumente media și de comunicații."
Organizația Națiunilor Unite (www.unpan.org) definește astfel acest concept: "E-guvernarea constă în utilizarea internetului și a serviciului WWW pentru furnizarea de informații și servicii guvernamentale cetățenilor."
Asociația Working Group on E-government in the Developing World (www.pacificcouncil.org) dă următoarea definiție conceptului de e-guvernare: “E-guvernarea reprezintă utilizarea tehnologiilor informației și comunicațiilor (TIC) pentru a promova o guvernare mai eficientă, pentru a facilita serviciile guvernamentale, pentru a permite un acces mai simplu al publicului la informații și pentru a face guvernul mai responsabil în fața cetățenilor. E-guvernarea ar putea implica furnizarea de servicii prin Internet, telefon, centre comunitare, dispozitive fără fir sau alte sisteme de comunicații."
Definiția Global Business Dialogue on Electronic Commerce – GBDe (www.gbde.org) (raport AOEMA): "Guvernarea electronică se referă la o situație în care agențiile administrative, legislative și judiciare (inclusiv instituții publice, atât centrale, cât și locale) își digitalizează operațiunile interne și externe și utilizează sisteme de networking în mod eficient, pentru a obține o mai bună calitate în ceea ce privește furnizarea de servicii publice."
În timp ce definițiile de e-guvernare din diverse surse pot varia foarte mult, există totuși o temă comună. E-guvernarea presupune folosirea tehnologiei informației, și mai ales a Internetului, pentru a îmbunătăți furnizarea de servicii guvernamentale pentru cetățeni, întreprinderi și alte agenții guvernamentale. E-guvernarea permite cetățenilor să interacționeze și să beneficieze de serviciile autorităților, centrale sau locale, douăzeci și patru ore pe zi, șapte zile pe săptămână.
E-guvernarea se află în stadii incipiente de dezvoltare. Cele mai multe guverne au luat sau sunt în curs de a lua inițiative care oferă servicii guvernamentale online. Cu toate acestea, pentru ca adevăratul potențial de e-guvernare să fie realizat, Guvernul trebuie să se restructureze și să alinieze procesele guvernamentale tradiționale la noile perspective ale conceptului de e-guvernare.
În ultimii ani, au existat multe discuții cu privire la mobile government sau m-guvern. M-guvernarea se referă la utilizarea de tehnologii wireless, cum ar fi mobile/telefoane mobile, laptop-uri și PDA-uri (Personal Digital Assistant) pentru oferirea și furnizarea de servicii guvernamentale. M-guvernarea nu reprezintă un substitut pentru e-guvernare, ci mai degrabă acestea se completează reciproc.
Definiția dată de UNESCO este următoarea: "E-guvernarea reprezintă utilizarea în sectorul public a tehnologiilor de informare și comunicare, cu scopul de a îmbunătăți livrarea de informații și servicii, încurajarea participării cetățenilor la procesul de luare a deciziilor și transformarea guvernării într-una mai responsabilă, mai transparentă și mai eficientă. E-guvernarea implică noi stiluri de conducere, noi moduri de dezbatere și de luare a deciziilor privind politica și investițiile, noi modalități de acces la educație, noi modalități de a asculta cetățenii și noi modalități de organizare și de furnizare a informațiilor și serviciilor. "
"Conceptul de E-democrație se bazează pe e-guvernare și se concentrează pe acțiunile și inovațiile TIC, combinate cu niveluri mai ridicate de motivație și intenție democratică". Conceptul de guvernare electronică ales de către Consiliul Europei se referă la utilizarea tehnologiilor electronice în trei domenii de acțiune publică: relațiile dintre autoritățile publice și societatea civilă; funcționarea autorităților publice în toate etapele procesului democratic (democrație electronică); furnizarea de servicii publice (servicii publice electronice) (Consiliul Europei).
E-guvernarea este definită ca "aplicarea de mijloace electronice în (1) interacțiunea dintre guvern și cetățeni și guvern și mediul de afaceri, precum și (2) în operațiunile guvernamentale interne, pentru a simplifica și îmbunătăți aspectele democratice, guvernamentale și de afaceri ale Guvernanței.". Potrivit Kettl, "Guvernarea" este un mod de a descrie legăturile dintre guvern și mediul său mai larg – politic, social și administrativ.”
1.2.1. E-guvernarea – clasificare
E-guvernarea este formată din interacțiunile digitale dintre un cetățean și guvernul lui (C2G), dintre guverne și agenții guvernamentale (G2G), dintre guvern și cetățeni (G2C), dintre guvern și angajați (G2E) și dintre guvern și mediul de afaceri/comerț (G2B). În esență, modelele de livrare de e-guvernare pot fi rezumate pe scurt:
• C2G (cetățeni către guverne);
• G2G (interacțiunea între instituțiile publice);
• G2C (guvern către cetățeni);
• G2E (guvern către angajați);
• G2B (guvern către mediul de afaceri).
1.2.2. ONU e-Government Readiness Index
Organizația Națiunilor Unite (ONU) efectuează un studiu bianual despre e-guvernare, care include o secțiune intitulată e-Government Readiness. Acesta este un clasament comparativ al țărilor lumii în funcție de două categorii de indicatori primari: primul set de indicatori este dedicat identificării stadiului integrării tehnologiilor de e-guvernare; al doilea set de indicatori încearcă să identifice în ce măsura există e-participare. Construind un model de măsurare a serviciilor digitale, sondajul evaluează 191 de state membre ale ONU în funcție de acest set de indicatori complex:
Mai jos găsiți lista cu top 25 de țări în funcție de Readiness Index 2014 e-Government al ONU.
Sursa – Organizația Națiunilor Unite 2014 – ONU e-Government Readiness Index
În cadrul clasamentului ONU din anul 2014, România ocupă locul 64, având un indice compozit de evaluare a proceselor de e-guvernare de 0.5632 puncte.
1.2.3. Procese de e-guvernare
E-Government ar trebui să permită oricui vizitează un site web al unui oraș să comunice și să interacționeze cu angajații publici prin intermediul Internetului, având la dispoziție interfețe grafice pentru utilizator (GUI), mesagerie instant (IM), prezentări audio/video, acest lucru fiind la fel de simplu precum trimiterea unei scrisori, prin e-mail, la adresa afișată pe site.
Printre elementele care definesc aceste procese de e-guvernare se numără:
• Utilizarea tehnologiilor informației și comunicațiilor în toate aspectele operațiunilor dintr-o organizație guvernamentală.
• Optimizarea continuă a furnizării de servicii, prin transformarea relațiilor interne și externe prin intermediul tehnologiei, Internetului și a noilor instrumente media.
• Utilizarea tehnologiilor informației și comunicațiilor, și în special a Internetului, ca instrumente pentru a realiza o guvernare mai bună.
În timp ce e-guvernarea a fost în mod tradițional înțeleasă ca fiind centrată în jurul operațiunilor de guvernare, prin e-guvernanță se înțelege extinderea domeniului de aplicare, prin includerea implicării și participării cetățenilor la guvernare. Astfel, urmărind în conformitate definiția OCDE de e-government, e-governance poate fi definită drept utilizarea TIC ca pe un instrument pentru a obține o mai bună guvernare.
1.3. Etape în integrarea e-guvernării
E-guvernare de nivel 1 – care presupune expunerea informațiilor pe Internet (servicii de reglementare, programe de audieri publice, documente electronice care pot fi imprimate de cetățeni și predate instituțiilor publice). În acest caz, interacțiunea este unidirecțională, informațiile fiind transmise de instituțiile publice către cetățeni. Site-urile instituțiilor publice sunt de prezentare, fiind utilizate pentru furnizarea informațiilor către cetățean.
E-guvernare de nivel 2 – care presupune o comunicare bidirecțională între instituția publică și cetățean. Instituțiile publice pot intra în dialog cu cetățenii și persoanele juridice prin următoarele mijloace:
• comunicarea în ambele sensuri între instituția publică și cetățean. În acest model, utilizatorii se pot angaja într-un dialog cu agențiile și pot posta, comenta sau înainta cereri către instituția publică.
• tranzacții complexe în procesul de e-guvernare: depunerea declarațiilor fiscale, aplicații pentru servicii și subvenții.
1.3.1. Avantajele procesului de e-guvernare
Scopul final al e-guvernării este acela de a fi în măsură să ofere un portofoliu cât mai mare de servicii publice către cetățeni, într-un mod eficient și rentabil. E-guvernarea asigură transparența guvernamentală, aceasta fiind importantă deoarece permite publicului să fie informat cu privire la ceea ce lucrează guvernul, precum și la politicile pe care încearcă să le implementeze. Sarcinile simple pot fi efectuate mai ușor cu ajutorul guvernării electronice. Multe schimbări, cum ar fi schimbarea adresei sau a statutului marital, pot reprezenta procese lungi și birocratice pentru cetățeni. E-guvernarea reprezintă o modalitate simplă pentru public pentru a se implica mai mult în campaniile politice. S-ar putea spori gradul de conștientizare a alegătorilor, care ar putea duce la o creștere a participării cetățenilor la alegeri. Este convenabil și rentabil pentru întreprinderi, precum și pentru public, deoarece beneficiază de un acces rapid la cele mai recente informații disponibile, fără a fi nevoie să piardă timp, energie și bani.
E-guvernarea ajută la simplificarea proceselor și face accesul la informații guvernamentale mai ușor și mai rapid pentru agențiile din sectorul public și pentru cetățeni.
1.4. Digital Agenda for Europe – Inițiativa Europa 2020
Comisia propune o nouă strategie politică „Europa 2020” pentru a susține creșterea numărului locurilor de muncă, a productivității și a coeziunii sociale. Uniunea Europeană (UE) trece în prezent printr-o perioadă de transformare, care rezultă în principal din globalizare, schimbările climatice și îmbătrânirea populației.
Agenda digitală prezentată de Comisia Europeană reprezintă unul dintre cei șapte piloni ai strategiei Europa 2020 care stabilește obiective de creștere a Uniunii Europene (UE) până în 2020. Această Agendă digitală propune o mai bună exploatare a potențialului tehnologiilor informației și comunicării (TIC), pentru a favoriza inovarea, creșterea economică și progresul.
În continuare sunt prezentate câteva elemente importante din această strategie:
Realizarea pieței digitale unice
Pentru a facilita plățile și facturarea electronică, Comisia trebuie să finalizeze spațiul unic de plată în euro (SEPA) și să revizuiască directiva privind semnătura electronică, pentru a oferi sisteme de autentificare electronică securizată.
Piața digitală europeană suferă de o lipsă de încredere a utilizatorilor în ceea ce privește siguranța plăților sau respectarea vieții private. Comisia își propune să revizuiască cadrul de reglementare a protecției datelor în interiorul UE. În plus, Comisia intenționează să publice un Cod online care să recapituleze, într-un mod clar și accesibil, drepturile cetățenilor în universul digital. Codul în cauză va privi, de asemenea, unele dispoziții de drept contractual, precum și soluționarea online a litigiilor la nivelul UE. Comisia va avea totodată în vedere introducerea unei mărci de încredere online a UE, pentru a garanta siguranța consumatorilor.
Sporirea interoperabilității și a standardizării
Este necesar ca UE să mărească interoperabilitatea dintre infrastructuri, aplicații, depozite de date, servicii și rețele. În acest scop, Comisia trebuie, în primul rând, să continue revizuirea politicii sale de standardizare. Comisia trebuie să promoveze, de asemenea, norme adaptate drepturilor de proprietate intelectuală.
Consolidarea încrederii și a securității online
Europa trebuie să își consolideze politica de combatere a criminalității cibernetice, a pornografiei infantile online și a nerespectării vieții private și a datelor cu caracter personal. Comisia va prezenta măsuri privind securitatea rețelelor și a informațiilor și combaterea atacurilor informatice.
În paralel, statele membre trebuie să ia măsuri pentru introducerea unei rețele performante la nivel național și să pună în aplicare simulări de atacuri cibernetice la scară largă. Platformele naționale de alertă ar trebui adaptate la platforma de combatere a criminalității cibernetice a Europol.
Promovarea unui acces la internet rapid pentru toți
Europa trebuie să dispună de internet rapid, accesibil tuturor și puțin costisitor. În acest scop, UE trebuie să introducă rețele de acces de nouă generație. Comisia intenționează să recurgă la fondurile europene, pentru a finanța investițiile în internetul de bandă largă. Comisia își va consolida totodată politica privind spectrul de frecvențe radio.
Investițiile în cercetare și inovare
Europa trebuie să compenseze deficitul de investiții în materie de cercetare și dezvoltare din domeniul TIC, investiții încă insuficiente față de cele ale principalilor săi parteneri comerciali. Comisia își propune, așadar, să favorizeze investițiile private și să dubleze cheltuielile publice pentru dezvoltarea TIC.
Creșterea gradului de alfabetizare digitală, a competențelor și incluziunii digitale
Chiar dacă internetul face parte din viața de zi cu zi a unui mare număr de cetățeni europeni, unele categorii ale populației sunt în continuare excluse din procesul de alfabetizare digitală. Mai mult, UE suferă de o penurie de personal competent în sectorul TIC.
Pentru a favoriza ocuparea locurilor de muncă din sectorul TIC, Comisia propune să se acorde prioritate competențelor și alfabetizării digitale în cadrul Fondului Social European. Comisia dorește, de asemenea, să dezvolte instrumente de recenzare și recunoaștere a competențelor tehnicienilor și utilizatorilor TIC. Scopul este crearea unui cadru european special conceput pentru profesioniștii din sectorul TIC.
1.5. Strategia guvernamentală de dezvoltare a comunicațiilor electronice în bandă largă în România pentru perioada 2009 – 2015
În continuare sunt prezentate o serie de elemente esențiale din “Strategia guvernamentală de dezvoltare a comunicațiilor electronice în bandă largă în România pentru perioada 2009 – 2015”.
Principiile de acțiune, care au stat la baza elaborării prezentei strategii, au avut în vedere modelele europene utilizate în cadrul strategiilor de broadband dezvoltate de statele membre ale Uniunii Europene, ca răspuns la inițiativa „eEurope”, însă au ținut cont și de specificul pieței din România.
Planul strategic guvernamental își propune accelerarea ritmului de dezvoltare a serviciilor de comunicații în bandă largă, identificate drept unul dintre cei mai importanți facilitatori ai modernizării societății și creșterii gradului de competitivitate a economiei, prin încurajarea acelor activități care să ducă la diminuarea acelor zone identificate drept zone dezavantajate din punctul de vedere al accesului. Cu alte cuvinte, strategia propune un set de recomandări care vizează îmbunătățirea situației anumitor activități care au influență asupra dezvoltării serviciilor de comunicații în bandă largă, activități care, în lipsa unei intervenții din partea statului, ar fi cunoscut un ritm de dezvoltare mult mai redus.
Prin crearea de infrastructură și oferirea accesului în bandă largă în condiții de concurență, a fost avută în vedere înlăturarea anumitor bariere de acces la serviciile broadband. Unul dintre principiile care au stat la baza acestei abordări este garantarea accesului liber la o gamă cât mai largă de servicii cu o mare disponibilitate geografică și socială. Aceasta presupune în principal existența unei piețe libere, garantată prin respectarea principiului nediscriminării în ceea ce privește tratamentul aplicat furnizorilor de rețele sau servicii de comunicații electronice și încurajarea unei piețe concurențiale în ceea ce privește diversitatea ofertei, tarifele și calitatea serviciilor. Ca atare, strategia națională de comunicații în bandă largă recunoaște importanța mecanismelor de piață în dezvoltarea serviciilor broadband.
Obiectivele strategiei
Pentru a se asigura succesul strategiei de comunicații în bandă largă au fost identificate și formulate o serie de obiective clare și cuprinzătoare, pentru a orienta eficient activitățile și resursele proiectului. Obiectivele au fost grupate în jurul a trei piloni fundamentali, care pot fi implementați printr-un mix de metode de intervenție. Astfel, pilonii principali în jurul cărora a fost dezvoltată strategia se referă în mod special la asigurarea accesului la servicii broadband, furnizarea de conținut relevant și asigurarea pre-condițiilor necesare de informare, educare și securitate.
Pornind de la pilonii fundamentali ai strategiei, a fost dezvoltat un set de indicatori însoțiți de valori-țintă aferente, în vederea evaluării impactului asupra principalelor categorii de beneficiari vizate. Aceste ținte concrete reprezintă praguri de referință care vor fi utilizate în monitorizarea progresului înregistrat, fiind specifice și măsurabile, pentru a permite o dozare corectă a efortului, precum și recalibrarea periodică a resurselor investite.
Tabel: Tipuri de indicatori utilizați pentru fiecare pilon strategic și categorie principală de beneficiari
Strategia își propune să contribuie la: dezvoltarea regională, stimularea competitivității în zonele dezavantajate din punctul de vedere al accesului, reducerea dezechilibrelor între regiuni, reducerea decalajului digital între zonele urbane și cele rurale.
Obiectivele generale ale strategiei sunt:
Creșterea ratei de penetrare, la nivelul gospodăriilor, a conexiunilor în bandă largă până la 40% în 2010 și la 80% în 2015;
Creșterea gradului de acces la serviciile de comunicații electronice de bandă largă la nivelul populației de 100% până în 2015;
Conectarea și creșterea gradului de utilizare a serviciilor în bandă largă la nivelul IMM-urilor;
Creșterea ratei de penetrare a serviciilor de comunicații electronice de bandă largă pentru zonele dezavantajate din punct de vedere al accesului;
Creșterea ofertei de servicii on-line pentru sectorul guvernamental și cel de afaceri.
Obiectivele specifice se referă atât la stimularea cererii, cât și a ofertei de servicii de comunicații electronice de bandă largă în sectorul public și privat:
Conectarea instituțiilor publice (agregarea cererii publice);
Creșterea utilizării în domeniul public;
Susținerea IMM-urilor în pregătirea, configurarea și implementarea proiectelor de infrastructură și servicii;
Sporirea accesibilității serviciilor;
Dezvoltarea de conținut și aplicații;
Educarea consumatorilor și incluziunea grupurilor de utilizatori defavorizați.
Pe baza programului Agenda Digitală pentru Europa 2020, a fost dezvoltată și propusă de către Guvernul României ,”Strategia Națională privind Agenda Digitală pentru România”, drept cadru de referință pentru dezvoltarea economiei digitale 2014 – 2020.
Obiectivele cheie de performanță ale acestei Agende Digitale impun eforturi cumulate ale țărilor europene în vederea îndeplinirii obiectivelor asumate de Comisia Europeană. Având în vedere cei 7 piloni care stau la baza Agendei Digitale pentru Europa 2014 – 2020, România i-a adaptat la contextul actual și a definit patru domenii majore de acțiune, care vor fi urmărite ca viziunea României privind programul ambițios, care va conduce la creșterea economică și creșterea competitivității, pentru acoperirea principiului de bază menționat mai sus, în vederea realizării creșterii economice durabile pe termen lung. Aceste 4 domenii de acțiune sunt rezumate după cum urmează:
• Domeniul de acțiune 1 – eGuvernare, Interoperabilitate, Securitate Cibernetică, Cloud Computing, Open Data, Big Data și Social Media – creșterea eficienței și reducerea costurilor din sectorul public din România prin modernizarea administrației.
• Domeniul de acțiune 2 – TIC în Educație, Sănătate, Cultură și eInclusion intervine în provocările sociale la un nivel sectorial și va asigura că investițiile TIC vor crea un impact pozitiv în contextul social.
• Domeniul de acțiune 3 – eCommerce, Cercetare – Dezvoltare și Inovare în TIC – se bazează pe avantajele comparative ale României regionale și sprijină creșterea economică din sectorul privat. Punerea în aplicare a măsurilor din domeniul de acțiune 3 va genera în perioada 2014 – 2020 un impact estimat asupra economiei românești de creștere de aproximativ 3% la nivelul PIB-ului și 2% în privința locurilor de muncă.
• Domeniul de acțiune 4 – Broadband și Servicii de Infrastructură Digitală – asigură incluziunea socială și permite beneficii în toate celelalte domenii de acțiune.
1.6. Servicii electronice de utilitate publică
Prin serviciu public se înțelege „activitatea organizată sau desfășurată de o autoritate a administrației publice pentru a satisface nevoi sociale în interes public. Serviciu public online sau serviciu public electronic reprezintă acel serviciu public furnizat prin mijloace electronice. ” Trebuie însă menționat că nu orice nevoie socială reprezintă în același timp și o nevoie de interes public.
Oferirea serviciilor electronice și utilizarea interacțiunii bidirecționale în oferirea serviciilor are numeroase avantaje:
Are loc îmbunătățirea accesului la informațiile și serviciile publice ale autorităților administrației publice;
Se elimină procedurile birocratice și se simplifică metodologiile de lucru
Se îmbunătățește schimbul de informații între instituții publice și cetățeni, calitatea serviciilor publice;
Este promovată utilizarea Internetului și a tehnologiilor de vârf în cadrul instituțiilor publice.
Principalele tipuri de servicii electronice ce pot fi oferite includ:
• taxe și impozite: declararea, notificarea și efectuarea de plăți prin intermediul mijloacelor electronice privind taxele și impozitele datorate de către persoane fizice și juridice la bugetul de stat, bugetul asigurărilor sociale de stat, bugetul asigurărilor pentru șomaj, bugetul Fondului național unic pentru asigurări sociale de sănătate și la bugetele locale;
• formulare on-line: obținerea de autorizații sau certificate, precum completarea cererilor pentru obținerea certificatelor de urbanism, obținerea autorizațiilor de construcție sau de desființare, completarea și transmiterea electronică a documentelor necesare eliberării autorizațiilor și certificatelor, efectuarea de plăți prin intermediul mijloacelor electronice de plată, programarea în vederea eliberării autorizațiilor sau a certificatelor.
Conceptul de formular on-line se referă la un spațiu virtual compus din mai multe câmpuri ce pot fi completate cu date și trimise către un server pentru a fi procesate, reprezentând o replică virtuală a unui formular imprimat.
Definirea serviciilor publice de bază ce vor fi furnizate prin intermediul mijloacelor electronice este făcută în art.12 din Legea nr. 161/19.04.2003 privind unele măsuri pentru asigurarea transparenței în exercitarea demnităților publice, a funcțiilor publice și în mediul de afaceri, prevenirea și sancționarea corupției.
În România sunt disponibile, pe Internet, următoarele servicii electronice de utilitate publică:
www.e-guvernare.ro. Acesta este un sistem informatic de utilitate publică, care asigură accesul persoanelor fizice și juridice la serviciile și informațiile instituțiilor administrației centrale și locale și funcționează în baza Legii nr. 161/19.04.2003.
Acesta pune la dispoziția cetățenilor și formularele on-line: https://formularunic.e-guvernare.ro – Servicii publice electronice disponibile prin Formularul Unic, privind:
– Declarație ANOFM;
– Declarație pentru CNAS;
– Declararea obligațiilor de plată către bugetul asigurărilor sociale;
– Declarație privind obligațiile de plată la bugetul de stat;
– Declarație privind impozitul pe profit;
– Decont privind taxa pe valoarea adăugată.
Aceasta secțiune pune la dispoziția cetățenilor formularele utilizate în relația cu administrația, promovând transparența, reducând birocrația și îmbunătățind interacțiunea dintre administrație și cetățeni sau companii.
Numărul formularelor postate urmează a fi extins gradual, astfel încât portalul să cuprindă toate formularele administrative ale administrației publice centrale și locale. Instrucțiuni și detalii suplimentare cu privire la formularele postate găsiți pe site-ul instituției căreia îi aparține formularul. Descărcarea formularelor este un serviciu gratuit, disponibil la orice oră, în orice zi și din orice loc care permite accesul la Internet.
Formularele pot fi semnate electronic conform legislației în vigoare și trimise instituțiilor destinatare prin mijloace electronice ce garantează livrarea.
www.e-licitatie.ro.
Sistemul electronic de achiziții publice este operat în scopul facilitării transparenței, corectitudinii și eficienței în domeniul achizițiilor publice.
www.autorizatiiauto.ro. Acesta este un sistem electronic privind autorizațiile de transport internațional.
Un alt exemplu îl reprezintă www.ghiseul.ro. Portalul "Ghișeu virtual de plăți" asigură o modalitate rapidă de plată a debitelor către stat (taxe, impozite, amenzi etc.) și totodată, transparență în furnizarea de informații și servicii publice, eficiența utilizării fondurilor publice, accesul egal, nediscriminatoriu la informații și servicii publice, confidențialitatea și garantarea protejării datelor cu caracter personal, asigurarea disponibilității informațiilor și a serviciilor publice.
Sistemul Electronic Național (SEN)
În baza Legii nr. 161 din 19 aprilie 2003 privind unele măsuri pentru asigurarea transparenței în exercitarea demnităților publice, a funcțiilor publice și în mediul de afaceri, prevenirea și sancționarea corupției, a fost înființat Sistemul Electronic Național (SEN), ca platformă comună pentru dezvoltarea guvernării electronice în România.
SEN reprezintă punctul central de acces la informații și servicii electronice ale administrației publice, ce oferă utilizatorilor o gamă de servicii electronice destinate companiilor private, acces la formularele și procedurile administrative ale administrației publice și acces la informații de contact ale instituțiilor publice centrale și locale.
Unele dintre obiectivele cheie ale portalului eGuvernare sunt:
– Serviciile publice electronice trebuie să fie orientate către utilizator;
– Toate serviciile electronice trebuie să fie securizate și de încredere;
– Serviciile trebuie să fie oferite într-o manieră unitară și prin intermediul unei interfețe simple, intuitive și standardizate;
– Transparența în administrația publică.
În dezvoltarea guvernării electronice, rolul SEN este de a asigura servicii de infrastructură pentru utilizatori (instituții publice, mediul de afaceri, cetățeni, etc), după cum urmează:
– Punct unic de acces la serviciile publice furnizate prin mijloace electronice;
– Single Sign-On pentru serviciile de guvernare electronică;
– Motor de tranzacționare pentru serviciile de guvernare electronică;
– Motor de rutare securizată a mesajelor pentru serviciile de guvernare electronică;
– Motor de mesagerie pentru serviciile de guvernare electronică;
– Motor de raportare pentru serviciile de guvernare electronică;
– Layer comun de standardizare și interoperabilitate în guvernarea electronică (inclusiv interoperabilitate PKI);
– O colecție de documente, servicii, librării de funcții ce sunt puse la dispoziția oricărui dezvoltator independent ce dorește crearea de aplicații integrate cu SEN (SEN SDK).
Întreaga comunicație în mediu tranzacțional între utilizatori se realizează prin intermediul documentelor în formate standardizate ISO, PDF și XML.
1.7. E-sănătate
Tehnologia Informațiilor și Telecomunicațiilor (TIC) furnizează din ce în ce mai multe modalități de stocare și procesare a datelor medicale. Puterea de procesare în creștere a dispozitivelor portabile, în special, a condus la dezvoltarea serviciilor care ar fi fost dificil de imaginat cu puțini ani în urmă. Folosirea TIC în domeniul medical este răspândită astăzi și joacă un rol strategic în livrarea unor servicii de sănătate mai bune și mai eficiente. Există astăzi o presiune enormă pe sistemul economic și social, în ceea ce privește calitatea serviciilor de sănătate, iar aplicarea TIC în domeniul medical poate crește calitatea și siguranța îngrijirii pacientului.
e-Sănătatea este un termen relativ recent folosit pentru practicarea medicinii cu ajutorul proceselor și comunicării electronice. În ultimii ani, concentrarea asupra investițiilor în e-sănătate s-a făcut în cadrul serviciilor de e-sănătate. Strategiile de e-sănătate ale țărilor UE și EEA nu sunt întotdeauna numite astfel. Unele țări ar putea, într-adevăr, publica un document care să se refere la strategia TIC din domeniul medical. Alte țări, cum ar fi Franța și Germania, au înglobat activitățile centrale de e-Sănătate în cadrul legislației care reglementează sistemul medical. În Germania, legislația relevantă este legea cu privire la modernizarea sistemului medical; în Franța introducerea fișei medicale electronice este inclusă în legea de reglementare a securității sociale. Comisia Europeană a prezentat un program multianual de acțiune în domeniul sănătății pentru 2014 – 2020. Acest program se adresează nevoii de a susține Statele Membre în efortul de a îmbunătăți starea de sănătate a cetățenilor și de a asigura sustenabilitatea sistemelor medicale în concordanță cu Strategia Europeană 2020.
Din 2014 – 2020, după identificarea problemelor curente, următoarele obiective au fost dezvoltate în scopul dezvoltării sectorului de e-sănătate:
Întărirea și diversificarea sistemului informatic unic integrat de sănătate
Actualizarea și consolidarea nomenclatoarelor (clasificarea grupelor de boli etc.) și asigurarea inter-operabilității dintre sisteme la nivel național și european
Monitorizarea și evaluarea sănătății populației
Creșterea activităților de prevenție în raport cu cele curative
Expansiunea și diversificarea serviciilor medicale de urgență
Implementarea soluțiilor de e-Sănătate care facilitează metodele profilactice.
România are în prezent un sistem unic integrat (SUI), o soluție care are ca scop gestiunea mai eficientă a Fondului Unic Național pentru Asigurări de Sănătate prin colectarea online și procesarea în timp real a tuturor informațiilor medicale ale pacienților asigurați. În România, telemedicina a suscitat un interes crescut în ultimii nouă ani, primul centru de acest gen fiind localizat la Târgu Mureș. Prin telemedicină se înțelege transferul electronic de date medicale (ex. Imagini de mare definiție, sunete, transmisiuni video în direct, înregistrări cu privire la pacient) dintr-un loc în altul, la o anumită distanță. Acest transfer de date medicale ar putea folosi diferite tipuri de tehnologie, inclusiv, dar fără a fi limitat la tehnologiile listate mai jos – linii de telefon, Internet, Intranet și satelit. Telemedicina este folosită de către furnizori în din ce în ce mai multe specialități medicale care includ dermatologia, oncologia, radiologia, chirurgia, cardiologia și psihiatria.
1.7.1. Studiu de caz: Programul SMURD de telemedicină pentru servicii de urgență
Înființat în 1991, SMURD (Serviciul Mobil de Urgență, Reanimare și Descarcerare) a impus, prin profesionalism, un nou standard în ceea ce privește calitatea serviciilor de urgență din România.
SMURD a realizat recent un proiect de telemedicină, prin intermediul căruia serviciul din Târgu Mureș poate oferi asistență în timp real către peste 40 de spitale din România, spitale care nu dispun de personal calificat pentru a oferi servicii de urgență. Soluția a fost dezvoltată pe tehnologii de ultimă generație de la Microsoft, printre acestea numărându-se și cel mai nou sistem de operare – Windows 7 și 8.
În orașele mici din România, nu există personal calificat pentru a oferi servicii medicale de urgență. În situațiile în care apar urgențe în astfel de spitale, este chemată o salvare sau un elicopter pentru a prelua pacientul. Decizia este luată de doctorul la care se află pacientul, fără a putea fi oferit un suport sau a realiza o triere a cazurilor de către unitatea de primire urgențe.
În cele mai multe cazuri, inexistența personalului calificat pentru cazurile de urgență conduce la folosirea ineficientă a resurselor. Fiind vorba de resurse limitate (elicopterul pentru urgențe medicale de la SMURD Târgu Mureș și un număr de ambulanțe), alocarea greșită a acestor resurse poate conduce chiar la pierderi de vieți.
Ținând cont de aceste aspecte, SMURD a decis să realizeze un proiect de telemedicină care să ofere un suport pentru cazurile de urgență pentru 40 de spitale din centrul și nordul României.
Telemedicina permite recepționarea la distanță a datelor legate de pacienți. Pot fi recepționate în timp real semnele vitale, examenele radiologice și alte analize realizate pentru pacienții aflați în locații la distanță. În cazul nostru, este vorba de un proiect de telemedicină implementat în domeniul urgențelor medicale. Sistemul a conectat spitalul central din regiune (Spitalul din Tg. Mureș) cu 40 de spitale. Este vorba de spitale mici, care sunt deservite de spitalul din Tg. Mureș și de elicopterul SMURD. Spitalele deservite nu au toate specialitățile. În cele mai multe cazuri, nu au un doctor specializat în urgențe, un radiolog sau un medic pentru situațiile critice.
Sistemul de telemedicină permite realizarea conexiunilor audio-video cu toate cele 40 de spitale conectate. Suplimentar, pe monitoarele din sediul SMURD din Târgu Mureș sunt furnizate în timp real semnele vitale ale pacientului. Aceste informații ajută medicul să evalueze permanent situația pacientului și să ia deciziile într-un interval de timp foarte scurt. În plus, putem vedea cum reacționează pacientul la tratament și putem face ajustările necesare în timp util.
Soluția de telemedicină a contribuit la optimizarea modului în care sunt folosite resursele medicale, conducând la creșterea vitezei de intervenție și oferind oportunități deosebite de colaborare între cadrele medicale.
1.8. Infrastructura IT a unei instituții publice – elemente conceptuale și studiu de caz
În cadrul acestui subcapitol vom prezenta modul în care o primărie de oraș din România își poate optimiza infrastructura IT. Vom prezenta întâi, pe scurt, infrastructura tradițională, apoi vom trece în revistă modelele noi de distribuție a aplicațiilor (e.g. cloud computing, Software ca Serviciu-SaaS, open source).
În trecut, infrastructura unei Primării sau a unei Instituții Publice era focalizată pe servere. Serverele presupuneau o investiție semnificativă: hardware, echipamente, software, licențe, precum și în spații dedicate pentru funcționarea serverelor și în personal capabil să le administreze. Aceste lucruri conduceau la costuri destul de mari pentru gestionarea infrastructurii IT. Serverele erau folosite pentru aplicații, pentru fișiere, pentru Web sau pentru imprimare. În acest sens, erau necesare cel puțin două servere pentru a asigura un nivel de disponibilitate corespunzător. La costurile legate de aceste servere se adăugau și costuri legate de modelul tradițional de licențiere software. Acest model presupunea existența unui cost de licențiere în momentul achiziției și a unui cost de mentenanță a software-ului. Costurile suplimentare reprezentau salariile unui administrator IT sau cele ale firmei de externalizare a serviciilor IT, dar și cele legate de energia consumată, atât de servere, cât și de aparatele de aer condiționat necesare pentru menținerea pragului de aproximativ 15°C în camera dedicată serverului.
Am realizat o simulare de costuri IT pentru o Primărie de oraș din România. Este vorba despre un oraș cu 30 de funcționari publici care folosesc calculatoare în cadrul instituției. Simularea este realizată pentru prețurile de la data editării lucrării, decembrie 2014. Pentru această instituție cu 30 de utilizatori, discutăm de o infrastructură IT cu aplicațiile curente Windows 7, Office 2013 și un server de e-mail. Nu am intrat în zona aplicațiilor esențiale ale respectivei Primării, cum ar fi aplicațiile pentru impozite și taxe.
Tabelul de mai jos reprezintă simularea costurilor IT pentru respectiva Primărie, la momentul decembrie 2014.
Tabel 1.1 – Structura unui buget IT pentru o primărie cu 30 de funcționari, pentru situația în care nu se utilizează tehnologiile open source și cloud.
Se poate observa că, într-o primărie de oraș nu foarte mare, costurile pentru infrastructura IT standard, fără aplicații specifice (e.g. aplicații pentru impozite și taxe, ERP etc.), depășește 40.000 EUR (din care aproximativ 28.000 EUR investiție inițială și aproximativ 12.000 EUR investiție anuală).
În continuare ne propunem să vedem modalitățile prin care putem reduce aceste costuri de infrastructură IT.
1.8.1. Externalizare (outsourcing)
În economie, externalizarea, denumită și outsourcing, definește delegarea unor sarcini productive, obiective, secțiuni de afaceri nestrategice (neesențiale) către segmente organizaționale aparținând unor entități externe, care oferă un raport preț-calitate mai bun sau dețin expertiză (produc mai bine) în domenii specializate.
Termenul outsourcing este o sinteză a expresiei engleze outside-resource-using, tradusă liber: utilizare de resursă (resurse) externă (din afară). Externalizarea poate cuprinde un spectru larg de activități, de la procese operaționale (de exemplu, producție de subansamble) și până la funcțiuni ale firmei.
Modalitățile de externalizare a infrastructurii IT prin care Primăria își poate reduce costurile ar fi:
Apelarea la serviciile unei firme specializate pentru a înlocui administratorul IT. De multe ori, costurile sunt mai ridicate atunci când se plătește un administrator IT intern decât dacă serviciile ar fi externalizate unei firme specializate.
Mutarea serverelor și a infrastructurii IT din organizație într-un data center. În acest mod se reduc costurile cu energia.
În acest caz, data center-ele oferă mult mai multe lucruri decât oferă o încăpere din Primăria orașului respectiv, printre acestea numărându-se: o siguranță mai mare pentru că firma este specializată pentru a păstra aceste servere, siguranță în caz de cutremure sau alte calamități naturale, redundanță, etc.
Se poate observa că reușim să reducem costurile cu ajutorul externalizării, respectiv putem elimina costurile cu salariile și energia.
1.8.2. SaaS (Software as a Service – Software ca Serviciu)
SaaS este o schimbare radicală a infrastructurii IT și a modului în care sunt distribuite aplicațiile. Această schimbare de optică legată de infrastructura IT a avut loc datorită următoarelor lucruri:
Dezvoltarea Internetului – apariția Internetului Broadband și creșterea lățimii de bandă pentru un număr cât mai mare de utilizatori. Acest lucru a dus la dezvoltarea unor aplicații care pot fi utilizate de oriunde de pe Glob. Nu mai este nevoie ca acestea să fie instalate în sediul Primăriei din orașul „X” din România, ci ele pot fi acum disponibile dintr-un data center din București sau Dublin, în ambele situații accesul va fi la fel de simplu și rapid ca cel din cadrul primăriei.
Dezvoltarea tehnologiilor Web – a permis dezvoltarea unor soluții care să ruleze într-un browser Web, aplicații cu interfețe complexe, apropiate de cele pe care le cunoaștem din sistemul de operare Windows. Interfețele Web sunt la fel de bine realizate ca și cele tradiționale, iar acest lucru a condus la posibilitatea de a avea aplicațiile în browser, care să fie distribuite cu modelul Software ca Serviciu.
Virtualizarea – presupune rularea mai multor sisteme de operare virtuale (mașini virtuale) pe un sistem de operare fizic. Acest lucru a fost determinat de forța de procesare și de memoria tot mai ridicată a calculatoarelor.
Mașina virtuală (hipervizor) este elementul care asigură virtualizarea, acesta fiind un software care simulează funcționarea unui dispozitiv hardware (un exemplu este Virtualbox, de la Oracle).
Este important de știut că folosiți deja SaaS. Exemple de aplicații, unele dintre ele disponibile și pentru mediul de afaceri, care rulează prin acest instrument:
Gmail (sau varianta comercială care este destinată instituțiilor publice și firmelor – Google Apps) – este o aplicație complexă de mail și de colaborare care presupune, pe lângă mail, o serie întreagă de instrumente disponibile în cloud. Serviciul SaaS înlocuiește serverul on premises de mail și colaborare din organizație, server ce trebuie să ruleze permanent, să fie conectat la Internet și să recepționeze/transmită mail-urile din organizație. Acest lucru ar însemna un cost destul de mare și o investiție inițială pentru organizația respectivă.
Dropbox – înlocuiește serverul tradițional de fișiere dintr-o companie;
OneDrive – o soluție care înlocuiește serverul de fișiere;
SalesForce – un exemplu de soluție de tip CRM;
Microsoft Office 365 – un serviciu similar Google Apps pentru e-mail și colaborare.
Avantajele utilizării Software as a Service:
Presupune oferirea unui serviciu sau a unei aplicații via Internet;
Nu vor mai fi necesare servere dedicate în cadrul companiei pentru a ține acest software, este accesibil folosind un browser;
Se plătește un abonament lunar, care pleacă de la aproximativ 3 EUR per utilizator. Poate ajunge până la 15 sau 20 EUR, în funcție de serviciile pe care le utilizează.
1.8.3. Cloud Computing
Termenul mai larg, care include și SaaS, este Cloud Computing. Cloud Computing-ul presupune ca întreaga infrastructură a unei companii să se mute pe Internet. În acest caz, infrastructura unei organizații se află pe servere închiriate, pe Internet. O companie/instituție publică poate să închirieze permanent resurse în cloud sau numai atunci când apar maxime de utilizare. Datele, informațiile și aplicațiile unei organizații se află pe servere diverse pe Internet și sunt furnizate folosind protocoale specifice.
Practic, există două variante de utilizare a cloudului:
varianta 1 – toată infrastructura este disponibilă în cloud;
varianta 2 – când instituția deține servere proprii, iar în momentele de trafic maxim se apelează la resurse în cloud și forță de procesare închiriată. Dacă se apelează la această variantă mixtă, se vor plăti costurile pentru minutele/orele de închiriere a serverelor. Exemplu pentru utilizarea acestei variante ar fi afișarea rezultatelor de la Bacalaureat și Teste Naționale de către Ministerul Educației, situație în care Ministerul, cu serverele care le deține în data centrul propriu, nu poate face față numărului mare de utilizatori care accesează site-ul la un moment dat. Pentru a rezolva problema, va fi închiriată forță de procesare în cloud pentru orele de maxim de trafic.
Printre serviciile de cloud computing complexe de numără și:
Amazon Elastic Cloud – primul serviciu disponibil pe piață furnizat de compania Amazon;
Windows Azure – serviciul cloud furnizat de compania Microsoft.
1.8.4. Open Source
Utilizând metodele prezentate până acum am reușit să eliminăm costurile legate de servere, UPS, instalațiile de aer condiționat, costurile aferente administratorului IT și consumul de energie. Mai rămân costurile pentru Windows 7 și Office 2013, care sunt destul de mari după cum se poate vedea din tabelul 1.1. . Conceptul care ne permite să eliminăm și aceste costuri este acela de Open Source.
Open source descrie practica de a produce sau dezvolta anumite aplicații software, permițând utilizatorilor să aibă acces la codul sursă al programelor și să acționeze liber asupra acestora. Este o metodologie pragmatică, ce a permis dezvoltarea unor aplicații foarte interesante, care au schimbat lumea IT.
Prima aplicație open source a fost creată de finlandezul Linus Torvalds în 1993 și se numește Linux. Este un sistem de operare care poate înlocui Windows pe servere și pe desktopuri. Cea mai populară distribuție Linux este Android, distribuție care a pornit de la un proiect Linux pentru dezvoltarea unor sisteme de operare pentru telefoane mobile. Este disponibilă open source, majoritatea componentelor fiind open source, dar există și câteva componente sub proprietatea Google.
În studiul nostru de caz, Windows 7 va fi înlocuit cu Linux. Dintre cele câteva mii de distribuții Linux, am ales două exemple de distribuții care pot fi instalate pe desktop-uri și care vin cu aplicații de birou instalate: Ubuntu și Linux Mint. De asemenea, am propus înlocuirea Microsoft Office cu Libre Office (care vine instalat cu Ubuntu sau Linux Mint și oferă posibilitatea de a deschide fișiere Microsoft Office, chiar 2013, de a salva în acest format și de a salva în formatul proprietar Libre Office) sau Open Office.
Observăm că am eliminat costurile inițiale aproape integral, rămânând cei aproximativ 5.000 EUR necesari pentru infrastructura de rețea, un cost care poate fi suportat de orice instituție publică. La acesta se adaugă abonamentele lunare pentru mail și colaborare (în medie 10 EUR per utilizator) de aproximativ 300 EUR pe lună, adică 3600 EUR pe an. Practic, în primul an vom avea un cost de aproximativ 9000 EUR pentru infrastructura Primăriei.
1.9. Studiu de caz – Estonia – exemplu european de referință în domeniul e-guvernare
Estonia este una dintre țările europene care au dezvoltat în mod excepțional domeniul e-guvernare. Prezentăm mai jos câteva exemple.
DigiDoc
DigiDoc este un sistem utilizat pe scară largă în Estonia pentru stocarea, partajarea și semnarea digitală a documentelor. Pentru că în Estonia semnăturile digitale au aceeași pondere juridică ca și semnăturile pe hârtie, este necesară o platformă sigură, ușor de utilizat, pentru a oferi instituțiilor guvernamentale, întreprinderilor și persoanelor private o modalitate de a transmite fișiere și de a adăuga certificări digitale. Sistemul este foarte utilizat în sectorul public din Estonia, ocupându-se de tot, de la documente judiciare la contracte municipale. Este, de asemenea, utilizat în mod obișnuit în industria bancară, iar popularitatea sa în toate domeniile de afaceri este în creștere rapidă.
Digital Signature
Sistemul de semnătură digitală din Estonia a pavat calea pentru unele dintre e-serviciile sale cele mai utile, inclusiv Company Registration Portal, inovatorul sistem i-vot național, depunerea declarației fiscale electronice și DigiDoc – în esență, orice serviciu care necesită semnături pentru a fi valabil. Pentru că infrastructura e-Estonia reprezintă un sistem deschis, pot fi întotdeauna integrate noi servicii. Companiile pot folosi în mod liber sistemul semnăturii digitale și îl pot aplica la o varietate de servicii bazate pe web.
e-Business Register
Registrul E-Business din Estonia este un instrument avansat și securizat care permite antreprenorilor să-și înregistreze noile afaceri online, în doar câteva minute, fără a avea nevoie să meargă la vreun birou notarial sau guvernamental. În 2011, 98,2% din toate înregistrările companiilor au fost făcute pe internet cu e-Business Register. Beneficiile sunt remarcabile: a fost observată reducerea timpului necesar începerii unei afaceri de la 5 zile la 2 ore. Astfel, Estonia este o țară mai atractivă pentru investitori, concomitent cu reducerea resurselor administrative consumate.
e-Cabinet
Sistemul de Informare al Sesiunilor Guvernului, cunoscut sub numele de e-Cabinet, este un instrument puternic pe care Guvernul estonian îl folosește pentru a eficientiza procesul de luare a deciziilor. Acesta permite miniștrilor să se pregătească pentru întâlnirile de cabinet, să organizeze și să reexamineze minutele, în întregime fără hârtie. Deoarece e-Cabinetul folosește software bazat pe web și echipament audio-vizual, miniștrii pot lua parte la ședințe de la distanță, și au făcut de multe ori acest lucru. Deciziile luate la ședințe pot fi trimise prin e-mail părților interesate sau pot fi postate pe un site web chiar în timp ce ședința este încă în desfășurare.
Printre beneficii, se pot enumera: organizarea mai bună a ministerelor, eliminarea cantităților mari de hârtie consumate în administrația publică și reducerea impactului asupra mediului înconjurător, reducerea timpului alocat acestor procese. mai bine organizate; nu este nevoie să cari/deplasezi cantități mari de hârtie. În plus, procesul de luare a deciziilor este mai transparent și mai ușor de înțeles.
e-Law
Sistemul de e-lege reprezintă baza de date online a Ministerului de Justiție estonian pentru proiectele de lege. Numit mai corect Electronic Coordination System for Draft Legislation, acesta permite publicului să acceseze fiecare parte de proiect de lege care a fost depusă începând cu februarie 2003. Cititorii pot vedea cine a depus un proiect de lege, stadiul acestuia, precum și modificările aduse la forma inițială în timpul procesului parlamentar. Astfel, procesul legislativ devine transparent și deschis publicului.
e-Police
Sistemul de e-poliție din Estonia se bazează pe principiul că oferirea celei mai bune comunicări și coordonări va duce la cea mai eficientă ordine. Aceasta implică două instrumente principale: o stație de lucru mobilă instalată în fiecare mașină de patrulare, precum și un sistem de poziționare care arată sediului central locația și starea fiecărei secții/patrule de poliție. Beneficii identificate sunt: timpul mai scurt de răspuns la urgențe, informații mai rapide, complete din verificările datelor, reducerea riscului pentru ofițerii de poliție, și, desigur, mai puțini membri din personal necesari pentru verificarea datelor.
e-Prescription
Una dintre cele mai noi inovații în sistemul de e-Sănătate de ultimă generație din Estonia, e-Prescription, reprezintă un sistem centralizat, informatizat pentru eliberarea și manipularea prescripțiilor medicale. Deoarece sistemul de e-Prescription se bazează pe datele din fondul național de asigurări de sănătate, aici apare orice subvenție medicală la care pacientul are drept, de asemenea, medicamentul fiind redus în consecință. Astfel, se economisește timp atât pentru pacient, cât și pentru medic și se reduce tulpina administrativă de la spital.
e-School
Una din aplicațiile web cele mai inovatoare și mai utilizate pe scară largă în Estonia este e-School. Aceasta oferă o cale ușoară pentru părțile interesate de educație, pentru a colabora și organiza procesul de predare / de învățare. Sistemul dispune de o gamă largă de funcții, destinate unor diverși utilizatori:
Profesorii introduc note și prezențe în sistem, postează temele și evaluează comportamentul elevilor.
Părinții rămân puternic implicați în educația copiilor lor.
Elevii își pot vedea propriile note și pot ține evidența temelor zilnice.
Autorităților locale au acces la cele mai recente rapoarte statistice, făcând ușor de realizat procesul de consolidare a datelor din școlile din județ.
Astfel, părinții au un mai mare control și pot fi mai implicați în procesul de învățare al copiilor, există o mai bună comunicare între profesori și părinți.
e-Tax
E-Tax reprezintă sistemul pentru depunerea declarației fiscale în mod electronic, pus la dispoziție de către Consiliul vamal și de taxe estonian. De la introducerea sa în 2000, acesta a redus drastic timpul petrecut de persoanele fizice și antreprenori pentru depunerea taxelor. În anul 2002, sistemul s-a maturizat enorm, odată cu declarațiile fiscale automate. În 2013, 95% din declarațiile fiscale din Estonia au fost depuse în format electronic.
Electronic Health Record (EHR)
Electronic Health Record reprezintă un sistem național care integrează datele de la diferiți furnizori de servicii medicale din Estonia pentru a crea o înregistrare comună pentru fiecare pacient. Deși poate arăta ca o bază de date centralizată, națională, aceasta regăsește, de fapt, datele necesare de la diferiți furnizori, care pot utiliza diferite sisteme, dar pe care le pot prezenta într-un format standard. Sistemul compilează, de asemenea, date pentru statisticile naționale, astfel încât ministerul de resort poate măsura tendințele de sănătate, poate urmări epidemiile și se poate asigura că resursele sale de sănătate sunt cheltuite cu înțelepciune.
Beneficii:
Mai puțină birocrație administrativă pentru doctori.
Creșterea eficienței în sistemul de sănătate.
Informațiile critice accesibile medicului curant.
Serviciile de sănătate sunt mai apropiate de pacient.
Colectarea datelor privind trendurile medicale este automată.
Electronic ID Card
Estonia are cel mai bine dezvoltat sistem al cărții de identitate din lume. Mult mai mult decât un simplu act de identitate, cardul național obligatoriu servește ca acces digital pentru toate serviciile electronice sigure din Estonia. Cipul de pe card poartă fișiere încorporate care folosesc criptare pe 2048 de biți cu cheie publică și permit să fie folosit ca dovadă definitivă a actului de identitate într-un mediu electronic.
Beneficiile principale sunt oferite de dezvoltarea unor e-servicii sigure. Electronic ID poate fi folosit în orice sistem, public sau privat, unde este necesară identificarea electronică.
Electronic Land Register
Registrul funciar electronic reprezintă o aplicație web unică, ce conține informații din zona relațiilor dintre proprietari și din zona limitată a imobilelor și a terenurilor agricole. Acesta este un instrument important pentru piața imobiliară pentru că oferă o transparență totală, facilitează listarea proprietarului înregistrat și a fiecărei proprietăți deținute, arată limitele proprietății sale și oferă și alte informații către potențialii cumpărători.
i-Voting
Votul pe internet, sau "i-Voting", este un sistem care permite alegătorilor să voteze la orice calculator conectat la Internet, oriunde în lume. Fără nicio legătură cu sistemele de vot electronice utilizate în altă parte, care implică dispozitive costisitoare și problematice, soluția estonă este simplă, elegantă și sigură. Ca orice metodă de vot la distanță, inclusiv votul prin corespondență, acesta oferă posibilitatea de a forța sau cumpăra voturi, ceea ce reprezintă un motiv de îngrijorare. Soluția Estoniei permite alegătorilor să se conecteze și să voteze ori de câte ori doresc în perioada dinaintea votului. Din moment ce fiecare vot îl anulează pe precedentul, un alegător are întotdeauna opțiunea de a schimba votul mai târziu.
m-Parking
Parcarea mobilă, sau m-Parking, este un sistem convenabil care permite șoferilor să plătească pentru parcarea în oraș, folosind telefoanele mobile. În capitala țării, Tallinn, a devenit cea mai utilizată metodă de plată pentru parcare.
Mobile Payment
Plata pe mobil este o caracteristică nouă, care permite clienților să plătească pentru bunuri și servicii utilizând telefoanele lor mobile în locul cardurilor de credit. Biletele pentru transportul public din Tallinn și Tartu sunt în mod obișnuit cumpărate cu ajutorul plății pe mobil. Sistemul poate fi utilizat, de asemenea, pentru plăți în magazine și pub-uri și chiar și atunci când sunt achiziționate produse de la automate.
Registrul evidenței populației
Registrul populației reprezintă o bază de date a statului și deține informații de bază despre fiecare persoană care trăiește în Estonia. Acesta conține numele lor, CNP-ul, data de naștere, locuri de ședere, precum și alte date statistice, cum ar fi naționalitatea, limba, educația și profesia.
Social Welfare e-Services
La fel ca multe servicii de Stat furnizate în Estonia, sistemul de ajutor social s-a mutat într-un mediu convenabil, online. Accesarea sistemului se face prin intermediul portalului de Stat. O persoană poate aplica pentru prestații de maternitate sau de invaliditate de muncă fără măcar să plece de acasă.
State e-Services Portal
Portalul de Stat, eesti.ee, este un site care acționează ca un one-stop-shop pentru sutele de servicii electronice oferite de diferite instituții guvernamentale. Mai degrabă decât să vâneze un anumit serviciu pe internet, un utilizator poate intra pur și simplu pe acest site gateway unde va găsi link-ul corespunzător.
X-Road
X-Road reprezintă coloana vertebrală a e-Estonia. Este mediul invizibil, dar esențial, care permite ca diverse baze de date naționale de e-servicii, atât în sectorul public, cât și privat, să se conecteze și să opereze în armonie. Unul dintre elementele-cheie ale e-Estonia este că bazele sale de date sunt descentralizate. X-Road reprezintă legătura importantă dintre aceste baze de date, instrumentul care le permite să lucreze împreună pentru un impact maxim. Toate e-soluțiile estoniene care folosesc mai multe baze de date folosesc X-Road.
1.9.1. Studiu de caz: Devino e-Rezident estonian
Republica Estonia va fi prima țară care va oferi e-rezidență. Oameni din întreaga lume vor avea posibilitatea de a obține o rezidență digitală furnizată de guvernul estonian.
Ce este e-rezidența?
Un e-rezident este o persoană fizică care a primit identitatea digitală de e-rezident (smart ID-card) din Republica Estonia. Acest lucru nu va atrage după sine rezidența legală completă, cetățenia sau dreptul de intrare în Estonia. În schimb, e-rezidența oferă acces securizat la serviciile digitale din Estonia și posibilitatea de a oferi semnături digitale într-un mediu electronic. O astfel de identificare digitală și semnătură este, din punct de vedere legal, echivalentă cu identificarea față-în-față și semnătura olografă în Uniunea Europeană.
Cardul nu este un ID-card fizic sau un document de călătorie, deoarece nu are fotografie, dar are un microcip cu certificate de securitate. Acestea permit cardului să fie utilizat împreună cu o mică bucată dintr-un software instalat și un cititor atașat prin USB la un calculator.
Ce avantaje aduce calitatea de e-rezident?
În calitate de e-rezident, o persoană poate folosi și se poate bucura de aceleași servicii digitale care permit estonienilor să facă totul digital – să semneze toate documentele, să lanseze și să gestioneze companii, să facă tranzacții bancare, să cripteze fișiere, etc. Este deosebit de util pentru antreprenori și pentru cei care au deja o relație cu Estonia: cei care fac afaceri, lucrează, studiază sau vizitează țara, dar care nu au devenit rezidenți. Cu toate acestea, e-rezidența este, de asemenea, lansată ca o platformă pentru a oferi servicii digitale unei audiențe globale, fără nicio afiliere estonă anterioară – pentru oricine vrea să își conducă afacerile și viața în cel mai convenabil mod, adică digital.
Cum se poate obține calitatea de e-rezident?
Emiterea de carduri va începe de la sfârșitul anului 2014.
Pentru a aplica pentru calitatea de e-rezident, este necesară o vizită la poliție sau la Biroul de Grăniceri din Estonia. Acolo se depune o cerere și sunt furnizate date biometrice (imagine facială și amprente digitale) pentru verificarea antecedentelor.
Decizia va fi luată în max. 2 săptămâni și dacă totul este în regulă, cardul va fi emis solicitantului în persoană la biroul Poliției și Pazei de Frontieră.
Taxa pentru card, care se plătește o singură dată, este de 50 de euro, alte taxe vor depinde de furnizorii de servicii – serviciile publice digitale vor fi oferite în mare parte fără taxe, la fel ca rezidenților "reali".
Se dorește ca și Ambasadele Estoniei să poată procesa cererile de e-rezidență și emite carduri în străinătate până la sfârșitul anului 2015 , astfel încât să nu fie necesar ca o persoană să călătorească în Estonia pentru a deveni e-rezident.
Pentru o privire mai atentă asupra modului în care are loc viața în mod digital în Estonia, puteți accesa: http://e-estonia.com/ .
Capitolul 2 – Instrumente, metode și tehnici de lucru în implementarea sistemelor informatice integrate
Îmbunătățirea calității deciziilor în ceea ce privește implementarea sistemelor informatice este legată în mod esențial de calitatea instrumentelor folosite în procesele de decizie și implementare.
Acest capitol conține descrieri și exemple care ilustrează cele mai importante metode și tehnici care se folosesc de obicei pentru evaluarea și implementarea implementărilor IT la nivelul instituțiilor publice.
2.1. Diagrama cauză – efect (Fishbone/ Ishikawa)
Concepută de japonezul Kaouru Ishikawa, diagrama cauză-efect a fost dezvoltată cu scopul de a determina și scoate în evidență principalele cauze ale unei probleme date. Diagrama mai este cunoscută și sub alte diverse denumiri: “schelet de pește” (fishbone diagram), diagrama Ishikawa. Diagrama este utilizată în general pentru a studia o singură problemă, pentru care cauzele posibile pot fi ierarhizate.
Kaouru Ishikawa a implementat această metodă în 1968, la Kawasaki, apoi Mazda a folosit-o pentru crearea modelului Miata. Răspândită pe scară largă în prezent, atât în domeniul privat, cât și în cel public, metoda se folosește atunci când problema identificată este una generală, ce poate proveni din toate aspectele vieții publice sau private: scăderea profitului, scăderea cotei de piață, reducerea vânzărilor, creșterea șomajului, scăderea calității proceselor de învățământ, erori în sisteme informatice, probleme în administrația publică care necesită implementarea TIC etc.
Diagrama cauză-efect are două părți: efectul și cauzele.
Efectul (o anumită problemă) este reprezentat de "capul peștelui". Efectele sunt definite prin caracteristici sau probleme de muncă, sociale, de învățământ, TIC etc., fiind concretizate în evoluția nivelului parametrilor ce caracterizează procesul supus analizei. Cauzele potențiale conturează "oasele peștelui", ordonate pe categorii.
Cauzele sunt factorii care determină efectele, apariția unei situații date. Ramurile diagramei sunt săgeți care indică relațiile dintre efect și factorii cauzali. Astfel, diagrama ilustrează într-o manieră clară relațiile dintre un anumit efect identificat și cauzele potențiale ale acestuia. Cauzele se pot referi la persoane implicate în această problemă, sisteme TIC, organizare instituțională, proceduri, echipamente, materiale, etc. Aceste elemente pot fi analizate și sub formă de categorii de cauze care generează problema. În cazul multor politici publice, principalele cauze pot fi de natură instituțională (funcțiile instituțiilor publice, numărul și amplasamentul instituțiilor, suprapunerea funcțiilor, etc.), pot avea legătură cu resursele umane (cunoștințe, competențe, număr de angajați), procedurale (lacune în legislație, reglementări contradictorii), financiare (insuficiente, administrate în mod deficitar).
Figura 2.1. Diagrama cauză – efect.
Categoriile de cauze cele mai cunoscute sunt resursele umane, procesele, tehnologia, mediul, controlul, materialele (materii prime, consumabile și informații.)
Figura 2.2. Model de diagramă cauză – efect
(www.acedio.ro)
Etapele de construcție a unei diagrame cauză-efect pot fi prezentate astfel:
1) Prezentarea problemei, care se realizează prin definirea precisă a procedeelor sau a evenimentelor supuse studiului.
2) Expunerea principalelor cauze posibile.
Pentru aceasta, se întocmește o listă cu toate cauzele posibile care determină variația caracteristicilor stabilite. Cauzele sunt, de regulă, clasificate conform celor menționate mai sus.
Metoda cea mai des întâlnită pentru identificarea cauzelor este brainstormingul.
Figura 2.3. Etapele întocmirii diagramei cauză – efect
Exemplu: Diagrama os de pește
Un exemplu de utilizare a acestei abordări – diagrama os de pește – poate fi analiza problemei timpului de reacție la un oficiu de înmatriculare a autovehiculelor. În cadrul analizei problemei au fost identificați patru factori principali: personalul, echipamentul, comunicarea și reglementările existente. Pentru fiecare dintre acești factori sunt identificate principalele cauze. De exemplu, în ceea ce privește personalul, s-a constatat că timpul de reacție foarte slab de la biroul de înmatriculare a autovehiculelor este cauzat de numărul insuficient de angajați și de lipsa pregătirii adecvate a celor existenți.
Figura 2.4. Model de diagramă cauză- efect,
Diagrama cauză – efect se folosește în relație cu tehnica celor „5 de ce”, mai cunoscută sub denumirea originală de “5 Whys”. Sub forma întrebărilor de tipul „de ce?”, menirea tehnicii este de a explora cauza și efectul unei relații sau a unui proces, evidențiind o problemă particulară, scopul fiind de a găsi esența problemei. Atunci când se face o analiză a celor „5 Why”, e bine de ținut minte că „nu oamenii greșesc, ci procesele”, 9 din 10 greșeli fiind cauzate de procese.
2.2. Analiza PARETO
Analiza PARETO este o tehnică statistică de clasificare a sarcinilor reduse ca număr, dar cu efect semnificativ. Aceasta se bazează pe principiul Pareto (cunoscut și sub denumirea de regula 80/20), care stabilește că 20% din resurse generează 80% din întreaga muncă, sau, în termeni de ameliorare a calității, majoritatea problemelor (80%) au câteva cauze cheie (20%). Diagrama PARETO a fost numită după Vilfredo Pareto, un economist italian din secolul XIX. Acesta a enunțat ceea ce se numește în prezent principiul Pareto, conform căruia ,,20% dintre probleme au 80% din impact.” Diagrama a fost introdusă în practica curentă a organizațiilor de către profesorul J.M. Juran, pentru a face distincția între:
Problemele esențiale, care sunt puține la număr, dar care au rezultate importante și
Problemele secundare, care sunt multe la număr, dar care au puține rezultate.
Un grafic PARETO are următoarele obiective: să separe problemele importante de cele posibile, astfel încât instituția să se poată concentra asupra ameliorării acestora, și să prezinte informațiile în funcție de prioritate sau importanță.
De exemplu, analiza unei diagrame PARETO va arăta că :
80% dintre toate reclamațiile primite de către o primărie se referă la 20% dintre serviciile sale.
80% dintre erorile unui proces rezultă din 20% dintre operațiile care au loc în cadrul acelui proces.
2.3. Analiza SWOT
Una dintre cele mai răspândite metode de evaluare calitativă folosită la identificarea argumentelor pro și contra, a impactului mediului extern, precum și a factorilor de risc este analiza SWOT – denumirea este acronimul în limba engleză pentru Strengths (Puncte Forte), Weaknesses (Puncte Slabe), Opportunities (Oportunități) și Threats (Amenințări). Este o tehnică simplă și apreciată, care a fost creată în domeniul marketingului și al planificării strategice în afaceri, însă care poate fi folosită și pentru elaborarea sau modificarea politicilor publice, evaluarea alternativelor și procesul decizional, evaluarea opțiunilor de implementare a sistemelor informatice în timpul procesului de implementare sau ulterior.
În mod evident, analiza SWOT se realizează prin sesiuni de brainstorming la care participă toți reprezentanții principalelor instituții, partenerilor sociali și grupurilor țintă vizați. Sesiunile speciale de brainstorming se organizează pentru a se evalua fiecare secțiune a analizei SWOT, iar rezultatele analizei sunt prezentate în matricea SWOT.
Figura 2.5. Secțiunile matricei SWOT
Principalele etape ale analizei SWOT sunt:
1. Stabilirea ariei și a obiectivelor analizei SWOT. Scopul pe care îl urmărește o analiză SWOT poate fi unul larg sau restrâns, general sau specific.
2. Selectarea participanților la grupul SWOT. Este important ca din grupul ce întocmește analiza SWOT să facă parte reprezentanții principalelor instituții, partenerilor sociali și grupurilor țintă. Regulile pentru discuțiile SWOT sunt aceleași ca pentru sesiunile de brainstorming.
3. Pregătirea informațiilor esențiale. Pregătirea informațiilor esențiale reprezintă o etapă vitală pentru asigurarea eficienței analizei ulterioare.
4. Enumerarea punctelor forte („Strengths”). Punctele forte pot avea legătură cu domeniul politicii publice, reformele precedente, resursele umane, etc.
Iată câteva exemple de întrebări cheie:
Ce merge bine în domeniul dumneavoastră?
Care este succesul activităților precedente?
Care sunt avantajele tehnologiei TIC în administrația publică?
Care este experiența altor state care au folosit tehnologii de e-guvernare până în prezent?
5. Enumerarea punctele slabe („Weaknesses”). Această sesiune nu trebuie să reprezinte o ocazie pentru participanți de a se axa pe aspectele negative, ci trebuie să fie o evaluare onestă a situației așa cum se prezintă ea.
Iată câteva exemple de întrebări cheie:
• Ce ați putea ameliora?
Ce ați putea evita?
Ce obstacole ar putea sta în calea progresului?
Care sunt elementele care ar trebui consolidate?
Există cu adevărat o verigă slabă în lanț?
Care sunt factorii de rezistență la implementarea tehnologiilor TIC?
Care sunt categoriile de personal (clasificate după funcție, vârstă și alte criterii) care resping tehnologiile TIC?
6. Enumerarea oportunităților („Opportunities”). În această secțiune sunt analizați factorii externi care influențează problema, politica sau organizația care face obiectul analizei – este vorba de factorii socio-economici, de mediu, demografici, politici și alții. Sarcina este enumerarea factorilor externi pozitivi care pot facilita identificarea unei soluții la problema existentă.
7. Enumerarea amenințărilor („Threats”).La polul opus față de oportunități se află acele elemente care pot deplasa accentul sau percepția sau care pot avea un impact negativ. În această secțiune sunt enumerați factorii externi negativi.
Analiza SWOT urmărește să identifice posibilele măsuri ce ar putea reduce sau elimina problemele și punctele slabe, reducând la minim amenințările și maximizând oportunitățile.
Alternativele posibile sunt plasate pe două axe:
1. fezabilitate internă: puncte forte, puncte slabe;
2. mediul extern: oportunități, amenințări.
Figura 2.6. Matricea SWOT
2.4 – Metoda (diagrama) GANTT
Metoda GANTT este o metodă de planificare prin care este prezentată succesiunea activităților din cadrul unui proiect de implementare, în funcție de rezultatele acestora și timpul necesar desfășurării lor. Informațiile obținute în urma aplicării metodei sunt cuprinse într-o schemă cunoscută și sub denumirea de schemă GANTT.
Aplicarea metodei GANTT cuprinde următoarele etape:
– identificarea activităților care urmează a se desfășura în cadrul unui proiect de implementare;
– identificarea timpului necesar desfășurării lor;
– identificarea momentelor de început și de sfârșit ale activităților.
Aceste informații sunt reprezentate grafic într-un tabel. În stânga tabelului sunt prezentate activitățile care urmează să se desfășoare în cadrul proiectului. În capul de coloană este prezentat calendarul desfășurării activităților prezentate pe coloana din stânga. Porțiunile hașurate din tabel reprezintă perioadele necesare desfășurării activităților prezentate în stânga. O anumită activitate poate începe în luna martie a anului pentru a fi finalizată la începutul lunii mai. O anumită activitate poate fi începută înainte ca alte activități să fi fost terminate. Astfel că implementarea soluției ERP poate începe înainte ca toate activitățile de achiziționare a echipamentelor și soluțiilor software să fie încheiate, în acest fel economisindu-se o perioadă de timp care, în alte condiții, ar fi prelungit durata întregului proiect.
Figura 2.7. Exemplu de schema GANTT: Proiect de îmbunătățire a transportului elevilor din localitățile limitrofe către școlile din orașul X.
Pentru ca succesul aplicării metodei să fie asigurat, este necesară ordonarea activităților și stabilirea secvențialității lor printr-o coordonare superioară a diferitelor departamente implicate în desfășurarea activităților din cadrul proiectelor. Astfel, pentru ca proiectul să decurgă conform schemei, este necesar ca secvențialitatea activităților să fie respectată. În cazul în care un anumit departament nu inițiază activitatea exact în momentul prevăzut în schema GANTT, există riscul ca anumite activități să necesite perioade de desfășurare extinse, fapt care afectează terminarea în termen a întregului proiect. Graficul GANTT prezintă avantaje importante, care pot asigura coordonarea eficientă a activităților desfășurate în vederea implementării unei politici publice. Astfel, graficul permite o mai bună vizualizare a activităților proiectului, astfel încât să fie posibilă obținerea unei performanțe crescute, prin scăderea timpului alocat activităților fără ca, în acest fel, să fie afectată calitatea rezultatelor intermediare obținute.
2.5. Diagrama PERT
Diagrama PERT (în limba engleză Program Evaluation Review Technique) este un instrument de management al proiectului, care a fost elaborat și folosit pentru primă oară de U.S. Navy în anii ’50, pentru a coordona programul submarinului atomic Polaris. Diagrama PERT este utilizată pentru planificarea unor activități de mare complexitate, ce utilizează rețele grafice cu o desfășurare logică și corectă. Aceste activități trebuie planificate într-o succesiune logică, trebuie să se încadreze într-un sistem de termene parțiale și este necesar ca întregul program să fie conceput astfel încât realizarea lui să coste cât mai puțin și să se termine cât mai repede.
Această metodă are posibilitatea de a detecta operativ orice abatere de la program și poate evalua imediat care pot fi consecințele acestei abateri. Diagrama PERT conține informații despre sarcinile dintr-un proiect, perioadele de timp pe care se întind și dependențele dintre ele. Forma grafică este o rețea de noduri conectate de linii direcționale (numită și « rețeaua activităților « ). Nodurile sunt cercuri sau patrulatere și reprezintă 2 evenimente sau borne (milestones) din proiect, definind o sarcină parțială bine conturată în cadrul sistemului, ce a fost îndeplinită. Metoda este utilizată pentru optimizarea folosirii timpului și a cheltuielilor. O particularitate a sistemului este introducerea de variante posibile privitoare la durata planificată de desfășurare a fiecărei activități în parte, putându-se face astfel trei evaluări : durata de timp « optimă », durata cea mai « pesimistă », durata cea mai « probabilă » realizată în condiții normale.
Figura 2.8. Diagrama PERT – model.
2.6. Analiza cost beneficiu (ACB)
Analiza Cost-Beneficiu (ACB) este o metodă cantitativă de estimare a dezirabilității unui proiect de implementare IT sau a unei politici guvernamentale pe baza calculului raportului dintre costurile și beneficiile viitoare.
Instrument des utilizat în acest domeniu, analiza cost – beneficiu are diferite definiții. După cum este descrisă de documentele EU, „analiza cost – beneficiu este un instrument analitic, utilizat pentru a estima (din punct de vedere al beneficiilor și costurilor) impactul socio-economic datorat implementării anumitor acțiuni și/sau proiecte. Impactul trebuie să fie evaluat în comparație cu obiective predeterminate, analiza realizându-se în mod uzual prin luarea în considerare a tuturor indivizilor afectați de acțiune, în mod direct sau indirect.„
Definiția dată de Asociația de Management de Proiect spune că „analiza cost-beneficiu implică estimarea costurilor (cheltuielilor) și a beneficiilor (veniturilor) diferitelor alternative de proiecte”.
În general, beneficiile trebuie să depășească costurile.
În general, ACB trebuie să stabilească dacă analiza se realizează adoptând o perspectivă locală, regională, națională, la nivelul UE sau globală. Nivelul de analiză potrivit trebuie determinat în relație cu mărimea și scopul proiectului, adică în relație cu grupul/zona în care proiectul are un impact relevant.
Obiectivul Analizei Cost – Beneficiu este acela de a identifica și cuantifica (respectiv de a da o valoare monetară) toate impacturile posibile ale acțiunii sau proiectului luat în discuție, în vederea determinării costurilor și beneficiilor corespunzătoare. În principiu, toate impacturile ar trebui evaluate: financiare, economice, sociale, de mediu, etc. În mod tradițional, costurile și beneficiile sunt evaluate prin analizarea diferenței dintre scenariul „cu proiect” și alternativa acestui scenariu: scenariul „fără proiect” (așa numita “abordare incrementală”). În continuare, rezultatele sunt cumulate pentru a identifica beneficiile nete și pentru a stabili dacă proiectul este oportun și merită să fie implementat. Astfel, ACB poate fi utilizată ca instrument de decizie pentru evaluarea acțiunilor/ politicilor/ proiectelor de implementare TIC ce urmează a fi finanțate din resurse publice.
În literatura de specialitate, este dezbătută problema “ale cui beneficii și costuri se iau în considerare?”, altfel spus „bunăstarea cui se include în agregarea beneficiilor?” În unele cazuri, pentru a identifica persoanele afectate, este nevoie să fii conștient de existența unui număr de actori (stakeholderi) sociali, întrucât costurile și beneficiile pot afecta grupuri mai mari sau mai mici de actori economici/sociali, în funcție de nivelul geografic adoptat de analiză.
Având în vedere cadrul general prezentat în capitolele precedente, etapele propuse pentru realizarea analizei cost – beneficiu pentru implementările TIC sunt următoarele:
analiza detaliată și justificarea costurilor și beneficiilor pe care le presupune implementarea soluțiilor TIC;
cuantificarea sau estimarea în termeni monetari a valorii costurilor și beneficiilor;
calculul valorii nete prezente pentru fiecare variantă în parte;
prezentarea riscurilor și incertitudinilor care pot contribui la modificarea în timp a valorilor estimate.
Vor fi parcurși următorii pași:
– Identificarea investiției și definirea obiectivelor;
– Analiza opțiunilor;
– Analiza financiară;
– Analiza economică;
– Analiza senzitivității;
– Analiza riscului;
Tipuri de costuri și beneficii
Atât costurile, cât și beneficiile pot fi clasificate ca fiind economice sau non-economice.
Beneficii/costuri economice – pot fi evaluate la prețul pieței și li se poate atribui valoare monetară.
Beneficii/costuri non-economice – pot fi cuantificate (ex: numărul de copaci salvați prin utilizarea documentelor digitale și eliminarea, prin implementarea TIC, a documentelor pe hârtie). Pot exista metode de atribuire a valorii monetare pentru acestea.
Beneficii/costuri non-economice – nu pot fi cuantificate (ex: justiția socială).
Costuri private vs. Costuri sociale
Costurile private reprezintă toate drepturile, condițiile la care individul renunță ca urmare a implementării legislației.
Costurile sociale: ceea ce societatea pierde ca urmare a legislației în favoarea individului.
Analiza riscului
Analiza riscului este una dintre etapele esențiale ale ABC. Conform definiției Societății Analizelor de Risc, riscul este “potențialul de a se realiza consecințe nedorite pentru viața umană, sănătate, proprietate sau pentru mediul înconjurător”. Analiza riscului este o tehnică de identificare și evaluare a factorilor care pot afecta succesul unei implementări TIC din punctul de vedere al realizării obiectivelor sale.
Principalele etape ale analizei de risc sunt: identificarea potențialelor riscuri, identificarea probabilităților de apariție a riscurilor, măsurarea consecințelor unui risc, evaluarea riscurilor, gestionarea neutralizării riscului.
Figura 2.9. Procesul standard de evaluare a riscurilor.
Riscurile se pot defini astfel:
Risc inacceptabil (maxim): este necesară intervenția celor responsabili pentru a diminua riscul (nefuncționarea totală a sistemelor informatice operaționale și critice ale unei instituții publice).
Risc tolerabil (mediu): În acest caz riscurile sunt considerate nesemnificative și sub control (riscul de nefuncționare pe termen scurt a sistemelor informatice).
Risc acceptabil (scăzut): Riscul cu care oamenii sunt dispuși să trăiască (nefuncționarea unor sisteme informatice care nu sunt critice pentru o instituție publică).
Clasificarea riscurilor se face în funcție de doi factori:
Probabilitatea de apariție a riscului.
Consecințele pe care le are apariția riscului.
În funcție de acești factori se întocmește o hartă a riscurilor, precum în imaginea de mai jos:
Figura 2.10. Harta riscurilor.
2.7. Analiza cost – eficacitate (ACE)
Analiza cost-eficacitate (ACE) este un instrument care poate ajuta la asigurarea utilizării eficiente a resurselor de investiții în sectoare în care beneficiile sunt dificil de exprimat monetar (să li se confere o valoare). Există o categorie vastă de proiecte ale căror beneficii fie nu au un preț de piață ușor accesibilă, fie nu sunt ușor măsurabile în termeni monetari. ACE este un instrument de selecție a unui proiect dintre proiecte / soluții alternative pentru atingerea aceluiași obiectiv (cuantificat în unități de măsură fizice).
Există unele sectoare de investiții în care ACE ar putea fi o alternativă superioară la ACB:
a) investițiile în infrastructură de mediu cu scopul de a se conforma cu standardele de mediu ale UE;
b) educație (în special școala primară), deoarece această etapă în educație este obligatorie prin lege;
c) infrastructură de sănătate (dosarul electronic al pacientului, interoperabilitatea sistemelor informatice);
d) alte infrastructuri sociale, cum ar fi cele referitoare la protecția copiilor sau îngrijirea persoanelor în vârstă.
Pentru aceste sectoare ACE este recomandată deoarece permite selectarea unui proiect care aduce beneficii cu cele mai mici costuri pentru societate și asigură utilizarea eficientă a resurselor de investiții în sectoare în care beneficiile sunt dificil de valorizat (exprimat în termeni monetari). Analiza cost-eficacitate este foarte utilă în evaluarea intervențiilor care au ca scop îmbunătățirea stării de sănătate a unei populații, iar în caz de evaluare care necesită luarea în considerare în comun a mai multor rezultate ar trebui folosită metoda cost-eficacitate ponderată.
Exemplu / mini-studiu de caz – Achiziția de echipamente TIC pentru e-educație
Proiectele educaționale au un impact semnificativ asupra pieței forței de muncă și asupra nivelul de trai (nivelul de venituri). De obicei, efectele/ beneficiile lor sunt măsurate cu indicatori, cum ar fi: creșterea ratei ocupării forței de muncă, veniturile incrementale/ adiționale pentru absolvenții de școli. Dacă timpul dintre absolvire și angajare este destul de scurt pentru liceu, universitate, masterat sau doctorat, pentru școala primară, care este obligatorie, este imposibil de determinat acest tip de indicatori deoarece efectele apar de obicei în afara orizontului de analiză.
2.7. Balanced Scorecard (Tabelul cu Scoruri Ponderate)
Abordarea management-ului strategic prin folosirea Tabelului cu Scoruri Ponderate (TSP) („Balanced Scorecard”) a fost dezvoltată la sfârșitul anilor 1980 de profesorul american Robert S. Kaplan (Harvard Business School) și profesorul David P. Norton. Inițial, metoda fusese creată ca un instrument de management pentru firmele private, pentru a aborda necesitatea de măsurare a resurselor, input-ului și rezultatelor în contextul perspectivelor strategice ale companiei.
Începând cu anii 1990, metoda TSP a fost larg folosită pentru planificarea strategică în cadrul instituțiilor din sectorul public. Metoda este foarte cunoscută ca un instrument de management al funcționării sectorului public în SUA, Marea Britanie, Australia și țările scandinave. În multe cazuri, modelul original al TSP a fost modificat pentru a răspunde nevoilor specifice ale instituțiilor publice. De exemplu, în sectorul public din Finlanda se face adesea referire la această metodă numind-o „Succesul Echilibrat”, subliniind că în sectorul public nu este întotdeauna potrivit să se evalueze succesul responsabilităților doar în baza unor indicatori măsurabili, dar că este nevoie să se ia în calcul și metode calitative.
Figura 2.11. Structura Balanced Scorecard.
TSP reprezintă un sistem de management care s-ar putea aplica planificării la nivelul instituției, precum și procesului de planificare a marilor strategii sectoriale. De asemenea, TSP este aplicabil unui tip de planificare a politicilor publice „axate pe scopuri” prezentat anterior. TSP este o metodă populară în dezvoltare. Există, de asemenea, programe IT care oferă un instrument tehnic pentru colectarea datelor necesare și gestionarea strategiei TSP.
Prin această metodă se stabilește un echilibru între diferite dimensiuni ale planificării, implementării, monitorizării și evaluării:
• pe termen lung și scurt;
• măsuri referitoare la resurse și alte măsuri care nu privesc resursele;
• perspective externe și interne.
2.8. Metodologia de implementare PQIS
PQIS este termenul prin care este descrisă o metodologie de implementare a sistemelor informatice. PQIS reprezintă ambalarea și standardizarea serviciilor de implementare a unui sistem informatic economic într-un set de servicii de project management și consultanță.
Figura 2.12 – Elementele metodologiei PQIS.
Materialele livrabile obligatorii în cazul PQIS sunt următoare:
Termeni de referință;
Plan de Proiect;
Documentul de design al sistemului;
Analiza post implementare;
Documente semnate la finalizarea fiecărei etape de implementare (termenul consacrat, după cum se va putea vedea și din acest capitol, este de livrabile pentru aceste documente).
Consultantul sau managerul de proiect trebuie să se asigure că detaliile din contractul cu termenii de referință reflectă complexitatea și riscurile inerente proiectului.
2.8.1. Etape în implementarea PQIS
Abordarea PQIS pentru implementare va permite clientului să controleze procesul și să înțeleagă sensul și evoluția proiectului. Acest lucru va implica revizuirea periodică a progresului implementării prin intermediul ședințelor de proiect.
Cele mai importante obiective pentru implementarea sistemelor informatice folosind PQIS sunt:
• să se asigure că implementarea se realizează în cel mai scurt timp posibil și la cel mai mic cost pentru client;
• să se furnizeze un sistem financiar care va permite clientului să utilizeze resursele aflate la dispoziția sa într-un mod cât mai eficient, eficace și economic.
Acest serviciu este împărțit în zece etape ale proiectului, care sunt prezentate succint în continuare:
Etapa 1 – Inițierea proiectului – presupune stabilirea regulilor care vor fi urmate în implementarea proiectului (modul de desfășurare a ședințelor de proiect, modul de comunicare în proiect, livrabile, elemente specifice cerute de client etc. )
Etapa 2 – Instalarea software-ului – fiind vorba de implementarea unei aplicații software aceasta este o etapă intrinsecă. Este de precizat că în această etapă are loc o instalare generală a sistemului, fără elementele și configurările specifice clientului. Suplimentar, ținând cont de evoluția TIC, astăzi putem renunța la varianta “on premises” și să realizăm instalarea aplicației în cloud.
Etapa 3 – Instruire pentru echipa de proiect – această etapă este dedicată trainingului echipei implicate direct în implementare.
Etapa 4 – Analiza și proiectarea sistemului informatic al clientului. Pentru a implementa un sistem informatic complex, trebuie realizată o analiză corespunzătoare și un design corespunzător al sistemului implementat.
Etapa 5 – Configurarea sistemului informatic – presupune configurarea sistemului informatic general și adaptarea acestuia la nevoile clientului. Sistemele informatice integrate (e.g. ERP – Enterprise Resource Planning) sunt sisteme informatice deschise și pot fi adaptate, printr-o serie de parametri, la nevoile beneficiarilor. Pentru necesități foarte specifice, există posibilitatea de a dezvolta module specifice prin instrumentele de programare disponibile în cadrul acestor soluții.
Etapa 6 – Instruierea utilizatorilor finali – presupune un training specializat pentru diversele categorii de utilizatori ai sistemului informatic. Dacă la etapa 3 discutam de un training general, acum discutăm de unul specific (e.g. un casier va fi instruit exclusiv pentru realizarea operațiunilor cu numerarul și emiterea de chitanțe în sistemul informatic integrat).
Etapa 7 – Migrarea datelor – presupune migrarea datelor din sistemele utilizate anterior de organizație.
Etapa 8 – Testarea și acceptarea proiectului – presupune o etapă de testare pe baza unei serii de scenarii stabilite de comun acord între consultant și beneficiar. În urma acestor teste, sistemul este acceptat sau nu de către beneficiar.
Etapa 9 – Sistemul este utilizat pentru activitățile curente – în cazul testelor cu succes realizate la etapa anterioară, sistemul este folosite pentru activitatea curentă a instituției
Etapa 10 – Suport – reprezintă zona de suport după finalizarea implementării. Contractul de suport este foarte important pentru asigurarea succesului unui proiect de implementare a unui sistem informatic integrat (e.g. ERP) prin intermediul acestuia stabilindu-se timpii de răspuns ai furnizorului TIC în situațiile în care apar probleme.
Tabel 2.1 – Structura unui proiect de implementare ERP. Efortul este estimat în zile-om, fiind estimat atât pentru client, cât și pentru furnizorul de soluții informatice.
2.8.2. Alte elemente specifice PQIS
În continuare, sunt trecute în revistă alte câteva elemente specifice metodologiei PQIS:
Managementul riscului de proiect
Proiectele au riscuri inerente, iar managementul riscului reprezintă adăugarea unui extra strat de planificare și control în abordarea managementului proiectului care asigură faptul că problemele sunt evitate în mod proactiv și gestionate cu succes în cazul în care apar.
Etapele implicate în managementul riscului:
Identificarea factorilor de risc ai proiectului;
Evaluarea impactului și a probabilității factorilor de risc;
Planificarea în cazul unui risc:
Măsuri preventive;
Planuri de urgență.
Monitorizarea riscului;
Monitorizarea proiectului
Monitorizarea proiectului reprezintă examinarea în curs a progresului proiectului, identificarea sarcinilor furnizate, a sarcinilor parțial finalizate și a sarcinilor restante. Planul de proiect este folosit ca punct de referință pentru aceste examinări. Este de asemenea important de a se examina progresul zonelor de risc identificate în timpul procesului de planificare.
Controlul proiectului
După identificarea problemelor cheie și stabilirea cauzelor ale acestora în timpul procesului de monitorizare, managerul de proiect va colabora cu echipa de proiect pentru a iniția o schimbare. Acest lucru poate implica prezentarea problemelor conducerii, schimbarea resurselor, ajustarea scalelor de timp sau implementarea unor planuri de urgență.
2.8.3. Metodologia BOSCARD
Aceasta este o tehnică care este utilizată pentru a simplifica utilizarea metodologiei PQIS. BOSCARD este un acronim care ajută la identificarea elementelor cheie ale definirii proiectului. Prin definiție, un proiect unic prin natura sa. Instrumentul BOSCARD include următoarele metode:
Background
Obiective
Scop
Constrângeri
Assumptions/Ipoteze
Raportare
Deliverables/Livrabile
Background
Prin revizuirea background-ului proiectului vom identifica de ce acesta trebuie efectuat. Acest lucru, la rândul lui, va avea un impact asupra modului în care se realizează munca necesară și prioritățile asociate cu diferite obiective. De exemplu, în cazul în care motivul pentru care clientul vrea un nou sistem este acela că sistemul vechi nu poate furniza informațiile detaliate de management de care are nevoie, atunci consultantul va admite că acest lucru este foarte important pentru client și va trata aceste nevoi specifice.
Obiective
Acestea sunt rezultatele dorite ale proiectului. Dacă vom îndeplini aceste obiective, proiectul va fi un succes. Implementarea unui nou sistem este adesea interpretată ca o oportunitate de a repara tot ceea ce este în neregulă cu o organizație. Acest lucru este nerealist. Prin urmare, este important să se evidențieze principalele obiective ale proiectului, astfel încât clientul și consultanții să se poată concentra asupra aspectelor importante.
Scop
Este extrem de important să nu existe nicio îndoială cu privire la volumul de muncă ce trebuie întreprins și finalitatea proiectului de implementare. Imposibilitatea de definire a scopului unui proiect este în mod automat o cauză obișnuită pentru eșecul proiectului.
Constrângeri
Acestea sunt în mod normal probleme privind disponibilitatea resurselor. Prin evidențierea constrângerilor, evidențiem unele dintre dependențele proiectului. Aceasta, la rândul lor, ne permit să ne pregătim pentru rezultate nefavorabile.
Ipoteze
Ipotezele reprezintă dependențele noastre față de client și de terți. La fel ca în cazul constrângerilor, sunt evidențiate zone ale proiectului care sunt în afara controlului nostru. Progresul în aceste domenii trebuie monitorizat în mod regulat pentru a identifica impactul asupra proiectului și măsurile ce trebuie luate în consecință.
Raportarea
Această secțiune identifică acel cadru care va fi utilizat pentru revizuirea și raportarea progresului în implementare.
Livrabilele
Acestea sunt documentele și configurările în sistem, realizate după fiecare etapă de implementare a sistemului informatic, care vor fi livrate clientului. Acestea prezintă progresul pe care proiectul îl face și pot constitui baza pentru plăți eșalonate.
2.9. Microsoft Dynamics Sure Step Methodology
Sure Step reprezintă metodologia oficială a Microsoft pentru proiectele Dynamics. Ca orice altă metodologie de proiect, Sure Step stabilește CINE și CE va face, în CE ORDINE și cine este RESPONSABIL pentru realizarea proiectului de implementare. Sure Step definește fazele procesului, rolurile, artefactele, procesele cu faze încrucișate și procesele suplimentare de gestionare a proiectului. Sure Step suportă o gamă largă de produse: Dynamics AX, Dynamics NAV, Dynamics GP, Dynamcis SL și Dynamics CRM. Principiile care stau la baza Sure Step pot fi folosite și la implementarea altor soluții informatice integrate.
De asemenea, metodologia suportă diferite tipuri de proiecte: implementări complete și complexe, implementări rapide care se caracterizează printr-un număr relativ redus de personalizări ale sistemului, optimizări ale instalărilor de Dynamics existente și actualizări la noile versiuni ale sistemelor informatice Dynamics.
Figura 2.13 – Schema metodologiei Sure Step.
Microsoft oferă atât un ghid electronic de proces, cât și un editor. Ghidul pentru modelarea procesului de implementare este un proiect HTML combinat cu elemente ActiveX. Este posibil să filtrezi conținutul ghidului de proces folosind elementele ActiceX. Este necesar Internet Explorer pentru a vizualiza ghidul de proces în mod corespunzător. Editorul este parte a pachetului Sure Step, iar acesta permite adaptarea proceselor la nevoile specifice.
Figura 2.14 – Utilizarea instrumentelor specifice metodologiei Sure Step.
2.9.1. Fazele implementării Sure Step
Sure Step acoperă întregul ciclu de viață de la inițierea proiectului, dezvoltare, implementare, optimizare și upgrade-ul la versiunea următoare. O fază se încheie cu un milestone. Fiecare milestone reprezintă o sumă de obiecte create sau rafinate în acea fază. În cazul în care o etapă este finalizată, ar putea să înceapă faza următoare.
Fazele Sure Step principale sunt descrise în continuare:
Diagnostic: Faza de diagnosticare conține o analiză a procesului clientului la un nivel foarte ridicat. Focusul etapei de diagnosticare este de inițializare a proiectului. Pentru a configura un plan de proiect la care trebuie ajuns.
Analiza: În faza de analiză, majoritatea proceselor de business sunt identificate și documentate la un nivel ridicat. Dacă este necesar, un specialist extern vă ajută să faceți acest lucru. Scopul fazei de analiză este de a înțelege afacerile clienților și procesele efectuate. Modelarea și documentarea activității clienților este importantă, Microsoft oferind și un instrument pentru modelare: Microsoft Sure Step Business Modeler.
Design: Scopul principal al fazei de proiectare este de a descoperi modul în care procesele și nevoile clienților pot fi puse în aplicare cu Dynamics. În acest moment pot exista mai multe soluții pentru un subiect și este necesară o strategie corespunzătoare pentru faza de implementare. Deși procesul de creare de prototipuri nu este acoperit în Sure Step, acesta este punctul în care trebuie construite prototipuri și făcute teste privind implementarea lor.
Dezvoltarea: Cele mai multe dintre lucrările de programare se fac în etapa de dezvoltare. Dezvoltarea se referă la crearea de noi caracteristici și adaptarea caracteristicilor existente, precum și migrarea datelor. Toate caracteristicile și migrarea de date trebuie să fie testate. Pe lângă caracteristici și testarea migrării datelor, este necesar să se facă teste de securitate. Faza se termină atunci când cele mai multe dintre caracteristicile specificate sunt dezvoltate și testate, iar migrarea datelor este finalizată.
Implementarea: Scopul fazei de implementare este de a seta mediul dinamic operațional pentru client. Pe lângă instalare, configurare și implementarea caracteristicilor, faza aceasta se axează pe testarea la nivelul sistemului. Deci, va fi necesară rularea testelor utilizator de acceptare, testările procesului, testele de securitate și testele de încărcare, așa cum au fost definite în planul de testare. În cazul în care sistemul rulează și toate testele trec, etapa de implementare este finalizată.
Figura 2.15 – Sunt disponibile instrumente foarte utile de modelare a proceselor de implementare.
2.10 Studiu de caz – Implementarea SAP la Primăria din Sibiu
ERP (Enterprise Resource Planning) reprezintă un set de aplicații software care sunt menite să integreze și să eficientizeze procesele dintr-o instituție publică. Planificarea resurselor întreprinderii, văzută ca o categorie de software, s-a născut la începutul anilor 1970 și s-a extins și în instituțiile publice în prezent. Pionierul în domeniul ERP a fost SAP. Compania SAP a fost înființată de către cinci foști angajați IBM, care au previzionat că viitorul aplicațiilor pentru organizații va fi tocmai în această zonă de integrare a proceselor.
Legat de SAP, cel mai utilizat ERP la nivel global, putem preciza următoarele:
SAP este pe primul loc in lume in furnizarea pachetelor ERP si a soluțiilor CRM, PLM, SRM, SCM si HCM in anul 2014;
Peste 100.000 de instalări în peste 30 de ani de activitate;
SAP este utilizat astăzi în 29800 organizații, dintre care peste 1080 in Sectorul Public;
Figura 2.16 – Utilizarea SAP la Primăria din Sibiu.
ERP-ul s-a născut în mediul privat, mai precis în industria auto. Avantajele sistemelor ERP au condus la extinderea aplicabilității acestora la orice organizație, devenind un pilon important și pentru instituțiile din administrația publică. Principalele beneficii aduse de o soluție ERP în administrația publică sunt:
Integrarea tuturor departamentelor într-o singură aplicație;
Unificarea proceselor;
Acces centralizat la resurse;
Costuri mai reduse de exploatare.
După cum se poate vedea și din figura 2.16, funcțiile oferite de sistemul SAP de la primăria din Sibiu pot fi împărțite în două categorii:
Soluții și servicii pentru comunitate, cetățeni și mediul de afaceri:
Servicii sociale;
Taxe și impozite;
Răspuns la incidente și cereri folosind mijloace Web;
Informare;
Formulare Web;
E-justiție.
Soluții administrative (acces intern pentru funcționarii primăriei):
Financiar – contabilitate;
Resurse umane;
Gestiune fonduri;
Gestiune granturi și subvenții;
Dezvoltare profesională prin SAP e-learning.
Figura 2.17 – Principalele module SAP la Primăria din Sibiu.
Implementarea unui sistem ERP într-o primărie permite realizarea dezideratului pentru o instituție publică – ghișeul unic. Ghișeul unic asigură optimizarea proceselor din instituție, un nivel ridicat de transparență în procesele e-guvernamentale și servicii de calitate pentru cetățean. Fără implementarea unei soluții ERP, care să integreze toate procesele și departamentele dintr-o primărie, ghișeul unic este destul de dificil de implementat.
Capitolul 3 – Arhitectura client-server în administrația publică
Arhitectura client-server constituie o stare de facto pentru majoritatea sistemelor informatice actuale. Indiferent care este domeniul căruia îi este dedicat sistemul informatic (economic, social, științific etc.), arhitectura client-server s-a impus ca o condiție sine qua non pentru oferirea unei accesibilități cât mai mari la resursele informaționale oferite de sistemele de gestiune a bazelor de date. Răspândirea Internetului, combinată cu nevoia tot mai acută de mobilitate și accesibilitate, au determinat generalizarea acestei arhitecturi în cadrul aplicațiilor de baze de date sau al altor sisteme informatice.
În cele ce urmează vom încerca să punem accentul pe problematica sistemelor de gestiune a bazelor de date client-server. Astfel, vor fi tratate elementele specifice sistemelor SQL Server și Oracle, fiind prezentate problemele de ordin tehnologic și avantajele integrării arhitecturii client-server în sistemul informatic economic. Sistemele de gestiune a bazelor de date (SGBD) client-server stau la baza sistemelor informatice ale întreprinderii (soluții ERP – Enterprise Resource Planning, soluții CRM – Customer Relationship Management), constituind elementul fundamental pentru desfășurarea eficientă a activităților economice și financiare. De asemenea, sistemele de asistare a deciziilor și componentele de business intelligence sunt fundamentate pe SGBD-urile de acest tip. În acest context, fundamentarea teoretico-practică a acestor tehnologii este strict necesară pentru tema abordată de această teză de doctorat.
3.1. Elemente fundamentale privind arhitectura client-server
Toate organizațiile recunosc, la această oră, rolul important al aplicațiilor software, acestea determinând reducerea costurilor și îmbunătățirea serviciilor în raport cu alți competitori. Dezvoltarea sistemelor informatice și necesitatea utilizării pe o arie tot mai mare a unor date de interes comun au dus la proiectarea modelului client-server, acesta oferind, prin datele distribuite, portabilitate între platforme și un acces standardizat la resurse.
Termenul de client-server provine de la metoda tradițională de accesare a unui calculator central numit server de către stații de lucru aflate la distantă – clienți – într-o infrastructură de rețea. Serverele utilizează baze de date relaționale în stocarea și întreținerea datelor între care există referințe. Aceste referințe sunt menținute prin integritatea referențială a bazei de date (referential integrity), aceasta oferind mecanisme speciale care acționează asupra datelor. În acest sens, declanșatorii (trigger) și procedurile de stocare (stored procedure) devin elemente fundamentale, care asigură integritatea referențială a bazei de date. Ele vor fi prezentate amănunțit în cadrul acestei teze de doctorat.
Această arhitectură este o combinație a trei tehnologii: sistemul relațional de management al bazelor de date (DBMS), rețeaua și interfața client. Contrar opiniei generale clientul și serverul nu sunt entități hardware, componenta software fiind elementul de bază care asigură funcționalitatea arhitecturii client-server. Modelul client-server implică o entitate software (clientul) care efectuează cereri, acestea fiind îndeplinite de o altă entitate software (serverul). Clientul este cel ce transmite o cerere server-ului, acesta o interpretează și apoi o rulează. Pentru a putea îndeplini cererea, serverul poate accesa un sistem de gestiune a bazelor de date, solicitându-i să efectueze procesări suplimentare asupra datelor. De asemenea, serverul poate controla diverse dispozitive periferice sau efectua cereri adiționale către terțe servere.
Relația între client și server este una de comandă/control: clientul formulează cererea, iar serverul este cel ce o îndeplinește, transmițând rezultatul clientului, aplicația fiind procesată prin divizarea ei între cele două entități. Transferul de date este bidirecțional. Spre deosebire de o arhitectură conservatoare, bazată pe un server de fișiere tradițional, în care datele sunt aduse de pe server pentru a fi procesate pe o mașină locală, în cazul soluțiilor client-server comenzile sunt transmise către bazele de date localizate pe server, rezultatul fiind retransmis înapoi clientului pentru a fi vizualizat (figura 3.1.).
Figura 3.1. Mediul Microsoft SQL Server și arhitectura client-server.
3.2. Avantajele modelului client-server
Modelul client-server prezintă o serie de caracteristici fundamentale:
Centralizarea informației – Într-un astfel de model, datele sunt stocate pe un server central, existând un singur punct de control care administrează cererile aplicațiilor și platformelor. Aceste servere utilizează un sistem de management al bazelor de date (DBMS) pentru a defini, stoca și manipula date. Serverul este generic; programatorii neavând nevoie să cunoască un limbaj anume pentru a le accesa. Utilizând tehnicile de identificare, o organizație poate crea magazii de date pe baza unor servere distribuite în diferite zone geografice, aflate la mari distanțe una de alta. Această tehnică maximizează performanțele fără a compromite modelul centralizat și reducând probabilitatea existenței de date redundante în aplicații.
Procesare centralizată – Preluând acest avantaj, organizațiile pot reduce procesarea redundantă prin utilizarea procedurilor trigger și de stocare. Serverul este orientat pe procese standard ca: menținerea unor reguli, validări și referințe de integritate prin intermediul funcțiilor de stocare disponibile pe un server comun.
Performanțe – Serverul este un computer dedicat să proceseze un set limitat de cereri de la clienți. Singura sa funcție este să proceseze cererile asupra bazelor sale de date. SQL oferă facilități eficiente de utilizare a traficului în rețea, deoarece doar subseturi ale datelor sunt transmise în rețea. În plus, serverele și DBMS sunt desemnate să gestioneze baze de date masive fără o degradare semnificativă a performanțelor.
Securitate – Serverele lucrează pe platforme ca UNIX , Windows NT – 2000 – 2003 sau OS/2, oferind astfel o mai mare securitate pentru managementul bazelor de date în comparație cu serverele de fișiere standard. Mecanismele de duplexing, mirroring și copiere permit administratorilor să evite pierderile de date. De asemenea, aceste baze de date facilitează definirea de utilizatori și parole care permit evitarea accesului unor persoane neautorizate.
3.3. Sisteme informatice – arhitecturi particulare
Este necesar ca arhitectura particulară a unui sistem informatic să ia în considerare următoarele elemente fundamentale: complexitatea aplicației, nivelul de integrare și interfațare cerut, numărul utilizatorilor, răspândirea lor geografică, natura rețelelor, precum și toate tipurile de tranzacții necesare. Alegerea arhitecturii afectează timpul de dezvoltare, flexibilitatea și întreținerea aplicației. Majoritatea aplicațiilor urmăresc trei nivele fundamentale de structurare a informațiilor din cadrul acestora: nivelul de prezentare, nivelul de procesare și cel propriu-zis de stocare a datelor.
Diversele arhitecturi client-server specifice definesc modul în care aceste trei componente sunt împărțite între entitățile software și distribuite în rețea, existând o varietate de modalități de divizare și implementare a acestora. În funcție de scopul urmărit de un anumit sistem informatic, utilizarea unui tip particular al acestei arhitecturi poate aduce beneficii importante companiei utilizatoare, oferind posibilitatea de adaptare rapidă la diferite standarde și tehnologii. Din aceste considerente, cele mai uzitate tipuri de arhitecturi sunt fie cu două entități (two-tier), fie cu trei (three-tier). În cele ce urmează vor fi trecute în revistă amănunte legate de elementele definitorii ale acestor arhitecturi.
3.3.1. Arhitectura two-tiers
În acest tip de implementare, cele trei componente ale unei aplicații (prezentare, procesare și date) sunt divizate între două entități (tiers): codul aplicației client și baza de date server. O aplicație client dezvoltă un limbaj si un mecanism pentru a transmite cererea serverului. Prezentarea este deținută în exclusivitate de client, procesarea fiind împărțită între client si server, iar datele fiind stocate și accesate de pe server. PC-ul client își asumă întreaga responsabilitate a funcționării logice a aplicației, timp în care motorul bazei de date verifică integritatea. Într-o astfel de tipologie motorul datelor (data engine) este cel ce procesează cererile clientului, limbajul utilizat fiind o formă a SQL. Transmiterea unei cereri de către client presupune ca aplicația client să cunoască sintaxa serverului sau aceasta să fie tradusă printr-o aplicație (API). Datele transmise clientului pot fi manipulate de acesta în funcție de necesități, iar datele de pe server sunt organizate într-o structură centralizată. Aceste medii pot procesa o varietate mare de structuri de date, totodată arhitecturile two-tiers rulând eficient în medii eterogene, aplicația client deținând controlul, orice modificare care apare în cadrul unui sistem ducând doar la modificarea aplicației client.
Sistemul de securitate într-un astfel de mediu este complex, deoarece un utilizator trebuie să dețină parole pentru fiecare server SQL, iar creșterea utilizatorilor poate duce la compromiterea securității bazelor de date aflate pe server. În prezent majoritatea aplicațiilor client-server sunt proiectate să lucreze cu produse middleware, care duc la creșterea securității.
3.3.2. Arhitectura three-tiers
Apariția acestei arhitecturi s-a datorat limitărilor create de modelul precedent, oferind o eficiență și o interoperabilitate crescută în realizarea aplicațiilor. Aplicațiile dezvoltate pe baza acestei arhitecturi sunt structurate pe trei straturi (entități): stratul interfeței cu utilizatorul, stratul logicii aplicației și stratul bazei de date. Straturile aplicației pot include la rândul lor una sau mai multe componente distincte. De exemplu, primul nivel poate conține una sau mai multe interfețe cu utilizatorul, fiecare interfață putând comunica cu mai multe componente din stratul dedicat logicii aplicației. Suplimentar, există posibilitatea de a exploata mai multe surse de baze de date și de a le integra în aplicații ce prezintă un înalt grad de complexitate.
Acest model este mult mai flexibil, permițând organizațiilor să-si modifice configurările în sistem, datele putând fi organizate ierarhic, relațional sau obiectual. De asemenea, este simplificat modul de trecere la noi tehnologii legate de structurarea bazelor de date, fără a fi nevoie de modificări la nivelul aplicației client. Traficul de rețea este redus avându-se în vedere noul strat inclus, datele fiind preluate de la structuri specializate înainte de a fi distribuie la clienți în rețea.
Din punctul de vedere al dezvoltărilor software, modularitatea permite reutilizarea cu efort minim a unor subrutine, determinând în acest mod o reducere a costurilor.
Sistemele three-tier pot fi implementate utilizându-se o varietate de tehnologii, mecanismul de cerere al clientului către server fiind însă implementat în majoritatea situațiilor prin apelul procedurilor remote (RPC). Apelul unor astfel de proceduri de către client asigură sistemului o flexibilitate foarte mare în comparație cu apelurile SQL efectuate de client în arhitectura precedentă, acest lucru fiind o consecință a simplității transmiterii unor parametri pentru cererile realizate.
3.4. Proceduri stocate în arhitecturile client-server bazate pe tehnologie Oracle
SGBD-ul Oracle dispune de o serie vastă de instrumente care oferă dezvoltatorului posibilitatea de creare a unor aplicații care să prezinte un grad de complexitate ridicat. Din această perspectivă, crearea aplicațiilor de baze de date presupune construcția procedurilor și instrucțiunilor SQL care acționează asupra unei baze de date și, desigur, testarea sau depanarea acestora. SQL*Plus este un mediu complet, care permite realizarea interogărilor atât în limbajul standard SQL, cât și în limbajul procedural PL-SQL. Desigur, este mult mai simplu să utilizezi un instrument vizual pentru realizarea operațiunilor asupra bazei de date. Totuși, în confruntarea cu multitudinea de probleme de ordin practic, pot apărea limitări în utilizarea acestui gen de aplicații. În acest sens principalul atu al instrumentului SQL*Plus îl constituie flexibilitatea, practic prin intermediul acestei aplicații putându-se realiza gama completă de operațiuni asupra bazei de date: crearea tabelelor și utilizatorilor, gestiunea și realizarea de modificări asupra acestora, precum și operațiuni diverse asupra înregistrărilor.
3.4.1. Modalitatea de lucru cu SQL*Plus
SQL*Plus este o interfață în linia de comandă pentru limbajul SQL și, respectiv, pentru limbajul procedural PL-SQL. SQL*Plus poate fi utilizat atât ca instrument de gestionare a obiectelor bazei de date, ca aplicație de realizare a interogărilor, ca și pentru construcția de rapoarte. După ce a fost pornit motorul bazei de date, se deschide aplicația SQL*Plus, pentru conectare, în acest scop fiind necesară introducerea unui nume de utilizator și a unei parole prestabilite.
Prototipul unei sesiuni de lucru în SQL*Plus va arăta astfel:
sqlplus /nolog
SQL> connect scott/tiger
SQL> select * from tab;
SQL> disconect
SQL> exit
Comanda connect va primi ca argumente numele de utilizator și parola, deconectarea de la baza de date realizându-se prin intermediul comenzii disconnect.
SQL* Plus oferă în esență trei posibilități majore pentru lucrul cu baza de date:
Prima, constă în introducerea comenzilor în modul de comandă Pentru a identifica sfârșitul unei instrucțiuni SQL va fi utilizat caracterul punct și virgulă;
Cea de-a doua variantă de utilizare a acestui instrument constă în folosirea blocurilor de instrucțiuni SQL. Astfel, în loc să fie realizată editarea instrucțiune cu instrucțiune a comenzilor SQL în cadrul aplicației PL*Sql, se pot crea fișiere care să includă blocurile de instrucțiuni ce urmează a fi executate. Aceste fișiere sunt în format ASCII, deci pot fi facil editate prin intermediul unor utilitare accesorii din Windows. Comenzile SQL se vor executa în mod secvențial;
Ultima variantă de utilizare a acestui instrument constă în exploatarea blocurilor specifice în limbajul procedural PL-SQL descris mai jos.
3.4.2. Limbajul procedural PL/SQL
PL/SQL este un limbaj procedural bazat pe standardul SQL. Acest limbaj, de generația a III-a, prezintă performanțe bune permițând implementarea algoritmilor complecși de prelucrare a informațiilor din baza de date. Astfel PL/SQL permite construcția blocurilor anonime de cod, a procedurilor și funcțiilor stocate pe server. Având la origini limbajul PRO*C, PL/SQL el a evoluat permanent prin adăugarea de noi funcții în nu mai puțin de nouă versiuni ale mediului de baze de date Oracle. În același timp, între diferitele versiuni de PL/SQL a fost asigurată compatibilitatea, codul scris într-o versiune precedentă putând fi rulat fără probleme în versiunile ulterioare.
PL/SQL este o extensie la SQL, încorporând multe facilități ale limbajelor de programare din ultimii ani. El permite ca manipularea datelor si procedurile de interogare din SQL să fie incluse în blocuri structurate și proceduri, PL/SQL devenind astfel un puternic limbaj de procesare al tranzacțiilor. Limbajul este bazat pe blocuri de cod prezentând o structură care include trei secțiuni de bază:
Secțiunea declarațiilor prin intermediul căreia sunt definite atributele de intrare/ieșire ale blocului de cod PL/SQL, această operațiune realizându-se prin intermediul instrucțiunii Declare.
Secțiunea propriu-zisă de execuție a blocului de comenzi (inițializată prin intermediul clauzei Begin).
Secțiunea pentru declararea avertizărilor sau a codurilor de eroare este inițiată prin intermediul clauzei Exception.
Interpretorul pentru acest limbaj nu este case sensitive, dar utilizarea caracterelor majuscule pentru cuvintele rezervate poate crește lizibilitatea codului. Pentru a putea rula procedurile prezentate este necesară instalarea versiunii șase sau ulterioară a mediului de baze de date Oracle. Procedurile se vor testa prin intermediul aplicației SQL*Plus prezentată în paragraful anterior.
Dintre avantajele PL/SQL le menționez în continuare pe cele mai importante:
Structura de bloc – PL/SQL este un limbaj structurat, adică programele pot fi împărțite in blocuri logice, fiecare conținând resursele necesare. Variabilele pot fi declarate local, în cadrul blocului în care vor fi folosite, iar tratarea erorilor se poate face în blocul în care acestea apar.
Controlul execuției – Deciziile, buclele și salturile pot fi folosite pentru a se controla execuția programelor. Aceste facilități permit aplicațiilor ORACLE (cum ar fi SQL*Forms), să grupeze comenzi și să controleze execuția lor prin PL/SQL.
Portabilitatea – Deoarece PL/SQL derivă din ORACLE, programele pot fi portate pe toate mașinile ce suportă ORACLE si PL/SQL.
Integrarea – PL/SQL joacă un rol din ce in ce mai important în RDBMS și în aplicațiile ORACLE. Variabilele și tipurile de date din PL/SQL sunt compatibile cu cele din SQL. PL/SQL acoperă golul dintre nevoia de acces la tehnologia bazelor de date și nevoia de facilități pentru programarea procedurală.
Performanțele – Utilizarea PL/SQL ajută determină creșterea eficienței în utilizare a aplicațiilor.
3.4.3. Blocuri de comenzi, proceduri și funcții stocate în limbajul PL/SQL
Blocurile de comenzi PL/SQL (numite și anonime) constituie cea mai simplă formă de manifestare a limbajului PL/SQL, acestea ne fiind compilate și prezentând o viteză de rulare relativ redusă. De asemenea, blocurile nu sunt identificate printr-un nume și în consecință nu pot fi adresate din alte proceduri SQL. Pentru crearea lor se poate folosi orice editor de text (Notepad sau similar), rularea acestora realizându-se prin intermediul utilitarului SQL*Plus.
Blocul anonim nu include secțiuni de declarații și excepții, el ne având decât o linie în secțiunea executabilă prin intermediul căreia este afișat un mesaj. Blocurile anonime au la bază standardul SQL (instrucțiunile Select, Insert sau Update), în plus fiind introduse și elemente procedurale care permit realizarea unor secvențe de cod complexe.
Procedurile stocate reprezintă o colecție precompilată de instrucțiuni SQL salvate pe serverul de baze de date sub un anumit nume, fiind procesate unitar. Ele permit utilizatorului realizarea unor operațiuni complexe asupra bazei de date prin intermediul unui singur apel transmis de aplicația sursă. De asemenea, utilizatorul va avea posibilitatea de a folosi variabilele declarate, instrucțiunile condiționale și alte elemente puternice de programare. Spre deosebire de blocurile anonime de cod descrise până în prezent, procedurile stocate sunt identificate printr-un nume și, deci, pot fi apelate din alte proceduri. Precompilarea determină o reducere substanțială a timpului de rulare, iar memorarea în baza de date a acestora determină eficienta lor gestionare.
Astfel, asupra procedurilor stocate pot fi setate drepturi de acces, independent de cele care au fost acordate celorlalte elemente ale bazei de date (tabele, indecși, vizualizări). În plus, prin intermediul procedurilor stocate este posibilă “ruperea” nivelului aplicației de baze de date și a elementelor de interfață ale acesteia de nivelul propriu-zis al bazei de date. În acest mod, modificările ce vor afecta procedurile de manipulare a datelor se vor realiza direct la nivelul bazei de date, neafectându-se sursele propriu-zise ale aplicațiilor (aplicația nu va include decât instrucțiunile de execuție a procedurilor stocate).
O clasă specială de proceduri stocate este formată exclusiv din funcțiile prin intermediul cărora poate fi returnată o valoare. O funcție stocată prezintă în plus față de o procedură, o clauză specială Return, prin intermediul căreia se realizează această operațiune. Suplimentar, asemănător cu posibilitățile oferite de platforma MS SQL, se poate obține integrarea declanșatorilor (trigger-elor). Prin intermediul acestor elemente sunt posibile realizarea validărilor, verificarea integrității referențiale a unei baze de date și controlul fluxului logic al aplicației.
3.5. Administrarea bazelor de date client-server
În ultimii ani managementul bazelor de date client-server a căpătat o importanță primordială. Acest lucru a fost determinat de existența unui mare număr de utilizatori concurenți și a problemelor de securitate ce trebuie avute în vedere la exploatarea unor astfel de aplicații. În esență, un program pentru realizarea managementului unei baze de date client-server are menirea de a rezolva următoarele probleme:
Managementul accesărilor bazei de date, al drepturilor de acces și al utilizatorilor;
Posibilitatea creării și exploatării de scripturi care să permită automatizarea anumitor operațiuni de lucru cu baza de date;
Managementul bazelor de date (creare sau modificare de tabele, utilizatori);
Posibilitatea realizării backup-ului bazelor de date.
Un astfel de program presupune: o interfață comună prin intermediul căreia sunt apelate toate funcțiile sistemului și existența instrumentelor de configurare pentru toate obiectele incluse în bazele de date.
3.5.1. Mediul SQL Server
SQL Server este un sistem de baze de date relaționale client-server având ca suport fundamental în exploatarea bazelor de date limbajul SQL. În esență, arhitectura sistemului presupune o bază de date centrală aflată pe un server, care este accesată de mai mulți clienți simultan. Acești clienți se conectează ca utilizatori în cadrul rețelei locale sau ca utilizatori Internet (acest lucru presupune realizarea de aplicații care vor rula în browser-ul Web și vor fi interconectate cu baza de date prin intermediul unor scripturi ASP.NET). Accesul utilizatorilor din Internet presupune colaborarea între serverul de baze de date și serverul de Web (Microsoft Internet Information Services ar fi un exemplu).
Exploatarea unor baze de date centrale, în cadrul arhitecturii client-server, aduce trei avantaje esențiale:
Toate datele sunt stocate central pe server, lucru ce elimină problemele care apăreau în mediile distribuite, care presupuneau imposibilitatea asigurării permanente a unicității informațiilor din bazele de date.
Procedurile de securitate sunt realizate și stocate la nivel de server, acest lucru ducând la creșterea semnificativă a siguranței aplicațiilor.
Prin intermediul bazelor de date client-server traficul în rețea este optimizat, în acest fel nefiind furnizate clientului decât datele solicitate.
Această arhitectură aduce avantaje importante și în sensul programării aplicațiilor. În acest fel aplicațiile se realizează mult mai simplu, regulile și bazele de date fiind construite central. Este simplificat și modul de realizare a aplicațiilor client, care nu vor mai constitui decât o interfață prin intermediul căreia utilizatorii se vor conecta la server și vor interoga bazele de date stocate pe acesta.
3.5.2. Principalele elemente ale managementului centralizat în SQL Server
Entreprise Manager este un instrument care permite administrarea eficientă a bazelor de date SQL Server și a drepturilor de acces la aceasta. În partea stângă a ferestrei principale sunt prezentate, sub formă ierarhică, principalele clase de obiecte gestionate de interfață. La nivelul superior al ierarhiei se află serverul SQL (respectiv serverele), administrat prin intermediul consolei. Selectând unul din servere, se pot realiza, datorită ferestrei deschise în dreapta, o serie de operațiuni importante, cum ar fi: înregistrarea unui nou server care va fi gestionat prin intermediul acestui program, backup-ul bazelor de date, configurarea clienților, crearea login-urilor sau a unei noi baze de date. Interesant de subliniat este că pentru realizarea acestor operațiuni este oferită posibilitatea utilizării “vrăjitorilor”, care vor simplifica în mod radical munca de configurare. Dintre elementele cele mai importante disponibile în cadrul acestui instrument menționăm secțiunea Database, în care sunt stocate bazele de date exploatate de sistem, și opțiunea Security, care gestionează elementele de securitate ale bazei de date client-server.
Dintre celelalte foldere sunt de menționat Data Transformation, care realizează operațiuni de import-export sau de modificare a bazelor de date prin controalele COM, OLE DB și Active X Scripts, precum și folderul Management, care permite realizarea unor operațiuni suplimentare cum ar fi adăugarea unui dispozitiv de bandă magnetic pentru backup, crearea unui plan de mentenanță a bazei de date sau administrarea SQL Server logs (acest din urmă element prezintă cronologic principalele operațiuni care au fost realizate pe server). Ultima secțiune de menționat ar fi Support Services, prin care se pot gestiona serviciile complementare, cum ar fi serviciul SQL Mail, care permite integrarea serverului de baze de date cu o soluție de transmitere a poștei electronice. Această facilitate poate fi utilizată, în cadrul sistemelor informatice de gestiune, pentru transmiterea de înștiințări de plată clienților sau în alte situații în care este necesară transmiterea automată de informații prin intermediul unei baze de date.
Capitolul 4 – Integrarea suportului de baze de date în cadrul aplicațiilor de gestiune și al sistemelor de asistare a deciziilor
Modalitatea de realizare a conexiunii la bazele de date constituie primul pas în realizarea unor sisteme informatice de gestiune sau a celor de asistare a deciziilor, acest lucru fiind valabil atât pentru bazele de date distribuite cât și pentru cele client-server. Bazele de date sunt elementul central al oricărui sistem de natură economică, constituind modalitatea de stocare a informațiilor care fac obiectul respectivelor programe. Între sistemele informatice dedicate mediului economic și bazele de date există o legătură strânsă, intrinsecă, care permite asigurarea funcțiilor de bază ale acestor programe. În acest capitol vom expune amănunte legate de tehnologiile DAO (Data Access Object), ADO (Active X Data Objects) și ADO.Net. Acestea sunt interfețe de programare fundamentale dedicate construcției aplicațiilor care necesită suport pentru baze de date.
Active X Data Object și Universal Data Access constituie două tehnologii importante permit realizarea unor aplicații complexe, interconectabile în mediile client-server. Astfel, se pot integra aplicațiile realizate în medii eterogene, precum și realiza aplicații accesibile în browserul Web. De asemenea, va fi prezentată în amănunt colecția de obiecte ADO.NET.
4.1. Arhitectura tehnologiei Data Access Objects
Data Access Object (DAO) constituie o interfață de programare prin intermediul căreia se pot accesa și manipula bazele de date. Această tehnologie este strâns legată de limbajul SQL, stabilirea setului de înregistrări ce urmează a fi prelucrat în aplicație putându-se realiza prin instrucțiuni specifice acestui limbaj sau folosindu-se procedurile stocate pe server. La începuturile erei informatice, terminalele erau conectate la calculatoare puternice (mainframe-uri). Odată cu apariția la începutul anilor ‘80 a primului IBM personal computer, a avut loc o descentralizare a modului de gândire și organizare a informației în sistemele informatice. Calculatoarele personale nu mai erau simple terminale, ci constituindu-se în puternice sisteme de calcul înzestrate cu procesoare, memorie internă și hard-disk-uri. În cadrul acestei revoluții a părții hardware și software, problema conectării la diferite surse de date, precum și aceea a partajării informațiilor (în speță, a bazelor de date) a rămas și rămâne totuși în actualitate.
Tehnologia Data Access Objects (figura 4.1.) constituie o interfață de programare (API) care permite crearea de aplicații pentru managementul bazelor de date. Principala trăsătură a tehnologiei DAO o constituie independența față de sistemul de gestiune a bazelor de date pentru care este creată aplicația. Deci, în esență, aplicația va arăta la fel, fie că aceasta exploatează o bază de date Access, o bază de date SQL Server sau una Oracle.
Figura 4.1. Arhitectura tehnologiei DAO
Se poate folosi, desigur, și metoda intermediară, care constă în crearea unei intrări în ODBC Administrator, recurgând însă la tehnologia Jet pentru realizarea interacțiunii cu bazele de date (această tehnologie este utilizată în special atunci când nu este posibilă utilizarea ODBC Direct sau când se dorește realizarea unor conexiuni multiple la diverse surse de date).
În esență DAO se bazează pe tehnologia de programare obiectuală, fiind o suită de colecții de obiecte care permit accesarea și manipularea tuturor elementelor unei baze de date (în figura 4.1 este prezentată schema generală a acestei ierarhii de obiecte). În vârful ierarhiei DAO se află obiectul Workspace (figura 4.2.), care gestionează o sesiune de conectare și manipulare a bazelor de date. O sesiune încapsulată într-un obiect Workspaces presupune următoarele momente:
Momentul 1 – sau momentul de start, care constă în logarea la baza de date prin intermediul ODBC sau Jet.
Momentul 2 – care constă în setul de operațiuni care se realizează asupra bazei de date (interogări, actualizări, modificări ale structurii tabelelor sau indecșilor).
Momentul 3 – închiderea conexiunii cu baza de date (log off de la server sau baza de date distribuită).
Un obiect Workspace poate include legături la una sau mai multe baze de date incluse în obiecte de tip Database. Aceasta include la rândul ei o mulțime de alte obiecte și clase, dintre care le menționăm pe cele mai utilizate: obiecte de tip Recordset (care stochează seturile de înregistrări ce urmează a fi prelucrate); Relation (pentru stabilirea relațiilor între tabele); definiții de tabele Table Defs (prin intermediul cărora se pot manipula elementele constitutive ale tabelelor); obiecte Query defs (care pot manipula interogările asupra bazelor de date).
Figura 4.2. Schema generală a ierarhiilor de colecții și obiecte Data Access Objects.
4.1.1. Stabilirea setului de înregistrări
Continuând raționamentul, ulterior realizării conexiunii la baza de date prin intermediul ODBC sau Jet Engine trebuie creat setul de înregistrări ce va fi prelucrat de program. Pentru realizarea acestui lucru este necesară utilizarea unui obiect Recordset. Deschiderea setului de înregistrări se realizează prin intermediul metodei OpenRecordset a acestei clase de obiecte. Instrucțiunea generică de creare a setului de înregistrări este următoarea:
Set recordset = object.OpenRecordset (source, type, options)
Unde Recordset reprezintă variabila declarată ca obiect set de înregistrări. Source reprezintă o variabilă de tip string care poate conține fie numele tabelei din baza de date pentru care se face conexiunea, fie o instrucțiune SQL pentru stabilirea setului de înregistrări. Type reprezintă tipul de set de înregistrări care va fi generat de comanda OpenRecordset.
Principalele tipuri care pot fi generate:
DbOpenSnapShot – care realizează o copie statică a setului de înregistrări. Acest tip nu permite actualizarea datelor din bazele de date, fiind recomandată numai pentru realizarea de interogări și rapoarte.
DbOpenTable – va genera un set de înregistrări corespunzător unei tabele din baza de date. Permite adăugarea, modificarea sau ștergerea înregistrărilor din tabele.
DbOpenDynaSet – generează un set dinamic de înregistrări pe baza unei instrucțiuni SQL Select. Cu ajutorul acestui set pot fi realizate toate operațiunile de actualizare a datelor, el fiind cel mai utilizat datorită faptului că setul de înregistrări rezultat poate avea la bază o instrucțiune SQL.
Prin intermediul Options se pot adăuga o serie de opțiuni de creare a setului de înregistrări, din care le menționăm doar pe cele mai importante: dbAppendOnly, opțiune care nu permite utilizatorilor decât adăugarea de înregistrări, nepermițând modificarea sau ștergerea celor existente și dbReadOnly, ce setează imposibilitatea modificării setului de înregistrări. Sunt disponibile, de asemenea, și o suită de opțiuni pentru configurarea lucrului cu bazele de date partajate în rețea: dbSeeChanges care generează un mesaj de eroare atunci când doi utilizatori realizează concomitent modificări pe aceeași înregistrare; dbDenyWrite și dbDenyRead, prin intermediul cărora utilizatorii bazei de date sunt avertizați că au fost modificate sau adăugate, respectiv citite înregistrări în baza de date.
4.1.2. Dezavantaje ale tehnologiei DAO
Pe lângă multe oportunități, DAO prezintă și două inconveniente: primul constă în imposibilitatea de conectare la surse eterogene de informație (deci conectarea trebuie să privească nu numai baze de date relaționale ci și alte surse de informații cum ar fi pagini HTML, e-mail, video și, în general, alte surse de informație nerelaționale). Cel de-al doilea rezidă într-o mai redusă posibilitate de integrare în aplicațiile realizate pentru Internet. Având în vedere faptul că astăzi omniprezentul Web Browser este cel mai utilizat program din istoria informaticii, a fost necesară o schimbare de perspectivă în ceea ce privește modalitatea de realizare a conexiunilor la diverse surse de informații. În lumea acestui început de mileniu, aplicațiile care domină piața sunt în general strâns legate de Internet. În acest sens trebuie menționată dezvoltarea fără precedent a afacerilor online (e-buissiness), aceste aplicații fiind strâns legate, prin esența lor, de bazele de date,
Răspunsul la nevoile noii ere informatice dominată de Internet l-a constituit dezvoltarea tehnologiilor Active X Data Object și Universal Data Access, fapt pentru care vom prezenta elementele teoretice privind arhitectura acestor tehnologii. Suplimentar, pentru a asigura o portabilitate crescută a datelor, a fost creată tehnologia ADO.Net care va fi și ea prezentată în cadrul secțiunilor următoare ale acestui capitol.
4.2. Arhitectura Universal Data Access
Universal Data Access (UDA) poate fi definit ca un ansamblu de tehnologii care ușurează accesul la un număr mare de surse de informație. În acest sens se observă dezvoltarea aplicațiilor de baze de date și a întregului spectru al acestora pe două coordonate esențiale: prima coordonată constă în aplicații care exploatează bazele de date în rețelele locale (aplicații dezvoltate în mediile Visual Basic, Visual C, Visual Fox, Oracle Developer); ceea de a doua constă în aplicațiile dezvoltate pentru a fi rulate în Web Browser (în această categorie se încadrează programele dezvoltate în mediile Java, Visual Studio, precum și în diverse limbaje de scripting pe parte de server cum ar fi PHP și ASP.NET). Dezvoltarea exponențială a celei de-a doua coordonate de realizare a aplicațiilor a determinat dezvoltarea unor noi controale și tehnologii posibil de integrat în programe, care pot fi rulate în browser-ul Web.
Figura 4.3. Interacțiunea ADO și OLE DB în dezvoltarea aplicațiilor de baze de date.
Universal Data Access facilitează accesul la două mari categorii de surse de informații: prima o constituie sursele de date relaționale – SQL Data – (reprezentând sistemele Oracle, SQL Server sau orice alte surse de baze de date relaționale); cea de-a doua o constituie sursele nerelaționale – Non SQL DATA -, care includ diverse alte surse de informații (mail, video, text).
Legătura la sursele de informații se realizează prin două modalități: prima constă în utilizarea lui Open Database Conectivity (ODBC); cea de-a doua fiind tehnologia OLE DB, care ușurează accesul atât la sursele relaționale cât și la cele nerelaționale.
OLE DB este un set de obiecte al Component Object Model (COM) care se constituie într-o interfață prin intermediul căreia pot fi accesate într-un mod uniform diverse surse de date.
Tehnologia Active X este un eficient și robust cadru de dezvoltare a aplicațiilor pentru Internet. Ea are ca fundament Win32 Application Programming Interfaces (API), care constituie un set de proceduri ce facilitează dezvoltarea de aplicații prin reutilizarea de cod.
ActiveX Data Objects (ADO) constituie o consistentă interfață de programare (API) care are ca fundament tehnologia Active X și înlesnește realizarea unor aplicații complexe în mediile intranet și internet. ADO dă posibilitatea de a accesa și modifica o gamă extrem de vastă de surse de date, acestea putând fi de la simple fișiere text până la clustere formate dintr-o infinitate de baze de date eterogene. ADO este în esență o punte între aplicația realizată și componenta OLE DB (respectiv, sursa de date).
Asemănător cu Data Access Object, ADO se prezintă ca un set de colecții de obiecte care facilitează manipularea datelor și informațiilor existente în diverse forme.
ADO include următoarele șase clase principale de obiecte care facilitează dezvoltarea aplicațiilor:
Clasa Connection prin intermediul căreia se poate crea o conexiune la o sursă de date;
Clasa Command reprezintă orice comandă care poate fi procesată de sursa de date. O comandă este, în general, o instrucțiune SQL prin intermediul căreia se pot realiza selecții și actualizări în bazele de date. Această comandă poate fi executată prin intermediul metodei Execute a clasei Command sau se poate asocia unui obiect Recordset. Clasa Command este opțională, fiind prezentă numai la o parte din furnizorii OLE DB.
Clasa Parameter permite realizarea unor interogări parametrizabile, parametrii acestora putând fi introduși on-line în executarea lor.
Clasa Recordset reprezintă un set de înregistrări, stabilit în urma rulării instrucțiunii SQL Select.
Clasa Fields, prin intermediul căreia se pot stabili și modifica atributele câmpurilor existente în tabelele bazei de date.
Clasa Error, prin care se pot controla eventualele erori returnate de sursa de date. Este o clasă opțională, fiind prezentă în special la furnizorii OLE DB care returnează mesaje de eroare multiple la o singură comandă care interacționează cu baza de date.
Trebuie menționat că există și posibilitatea accesului indirect la sursa de date prin intermediul Internet Information Services (IIS). IIS este un sistem client/server (server WEB) care creează o cale eficientă pentru ca o aplicație locală (Client Application) să acceseze surse de date de pe un server în rețelele Intranet și Internet. Astfel, o pagină WEB include o aplicație scrisă în Vbscript sau ASP.NET care se conectează prin intermediul IIS la o sursă de date aflată pe server. IIS se conectează la baza de date, aplică anumite proceduri de prelucrare a datelor și le retransmite către client, unde sunt afișate în fereastra browserului Web. Pentru dezvoltarea unor asemenea aplicații, care realizează conexiuni prin intermediul severelor WEB, a fost creat un set adițional de obiecte Remote Data Service (figura 4.4.).
Figura 4.4. Dezvoltarea aplicațiilor pentru Internet prin intermediul Internet Information Server și al tehnologiilor ADO și Ole DB.
4.3. Modul de integrare a Active X Data Objects în aplicațiile realizate în Visual Basic
In cadrul Visual Basic .NET există posibilitatea includerii colecției de obiecte în acest mediu de dezvoltare. Ulterior mediul Visual Basic a fost îmbunătățit cu o gamă completă de noi controale care facilitează realizarea de aplicații (dintre acestea le menționăm pe cele mai importante: mediul vizual integrat Data Environment, Data Report, controalele Data Repeater și Data Control). Colecția de obiecte și suportul OLE DB sunt prezentate în toate versiunile Visual Basic. Pentru a le integra în aplicațiile realizate există două posibilități. Prima, cea indicată spre aplicare, constă în crearea unui proiect aplicație de baze de date (se alege template-ul Data Project), care include toate librăriile și controalele aferente acestui gen de aplicații. Cea de a doua constă în crearea unui proiect simplu (template-ul Standard EXE) și în adăugarea ulterior a librăriilor și controalelor pentru lucrul cu bazele de date (aceasta realizându-se prin intermediul meniului Project: opțiunile References – pentru includerea librăriilor DLL în proiect și Components – pentru includerea controalelor în proiect). Pentru realizarea aplicațiilor de baze de date pe baza componentelor este necesară realizarea următoarelor operațiuni:
A. – Inițializarea variabilelor și stabilirea conexiunii cu baza de date
În general vom inițializa într-o aplicație realizată pe baza trei obiecte: un obiect Connection, unul Command și unul Recordset. Un exemplu generic de inițializare a variabilelor va arăta astfel:
Dim conn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
Stabilirea conexiunii cu baza de date presupune stabilirea condițiilor pentru realizarea schimbului de date între server și aplicația client. Pentru realizarea acestei operațiuni se va folosi metoda Open a obiectului Connection, construindu-se un string de conectare care va include: Database Source Name (DSN din ODBC Administrator, numele bazei de date, un utilizator și o parolă validă).
B. – Realizarea interogărilor asupra bazei de date
Pentru realizarea unei interogări se inițializează proprietatea CommandText a obiectului Command. Proprietatea va fi creată de tip string, argumentul acesteia constituindu-l o instrucțiune SQL Select.
Mai pot fi stabilite și alte proprietăți aferente clasei Commands, dintre care menționăm: Commandtype, prin care putem stabili tipul comenzii (instrucțiune SQL sau procedură stocată pe server); CommandTimeout, prin care se setează intervalul de timp cât se așteaptă un răspuns la comanda dată, în cazul nerecepționării acestuia se va genera un mesaj de eroare (în intervalul predefinit de 30 de secunde).
Pentru aplicarea comenzii se utilizează metoda Open a obiectului recordset, care va primi următorii parametrii:
recordset.Open Source, ActiveConnection, CursorType, LockType
Parametrii semnifică:
Source – reprezintă comanda care se dorește să fie aplicată asupra bazei de date;
ActiveConnection – prin care se stabilește ca argument conexiunea pentru care va fi populată baza de date.
CursorType – prin intermediul acestui parametru se stabilește felul în care va fi inițializat obiectul Recordset (adOpenStatic – va genera un set static care va putea fi utilizat în realizarea rapoartelor; adOpenDynamic generează un set dinamic, modificările realizate în baza de date de alți utilizatori propagându-se instantaneu în acesta; adOpenKeyset creează un set de înregistrări care nu va fi actualizat cu modificările realizate de ceilalți utilizatori);
LockType – prin intermediul acestui parametru se pot stabili opțiuni suplimentare, cum ar fi: adLockReadOnly, care setează imposibilitatea de modificare a înregistrărilor; adLockPesimistic și adLockOptimistic, care stabilesc felul în care se transmit modificările realizate asupra înregistrărilor din obiectul recordset în baza de date centrală (înregistrare cu înregistrare pentru primul parametru, respectiv după executarea metodei Update pentru cel de-al doilea).
C. – Introducerea și actualizarea datelor
Asupra bazei de date se poate realiza întreaga gamă a operațiunilor specifice limbajului SQL. Astfel, adăugarea de înregistrări în baza de date prin intermediul operatorului SQL Insert se va realiza prin aplicarea metodei Execute asupra obiectului recordset:
rs.execute "INSERT INTO Clienti(<câmpuri>) VALUES (<valori>)"
4.4. Data Environment precum și alte instrumente de dezvoltare a aplicațiilor de baze de date
În cadrul versiunii 6 a instrumentului de dezvoltare Visual Basic (variantele Profesional și Entreprise) a fost inclus mediul Data Environment, care facilitează realizarea aplicațiilor de baze de date în acest mediu. Practic, prin intermediul acestui instrument se pot configura vizual clasele de obiecte Connection, Command și Recordset. De asemenea, la elementele incluse în Data Environment se pot adăuga proceduri care pot fi declanșate în cazul ivirii anumitor evenimente aleatoare. Toate informațiile privind conectarea la bazele de date se pot salva într-un fișier distinct, atașat proiectului Visual Basic, purtând extensia DSR.
În mediul Visual Basic sunt prezente și alte instrumente care facilitează realizarea aplicațiilor de baze de date. Astfel, prin intermediul Data View se pot realiza vizualizarea și modificarea informațiilor din bazele date direct din mediul de dezvoltare a aplicațiilor. Prin intermediul acestei interfețe vor putea fi accesate tabelele, interogările și diagramele bazelor de date, iar în cazul bazelor de date client-server pot fi folosite și procedurile stocate. În plus, prin intermediul meniului Query, se pot aplica rapid instrucțiunile SQL asupra informațiilor din bazele de date.
Componenta Data Report a înlocuit editorul de rapoarte Crystal Report existent în versiunile precedente. Principalul avantaj al noului editor de rapoarte îl constituie posibilitatea unei mai puternice integrări în aplicații și a unui mai bun control al acestora (Crystal Report a fost dezvoltat de o terță firmă producătoare de software și presupunea o mai redusă integrare în program).
Sunt prezente și controalele legate de bazele de date care ușurează dezvoltarea rapidă a aplicațiilor. În acest sens, pe lângă controalele care suportau tehnologia DAO (în speță, controlul DATA), au fost adăugate și controalele compatibile cu ADO. În această categorie se încadrează: controlul ADO, care înlesnește accesul la bazele de date, el fiind o alternativă la utilizarea Data Environment (în plus, Data Environment oferă posibilitatea gestionării mai multor conexiuni la bazele de date); controalele Data Grid, Data list și Data Combo Box, care înlesnesc design-ul rapid al formelor și dezvoltarea eficientă a aplicațiilor de baze de date.
Suplimentar, tehnologia permite elaborarea aplicațiilor cu suport de baze de date destinate Web-ului. În acest sens, Active Server Page (ASP) constituie un limbaj de scripting pe parte de server capabil să exploateze setul de obiecte . Prin intermediul ASP se pot crea pagini Web dinamice sau se pot dezvolta puternice aplicații pentru Internet. Fișierele ASP conțin tag-uri HTML, text și comenzi script, interpretarea acestora realizându-se de către serverul de Web. ASP a fost implementat în Microsoft Internet Information Services începând cu versiunea 3.0. Paginile ASP pot accesa un control Active X, prin intermediul căruia se pot realiza conexiuni la bazele de date și o paletă vastă de alte operațiuni facilitate de această tehnologie. Pentru accesarea bazelor de date în paginile Web vor fi create inițial un obiect Connection și unul Recordset, după care va fi generat un set de înregistrări pe baza instrucțiunii SQL Select. Pentru crearea obiectelor poate fi utilizată metoda CreateObject a colecției de obiecte Server. Informația este transmisă în browserul Web prin intermediul colecției de obiecte Response și al metodei Write. Prin intermediul unei instrucțiuni For se poate afișa antetul cu denumirile câmpurilor prezente în pagina Web, iar prin instrucțiunea Do until este parcurs setul de înregistrări al obiectului Recordset și afișarea în browser.
4.5. Tehnologia ADO.Net
Tehnologia .NET este un nou pas în procesul de dezvoltare a aplicațiilor, aducând importante schimbări în ceea ce privește modalitatea de accesare a bazelor de date. Dezvoltată pentru a asigura o portabilitate sporită a informațiilor, tehnologia .Net permite folosirea informațiilor din bazele de date atât prin intermediul computerelor, cât și prin intermediul dispozitivelor portabile (telefoane mobile, dispozitive hand held). Pentru deplina înțelegere a fenomenului, vom descrie o serie de elemente legate de această tehnologie privind integrarea ADO.Net în aplicațiile de baze de date realizate.
4.5.1. Conceptul ADO.Net
ADO.Net este un set de biblioteci inclus în Microsoft .Net Framework, care are rolul de a ajuta la comunicarea cu diferite baze de date. Aceste biblioteci includ clase pentru conectarea la o sursă de date, executarea unor interogări și procesarea rezultatelor.
DAO a fost creat cu scopul de a asigura comunicarea cu baze de date locale. A apărut apoi necesitatea comunicării cu servere de date precum Microsoft SQL Server sau Oracle. ODBCDirect s-a născut din necesitatea unui acces rapid și ușor la baze de date (o combinație între puterea lui RDO și ușurința în folosire a lui DAO). ADO reprezintă un model de acces la baze de date ce poate fi folosit și din scripturi, el putând fi integrat în aplicațiile Web. Scripturile rulează pe server, ceea ce permite utilizarea lui într-o serie foarte largă de aplicații cu implicații în Internet.
Pentru o bună perioadă de timp, a reprezentat pentru programatori o soluție ideală. Ulterior, lipsa unor facilități a condus la crearea unei noi tehnologii mai performante. Astfel, utilizarea datelor în format XML a condus la necesitatea unei metode de acces la acest tip de informație. Deși ultimele sale versiuni au introdus suport și pentru acest tip de date, nu a fost construit pentru a accesa fișiere XML. nu permite separarea schemei față de datele propriu-zise. Deși permite folosirea unui Recordset în mai multe nivele ale unei aplicații; el nu permite combinarea conținutului mai multor Recordset-uri într-un singur obiect, care apoi să circule între acele nivele ale aplicației. Un alt element important este modul în care se pot face modificări într-o bază de date. Din ce în ce mai mulți administratori de baze de date permit modificarea datelor numai prin proceduri stocate, însă recordsetul din nu a fost conceput ca să folosească aceste proceduri pentru a efectua modificările. Aceste necesități, precum și altele, au condus la crearea unei noi generații de obiecte folosite pentru accesul la baze de date .Net. Ca și predecesorii săi, ADO a fost creat într-un mediu COM de dezvoltare. Odată cu apariția unui nou limbaj și a unui nou framework .Net, Microsoft a adăugat și un model nou de acces la baze de date. Sintetizând, ADO.Net aduce următoarele avantaje majore:
Suport pentru XML;
Acces deconectat la sursele de date;
Control și flexibilitate crescută în realizarea modificărilor la sursele de date.
ADO.Net sprijină programatorii în construirea aplicațiilor multi-strat pentru Intranet și Internet. Aceste clase sunt de două tipuri: pentru acces în mod conectat și deconectat. Obiectele conectate comunică direct cu bazele de date, administrează conexiunea și tranzacțiile cu acestea și, de asemenea, obțin datele și efectuează modificările. Obiectele ADO.NET permit programatorului să lucreze neconectat la baza de date, aceasta fiind una din marile îmbunătățiri ale acestui model de utilizare a bazelor de date. Obiectul DataSet din ADO.Net este comparabil ca funcționalitate cu RecordSet-ul din ADO. Diferența constă în faptul ca DataSet-ul nu comunică în mod direct cu baza de date. Pentru a umple un Dataset, acesta este trimis ca referință la metoda Fill a unui obiect conectat – DataAdapter-ul. În mod asemănător, pentru a efectua modificările stocate într-un DataSet, acesta este preluat de metoda Update .
4.5.2. Elementele .Net Data Providers
ADO.Net Data Provider (figura 4.5.) conține biblioteci de clase utilizate în comunicarea cu un tip particular de baze de date. Framework-ul .Net a conținut inițial doi provideri: SQL Client .Net și OLE DB .Net, iar ulterior i s-au mai adăugat încă doi (ODBC .Net și Oracle .Net). Dacă SQL Client-ul este dedicat bazelor de date SQL Server, OLE Db este folosit pentru accesul la diferite baze de date prin Data Provider. .NET Data Provider implementează un set de clase de baza: Connection, Command, DataReader, Transaction, DataTable sau DataSet. Numele lor diferă de la un provider la altul (Connection: SqlConnection și OleDbConnection). Indiferent de tipul de Data Provider, acesta implementează aceleași funcții de bază precizate în interfețe, iar fiecare .Net Data Provider are propriul său namespace. Cei doi Data Provideri incluși în framework sunt subset-uri ale namespace-ului System.data: (System.Data.SqlClient și System.Data.OleDb).
Figura 4.5. Arhitectura Providerilor ADO.NET.
Deoarece toți Data Providerii implementează aceleasi interfețe, codul folosit într-o aplicație nu diferă de la un provider la altul, mici neplăceri apărând la instanțierea obiectelor.
4.5.3. Obiecte conectate
ADO.Net conține clase utilizate în comunicarea directă cu o sursă de date, iar obiectul Connection reprezintă conexiunea la o sursă de date. Se pot preciza tipul, locația și o serie de atribute specifice. Acest obiect este folosit la conectarea și deconectarea de la o sursă de date. Obiectul Connection reprezintă o “conductă” prin care alte obiecte, precum DataAdapter-ul sau Command-ul, comunică cu baza de date. Obiectul Command poate fi o interogare către o bază de date, un apel către o procedură stocată ori o cerere directă către înregistrările unui tabel.
Bazele de date suporta multe tipuri de interogări. Unele obțin date dintr-un tabel sau din mai multe tabele sau vederi, altele modifica înregistrări sau structura bazei de date. Obiectul Command poate fi folosit pentru orice tip de interogare, tabel sau procedură stocată.
Pentru a utiliza un astfel de obiect se setează proprietatea Connection către un obiect de acest tip și se specifică textul unei interogări, sau numele unui tabel, sau procedura stocată în proprietatea CommandText. Rezultatul se poate obține prin mai multe metode. Astfel, dacă interogarea nu trebuie să returneze înregistrări atunci se poate apela la ExecuteNonQuery. Metoda ExecuteReader poate fi utilizată dacă se dorește examinarea înregistrărilor ce sunt returnate de interogarea introdusă. O altă metodă, ExecuteXmlReader, are ca scop tratarea rezultatelor de tip XML obținute în urma execuției unei interogări ce returnează date în formatul amintit. Obiectul DataReader este folosit în obținerea și examinarea unor înregistrări într-un timp cât mai scurt. Singurul mod în care poate fi folosit acest obiect este examinarea înregistrărilor una câte una. O dată cu poziționarea pe o înregistrare superioară, înregistrarea inferioara este anulată. DataReader-ul nu poate fi folosit pentru efectuarea unor modificări.
Datorită constrângerilor impuse, DataReader-ul este însă foarte eficient și în cazul în care se dorește o examinare cât mai rapidă a unor înregistrări. Uneori devine necesară gruparea unui set de modificări într-o bază de date și tratarea lor ca o unitate de lucru. În programarea bazelor de date aceasta unitate se numește tranzacție. Obiectul Connection conține metoda BeginTransaction, metodă care creează un obiect Transaction. Acest obiect este folosit pentru a se face schimbările sau, din contră, pentru a le anula. Obiectul DataAdapter reprezintă un concept nou în tehnologiile legate de baze de date. DataAdapter-ul are comportamentul unei punți între baza de date și obiectele deconectate. Metoda Fill a unui obiect DataAdapter propune un mecanism eficient pentru obținerea și introducerea înregistrărilor dintr-o tabelă într-un obiect de tip DataTable dintr-un DataSet, aceste obiecte fiind folosite în lucrul deconectat.
Obiectul DataAdapter expune o serie de proprietăți care nu sunt altceva decât obiecte Command. De exemplu, proprietatea SelectCommand conține un obiect Command ce reprezintă interogarea folosită la popularea DataTable-ului. Celelalte proprietăți (InsertCommand, UpdateCommand, DeleteCommand) sunt folosite la inserarea, modificarea și ștergerea unor înregistrări noi. Avantajul folosirii unor obiecte diferite îl constituie flexibilitatea în modificarea datelor. Astfel, pentru fiecare obiect Command se pot folosi proceduri stocate definite pe server. De asemenea, un alt rol pe care îl joacă DataAdapter-ul constă în realizarea modificărilor reținute de un DataSet în sursa de date.
4.5.4. Obiecte deconectate
Obiectele deconectate permit interogarea unei baze de date și obținerea unor înregistrări pentru examinare în mod read-only și forward-only. În momentul în care un DataTable a fost populat, conexiunea la baza de date poate fi închisă și, folosind DataTable-ul, se poate lucra în continuare cu înregistrările obținute. Obiectul DataTable ne permite examinarea datelor folosind colecții de înregistrări și coloane. Rezultatul unei interogări este stocat într-un DataTable cu ajutorul unui DataAdapter (metoda Fill). DataTable-ul fiind populat nu se va mai crea trafic în rețea între aplicația .Net și server-ul de date. Toate operațiunile se salvează în DataTable și, la sfârșit, folosindu-se din nou DataAdapter-ul, modificările pot fi efectuate și asupra sursei de date. Clasa DataTable conține și alte obiecte alternative în programarea bazelor de date, în acest sens fiind accesibile controalele .NET deconectate cum ar fi DataColumn, DataRow și Constraint. Fiecare obiect DataTable conține o colecție Columns, ce va include la rândul ei câte un obiect pentru fiecare coloana dintr-un tabel. Această colecție nu conține date propriu-zise ci informații despre structura tabelului. Astfel, proprietatea Type conține informații referitoare la tipul de date existent în acea coloana, iar colecția Rows conține înregistrările dintr-un tabel.
Această colecție include câte un obiect pentru fiecare înregistrare, iar obiectul DataSet nu este altceva decât un container pentru obiecte DataTable. Scopul pentru care a fost creat .Net este acela de a ușura crearea aplicațiilor multi-strat. Astfel, la un moment dat devine importantă transferarea datelor din mai multe tabele de la un strat la altul, acest lucru putându-se realiza foarte ușor folosind un DataSet.
4.6. XML și Microsoft SQL Server
În anii ’90 principalul trend în dezvoltarea aplicațiilor îl constituia oferirea de suport și accesibilitate pentru calculatoarele conectate la Internet la o paletă cât mai largă de resurse informaționale (baze de date sau de altă natură) și aplicații. Mărturie a acestui lucru stau multitudinea de limbaje și tehnologii care permit dezvoltarea facilă a aplicațiilor de exploatare a bazelor de date prin intermediul unui simplu browser Web. În acest sens, limbajele de scripting rulate pe parte de server (ASP precum și urmașul ASP.Net, apoi PHP sau JSP), sunt astăzi tehnologii deja mature, care oferă o posibilitate de dezvoltare a unor aplicații complexe destinate Web-ului.
Cu toată existența acestor tehnologii, în ultimul timp s-au produs schimbări esențiale în ceea ce privește necesitățile informaționale sau echipamentele care sunt folosite de cei mai diverși utilizatori. Astfel, în prezent sunt conectate la Internet nu numai calculatoare, ci și o multitudine de alte echipamente cum ar fi telefoane mobile sau dispozitive de tip hand-held. Având în vedere aceste necesități, crearea unui limbaj universal, care să fie înțeles de toate aceste echipamente deosebit de diverse, a constituit o cerință imperioasă. XML s-a dovedit a fi răspunsul la aceste necesități, constituind o nouă etapă – superioară din toate punctele de vedere – în evoluția erei informaționale și facilitând schimbul datelor între echipamente dintre cele mai diverse. XML a apărut și ca o consecință a limitărilor limbajului HTML (limbajul paginilor Web), acesta fiind practic incapabil să ofere flexibilitatea necesară pentru folosirea datelor în alte aplicații.
XML (eXtended Markup Language) este centrul mai multor tehnologii noi, constituind actualmente limbajul cel mai folosit. XML constituie modalitatea cea mai simplă și cea mai eficientă prin intermediul căreia datele pot fi transferate folosind Internetul.
Toate versiunile sistemelor de gestiune a bazelor de date client-server consacrate (Oracle, MS SQL Server sau IBM DB2) au integrat suport pentru tehnologia XML, utilizatorii având astfel posibilitatea ca, prin intermediul unor parametrii suplimentari la instrucțiunile SQL, să realizeze foarte simplu aceste operațiuni.
Având în vedere aceste considerente, vom expune facilitățile oferite de mediul Microsoft SQL Server pentru tehnologia XML. Elementele teoretice dedicate acestui subiect le vom îmbina cu exemple practice. În acest sens, va fi înfățișat modul de integrare a produsului SQL Server cu serverul de Web Internet Information Server (IIS), explicând în același timp noile opțiuni specifice limbajului SQL capabile să ofere suport pentru XML.
4.6.1. Elemente definitorii privind XML
XML sau eXtended Markup Language constituie baza tuturor elementelor care sunt rațiunea tehnologiei Web Services. Având în vedere independența de platformă, XML constituie motorul care face posibil transferul datelor prin intermediul Internetului, constituind totodată fundamentul serviciilor Web.
XML este înrudit cu limbajul HTML (HyperText Markup Language). Între cele două limbaje există o serie de asemănări, dar și câteva deosebiri care nu pot fi în nici un caz neglijate. În primul rând trebuie să menționăm că ambele au o sorginte comună, reprezentată de SGML (Standard Generalized Markup Language). Acesta este un limbaj general, care, prin intermediul unor mecanisme asemănătoare cu cele din gramatica clasică, oferă utilizatorilor posibilitatea de a-și structura documentele și datele în format electronic.
Deci, HTML folosește un set de etichete (tag-uri) cu ajutorul cărora este definit modul în care vor fi afișate informațiile în browser-ul Web utilizat. Setul de etichete particular limbajului HTML este limitat și neparticularizabil, fiind generat prin intermediul tehnologiei SGML. În aceste condiții nu există posibilitatea de a vă particulariza după preferințe și necesități setul de etichete disponibil, această lipsă de flexibilitate constituind în unele cazuri o constrângere importantă. Astfel, în cazul aplicațiilor care exploatează bazele de date, folosirea limbajului HTML este improprie pentru transmiterea datelor, ceea ce nu constituie un impediment major.
Spre deosebire de HTML, limbajul XML oferă utilizatorului posibilitatea de a construi propriul său set de etichete care urmează a fi utilizat în formatarea respectivului document. În acest fel există o flexibilitate deosebită, acest element fiind necesar în definirea documentelor electronice specializate.
Figura 4.6. – XML și serviciile Web constituie baza comunicării pentru o paletă consistentă de echipamente hardware.
4.6.2. Structura fișierelor XML
Asemănător cu fișierele în format HTML, pentru XML este folosit formatul text în vederea stocării informației, în acest mod asigurându-se portabilitatea datelor pe orice platformă sau dispozitiv. În esență, elementele implicate în tehnologia XML sunt următoarele:
Fișierul propriu-zis XML, care include setul de etichete și informațiile propriu-zise, care sunt transmise prin intermediul acestuia.
Declarația regulilor de validare și a tipurilor de date incluse în document realizate prin intermediul limbajului DTD (Data Type Declaration). Prin intermediul limbajului DTD va fi definit setul de etichete utilizat în marcarea documentului, precum și, în situația în care acestea sunt necesare, regulile de validare a datelor incluse în document. DTD are rolul de a valida conținutul și structura fișierului XML, utilizarea acestei secțiuni nefiind obligatorie în cazul acestui format. Spre deosebire de acesta, în cazul documentelor SGML (DTD a fost preluat de XML de la această tehnologie) acest element este obligatoriu. Actualmente există și o serie de DTD-uri dedicate unor domenii specializate; dintre acestea menționăm: HL7 element specific domeniului sănătății, sau MathML, pentru definirea documentelor care includ ecuații matematice. Astfel, folosind elemente de tip DTD precreate, vă puteți organiza informația în domenii specifice mult mai simplu. În ultimi ani, pentru descrierea datelor incluse în fișierele XML a fost propusă tehnologia XML Schemas, această tehnologie constituind o evoluție în timp a clasicului limbaj de descriere a datelor DTD.
Dacă se dorește particularizarea modului în care vor fi afișate informațiile din fișierul XML în browser, va fi necesar să utilizați foile de stil XSL. Foile de stil au un rol similar cu al declarațiilor de formatare din fișierele CSS (Cascading Style Sheet). În acest mod, vom putea stabili o structură tabelară de afișare a datelor, culorile și fonturile de formatare a informației, precum și alte elemente de formatare a datelor incluse în fișierul XML.
4.6.3. Legătura între XML și bazele de date
XML constituie modalitatea cea mai simplă și, totodată, cea mai eficientă prin intermediul căreia datele pot fi transferate prin intermediul Internetului. În trecut, atunci când se ivea necesitatea transferului unor date între diverse platforme se foloseau simple fișiere text, în care datele erau separate fie prin virgulă, fie prin alte caractere speciale. O dată cu apariția limbajului XML, această modalitate de transfer al datelor devine caducă. Raportat la celelalte mijloace de transfer al datelor XML prezintă avantajul simplității, structurării eficiente a informației, precum și al portabilității informației pe orice platformă sau dispozitiv.
Pentru operarea și transferul informațiilor de baze de date prin intermediul limbajului XML trebuie realizate următoarele operațiuni succesive:
Utilizatorul adresează o cerere către serverul de Web sau cel de aplicații, solicitând – de exemplu – cotațiile bursiere pentru acțiunile ce dorește a le cumpăra sau vinde.
Serverul de Web transmite cererea către serverul de baze de date sub forma unei interogări SQL, acesta returnând setul de înregistrări specificat.
Datele transmise de serverul de baze de date sunt ambalate de soluții specializate și livrate în format XML către client prin intermediul serverului de Web.
Datele sunt preluate pe calculatorul personal al utilizatorului care a realizat cererea și transferate în baza de date locală.
Acest scenariu constituie un exemplu simplu de interoperabilitate și interdependență folosind Internet-ul și tehnologia XML. Legat de acest scenariu, este necesar să precizăm că pașii 2 și 3 tind să fie realizați într-o singură etapă. În acest sens, cele mai multe din sistemele de gestiune a bazelor de date au încorporate facilități de export direct al datelor în format XML, fără a mai fi necesar să fie utilizate aplicații accesorii.
4.6.4. Folosirea suportului XML pentru SQL Server
Pentru a folosi suportul XML, în cazul acestui sistem de gestiune a bazelor de date, este necesară instalarea versiunii 2000 a SQL Server. La instalarea serverului de baze de date este obligatorie selectarea componentei SQL XML Support in IIS, acest element oferind posibilitatea de interoperabilitate a bazei de date cu serverul de Web Internet Information Services (IIS).
De asemenea, mai este solicitată prezența serverului de Web IIS, acesta oferindu-vă posibilitatea de a realiza interogările asupra bazei de date și obținerea rezultatelor acestora prin intermediul unui simplu browser de Web.
Configurarea suportului pentru XML în cazul SQL Server presupune următoarele operațiuni:
A. Prin aplicația SQL XML Support in IIS se selectează opțiunea New – Virtual Directory. În urma acestei operațiuni va fi accesibil un vrăjitor care va facilita stabilirea interacțiunii între serverul de baze de date și cel de Web.
B. Crearea directorului virtual, stabilind numele acestuia (care va fi folosit în componenta URL pentru selecția paginilor Web) și a directorului fizic în care vor fi stocate paginile Web sau alte elemente specifice. Presupunând că directorul virtual a fost numit XML, prin intermediul browserului se pot accesa paginile Web sau interogările SQL bazate pe tehnologia XML, folosindu-se următoarea adresă: http://nume_server_web/XML. De asemenea, în locul numelui serverului de Web am posibilitatea de a folosi adresa IP, corespondentă acestuia. În situația în care aceste interogări sunt testate local, pe calculatorul personal, este necesară introducerea următoarelor adrese URL: http://localhost/XML și http://127.0.0.1/XML.
C. Prin intermediul secțiunii Security, se introduce un nume de utilizator și o parolă validă pentru accesarea SQL Server și a bazei de date pe care dorim să o exploatăm prin intermediul tehnologiei XML. În plus, în situația în care am stabilit modul mixt de autentificare, putem accesa baza de date atât printr-un cont de utilizator SQL Server, cât și folosind un cont de utilizator standard al sistemului de operare Windows.
D. Secțiunea Data Source permite stabilirea serverului SQL care să fie accesat și baza de date pe care o utilizăm. În situația în care veți accesa serverul în cadrul rețelei locale, va fi necesar să specificați adresa IP corespunzătoare, iar dacă intenționați să testați aceste setări local, veți specifica pentru câmpul SQL Server identificatorul (local).
E. Prin intermediul Settings se setează modul în care va fi realizată, prin intermediul tehnologiei XML, interacțiunea dintre serverul de baze de date și serverul de Web. În acest sens, se pot stabili două importante opțiuni:
Allow URL Queries – prin această opțiune se vor putea realiza interogări SQL-XML direct prin introducerea interogării SQL drept parametru suplimentar la adresa URL.
Allow Template Query – prin intermediul acestei opțiuni se vor putea realiza interogările folosindu-se o serie de șabloane XML predefinite.
De asemenea, mai sunt accesibile opțiuni de configurare care permit setarea directorilor în care vor fi stocate șabloanele și schemele de configurare ale fișierelor XSL.
4.6.5. Interacțiunea dintre SQL și XML
Posibilitatea de interogare pe baza vechilor instrucțiuni SQL a fost realizată prin adăugarea unei serii de parametri suplimentari care permit stabilirea modalităților în care se va realiza exportul înregistrărilor din baza de date în format XML. În acest sens, la înregistrarea SQL standard am adăugat clauza FOR XML AUTO. Astfel, presupunând că dorim să interogăm datele dintr-o tabelă Employees, vom realiza următoarea interogare:
SELECT * FROM <nume tabelă> FOR XML AUTO
În locul parametrului AUTO, există posibilitatea de a folosi opțiunea Raw – aceasta oferind posibilitatea de a folosi eticheta row pentru identificarea fiecărei înregistrări din baza de date exportată în format XML.
În plus, SQL Server mai facilitează și posibilitatea de a importa înregistrările disponibile într-un fișier XML în baza de date. În acest sens, pentru realizarea acestei operațiuni este oferită funcția OpenXML, care poate fi utilizată ca parametru al comenzii SQL Insert.
4.6.6. Modul de realizare a interogărilor SQL-XML
Configurând toate opțiunile destinate interoperabilității dintre serverul IIS și MS Sql server, se poate trece la realizarea efectivă a interogărilor SQL care returnează înregistrările din baza de date în format XML. În acest sens, există două modalități fundamentale pentru realizarea acestor operațiuni:
a. Realizarea interogărilor prin adresare directă. În situația în care am activat opțiunea Allow URL Queries, există posibilitatea de a realiza interogarea prin introducerea instrucțiunii SQL direct ca parametru al adresei de accesare a serverului Web. Pentru realizarea acestei operațiuni este necesară deschiderea browserului Web și introducerea următoarei adrese:
http://localhost/XML?sql=SELECT+*+FROM+<nume_tabelă>+FOR+XML+auto&root=root
După cum se poate vedea, prima parte a adresei identifică serverul de Web și directorul virtual XML, pe care l-am creat anterior folosind utilitarul XML Support in IIS. Instrucțiunea de interogare bazată pe SQL este consemnată prin utilizarea parametrului ?sql, iar cuvintele cheie ale interogării au fost separate folosindu-se caracterul “+”.
La interogare a fost adăugată secțiunea &root=root, aceasta consemnând elementul rădăcină al documentului XML. În acest sens, eticheta rădăcină <root> are o funcție asemănătoare cu a etichetei <HTML> specifică limbajului HTML. Tot în mod similar, fișierul XML va fi încheiat prin folosirea etichetei </root>.
b. Folosirea șabloanelor de interogare. Realizarea interogărilor prin introducerea instrucțiunilor SQL ca parametru al unei adrese URL este mai greu de realizat, fiind necesară introducerea instrucțiunilor SQL direct prin browser. Pentru a înlătura acest neajuns, există posibilitatea de a utiliza șabloane de interogare. În acest sens, pentru introducerea instrucțiunii SQL într-un fișier XML, se poate folosi eticheta predefinită <sql:query>. Iată cum arată un fișier XML în care a fost introdusă o instrucțiune SQL de interogare a unui tabel din baza de date:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:query>
SELECT *
FROM <nume_tabelă>
FOR XML AUTO
</sql:query>
</ROOT>
Pentru rularea interogării SQL în browserul Web, am rulat următoarea adresă URL:
http://localhost/XML/interogare.xml
În situația în care aceste interogări SQL sunt rulate în browser, va fi obținut ca rezultat afișat fișierul XML neformatat. Pentru situațiile în care se dorește particularizarea modului în care vor fi afișate informațiile din fișierul XML în browser, este necesară utilizarea foilor de stil XSL. Foile de stil au un rol similar cu al declarațiilor de formatare din fișierele CSS (Cascading Style Sheet). În acest mod, vor fi stabilite o structură tabelară de afișare a datelor, culorile și fonturile de formatare a informației, precum și alte elemente de formatare a datelor incluse în fișierul XML.
4.6.7. Rularea procedurilor stocate
Procedurile stocate reprezintă o colecție precompilată de instrucțiuni SQL salvate pe serverul de baze de date sub un nume și apoi procesate unitar. Ele permit utilizatorului să realizeze operațiuni complexe asupra bazei de date prin intermediul unui singur apel transmis de aplicația sursă. De asemenea, utilizatorul are posibilitatea de a folosi variabilele declarate, instrucțiunile condiționale și alte elemente puternice de programare. Procedurile stocate sunt o componentă omniprezentă în cazul sistemelor de baze de date relaționale bazate pe tehnologia client/server (MS SQL Server sau Oracle). În cazul procedurilor stocate, pentru bazele de date MS Sql Server este utilizat limbajul Transact-SQL.
Acest limbaj constituie modalitatea standard de comunicare între aplicațiile realizate și serverul de baze de date. Transact-SQL este un limbaj bazat pe Structured Query Language (SQL), standardul ANSI pentru limbajele de interogare a bazelor de date. El permite crearea tabelelor, stabilește drepturile de acces la diverse elemente ale acesteia și, respectiv, inserarea, modificarea sau ștergerea înregistrărilor din baza de date. În cazul procedurilor stocate, Transact-SQL prezintă un set suplimentar de instrucțiuni, fapt ce determină transformarea acestuia dintr-un simplu limbaj de interogare a bazelor de date într-un limbaj de programare în adevăratul sens al cuvântului.
Folosind tehnologia XML, există posibilitatea de a rula foarte simplu procedurile stocate pe server prin intermediul unui simplu browser de Web. Pentru realizarea acestei operațiuni este necesară folosirea directivei Execute ca parametru de rulare la adresa URL care accesează serverul de Web. Iată cum arată o comandă generică pentru execuția unei proceduri stocate:
http://localhost/XML/sql=EXECUTE+nume_procedura_stocata+parametrii_exutie
Integrarea suportului pentru XML în SQL Server 2000 permite transferul eficient al datelor între diverse sisteme informatice. În cazul aplicațiilor economice, prin posibilitățile oferite, tehnologia XML asigură un plus de interoperabilitate, precum și posibilități de integrare cu diverse soluții utilizate.
4.7. Modelarea bazelor de date prin instrumente CASE
Modelarea și proiectarea bazelor de date este o operațiune deosebit de importantă, constituind o condiție sine qua non pentru realizarea unei eficiente implementări a sistemelor informatice. Astfel, în situația în care avem de proiectat sisteme informatice integrate care prezintă o complexitate deosebit de mare, realizarea eficientă a acestui demers pretinde utilizarea unor instrumente care presupun proiectarea asistată de calculator. Astfel, atunci când se proiectează baza de date a unui sistem ERP (Enterprise Resource Planning), acest lucru presupune construirea mai multor sute de entități (tabele) și a mii de câmpuri. De asemenea, acest proces necesită construcția relațiilor între diverse entități, definirea declanșatorilor și a regulilor de integritate referențială a bazei de date.
Fără suportul unui instrument CASE, aceste operațiuni s-ar dovedi a fi extrem de cronofage, motiv pentru care vom expune o serie de elemente legate de filozofia instrumentelor CASE, a modelelor conceptuale și fizice ale bazelor de date. Pentru ilustrarea acestor elemente teoretice vom prezenta două dintre instrumentele importante existente pe piață dedicate special acestui gen de activități: Power Designer și Visio.
4.7.1. Conceptul și funcțiile instrumentelor CASE
CASE (Copmputer Aided Software Engineering) presupune o modalitate de proiectare de software asistată de calculator. Termenul este utilizat pentru a desemna utilizarea calculatorului în toate etapele elaborării unui program de calculator sau a unei baze de date, începând cu etapa de planificare și modelare, și terminând cu cele de codificare și documentare. CASE reprezintă un mediu de lucru format din programe, precum și alte instrumente de dezvoltare care ajută analiștii de sistem, programatorii sau managerii de proiect să automatizeze proiectarea și implementarea procedurilor destinate sistemelor de calcul utilizate în scopuri comerciale, inginerești sau științifice.
În ceea ce privește proiectarea bazelor de date, instrumentele CASE pot să asigure eficientizarea procesului de construcție a acestora, oferind posibilitatea de generare atât a modelului conceptual (general), cât și a modelului fizic sau specific fiecărui sistem de gestiune a bazelor de date.
4.7.2. Modelele conceptuale și fizice ale bazei de date
Modelul conceptual al bazei de date constituie reprezentarea logică a acesteia, având ca principală caracteristică independența față de componenta software utilizată pentru gestionarea bazei de date, respectiv față de regulile de stocare a informației. Modelul conceptual este o descriere la nivel logic a organizării datelor, specificând relațiile dintre înregistrările fizice și regulile de integritate ale bazei de date. Astfel, există un singur model conceptual indiferent dacă baza de date va fi implementată pe Sql Server, Oracle sau Ingress. Din acest punct de vedere există două avantaje fundamentale:
Posibilitatea de migrare rapidă între diverse sisteme de gestiune a bazelor de date relaționale;
Dezvoltarea unitară și eficientă a activităților de proiectare a bazei de date independent de platforma utilizată.
Modelul fizic al bazei de date constituie modelul particularizat al acesteia în funcție de elementele specifice ale instrumentului software și de reguli de stocare utilizate. Astfel, pentru o bază de date există un unic model conceptual și o multitudine de modele fizice (numărul acestora este dependent de numărul de implementări realizate pe diverse sisteme de gestiune a bazelor de date).
Instrumentele CASE permite construcția vizuală a modelelor conceptuale și fizice ale bazei de date. Sunt incluse funcții menite să transpună un model conceptual într-un model fizic specific sistemului de gestiune a bazelor de date utilizat.
4.7.3. Modalități de lucru utilizând instrumentele CASE și accesul la bazele de date
În proiectarea bazelor de date, prin intermediul instrumentelor CASE, se disting mai multe ipoteze de existență a acestei probleme. Într-o primă ipoteză se pornește de la o bază de date deja existentă, care este adusă în instrumentul CASE și reproiectată. Funcția care permite realizarea acestei operațiuni și este disponibilă în majoritatea instrumentelor CASE se numește Reverse Engineering. Reverse Engineering sau “reproducerea de tehnologie” presupune operațiuni de decompilare și translatare a structurii bazei de date în instrumentul CASE, permițând analiza acesteia și eliminarea eventualelor disfuncționalități. Această operațiune se poate realiza prin intermediul driverelor ODBC (Open Database Conectivity), asigurându-se în acest mod accesul la orice tip de bază de date.
Configurarea surselor de baze de date se realizează prin intermediul ODBC Administrator, care se găsește în folderul Control Panel. Prin intermediul acestui utilitar se pot adăuga noi surse de baze de date sau modifica proprietățile celor existente. Pentru a putea crea o sursă aferentă unei baze de date, a fost necesar ca driverul corespunzător acestei surse să fie instalat anterior (vizualizarea driverelor instalate pe sistem se poate vedea în ODBC Administrator – tab-ul Drivers). În kit-urile de Office 2000 (XP) și Visual Studio este prezentată o paletă destul de largă de drivere de baze de date cum ar fi: dBase (DBF), Visual Fox, Paradox, SQL Server sau Oracle. În cazul în care se dorește utilizarea altor surse de baze de date (DB2 sau Ingress), este obligatorie instalarea în prealabil a acestora. Pentru crearea unei surse de baze de date în ODBC trebuie stabiliți următorii cinci parametrii:
În situația în care sursa de date este dedicată anumitor utilizatori, se va crea o intrare în tab-ul User DSN;
Stabilirea driverului corespunzător bazei de date la care se face conexiunea;
Stabilirea Database Source Name (DSN) prin intermediul căreia se face identificarea surselor de date (suplimentar putându-se adăuga un comentariu pentru fiecare sursă creată);
În situația în care se discută despre o bază de date distribuită, este necesară stabilirea directorului în care se află aceasta. În situația în care este creată conexiunea la un server de baze de date (spre exemplu SQL Server sau Oracle), este necesară stabilirea adresei IP prin intermediul căreia acesta este identificat în cadrul rețelei.
Mai este necesar a se stabili un nume de utilizator și o parolă validă de conectare la baza de date.
Informațiile privind sursele de date configurate pe respectivul sistem prin intermediul ODBC Administrator se găsesc și în fișierul ODBC.INI.
În urma operațiunii de Reverse engineering se poate realiza analiza și se pot aplica eventualele modificări dorite asupra bazei de date. După ce această etapă a fost încheiată, există facilitatea de a genera scripturile de alterare a acesteia sau, prin intermediul driverelor ODBC, se poate afecta direct structura bazei de date.
Cea de-a doua ipoteză de utilizare a instrumentelor CASE presupune folosirea acestora pentru proiectarea și construcția unei baze de date noi. Rezolvarea acestei probleme presupune construcția modelului conceptual al bazei de date și generarea modelului fizic, particularizat, pentru baza de date specifică. Pentru realizarea acestor operațiuni aplicațiile CASE, pun la dispoziție o paletă completă de instrumente care permit construcția dicționarului de atribute a aplicației, a entităților și relaționarea acestora, a regulilor de business, a procedurilor stocate precum și a declanșatorilor.
4.7.4. Proiectarea bazei de date prin intermediul Power Designer
Power Designer (figura 4.7.) este un instrument dedicat proiectării asistate de calculator a bazelor de date. Aplicația permite realizarea atât a modelelor conceptuale, cât și a modelelor fizice, ușurând translatarea între aceste modele pentru o paletă largă de surse de baze de date (accesibile nativ sau prin intermediul driverelor ODBC). Este accesibil și modelului orientat obiect, care permite modelarea bazelor de date și a altor instrumente software prin intermediul limbajelor obiectuale – în acest sens este disponibil suportul pentru Java, Visual Basic, XML, Powerbuilder, C++ și C# (noul limbaj de programare disponibil în Visual Studio .Net). De asemenea, un model orientat obiect valid poate fi ușor translatat atât în modelul conceptual, cât și în cel fizic al bazei de date.
Figura 4.7. –Mediul instrumentului CASE Power designer.
Modul de lucru cu aplicația este vizual, facilitându-se în acest mod dezvoltarea rapidă și intuitivă a bazelor de date. Prin intermediul paletei de instrumente (asemănătoare cu cea existentă în aplicațiile grafice gen Corel Draw) sunt “desenate” elementele componente ale bazei de date. Pentru fiecare element proiectat există o fereastră predefinită, prin intermediul căreia se pot seta proprietățile acestora. Se pot construi astfel entitățile, relațiile dintre acestea, regulile de business la nivelul modelului conceptual, procedurile stocate, tipurile de date predefinite și declanșatorii. Funcția Reverse Engineering este disponibilă în meniul Database, fiind ușor utilizabilă și accesând bazele de date prin intermediul driverelor ODBC. De asemenea, mai poate fi folosită funcția Generate Database, disponibilă în cadrul aceluiași meniu și care permite construirea scripturilor SQL de construcție a bazei de date sau generarea efectivă a acesteia prin intermediul driverelor ODBC.
Figura 4.8. – Funcția Reverse Engineer, realizată prin intermediul ODBC.
Aplicația oferă posibilitatea de a deschide și alte modele de baze de date, cum ar fi: Rational Rose (una din variantele de proiectare CASE bazată pe limbajul UML), Erwin sau Warehouse. Sunt disponibile și instrumente care permit verificarea integrității bazei de date și depanarea eventualelor erori ce pot apărea în faza de proiectare a acesteia.
Capitolul 5 – Elemente arhitecturale privind tehnologia .NET
Când producătorii de software aduc pe piața noi tehnologii și produse informatice, acestea trebuie sa fie concepute astfel încât sa ofere servicii cat mai flexibile utilizatorilor. În general o tehnologie (reprezentata prin modelul abstractizat și implementarea acestuia) se dovedește a fi de succes daca atrage un procent semnificativ din "lumea" dezvoltatorilor, astfel încât noi produse (având ca suport aceasta tehnologie) sa fie lansate pe piața IT mondiala. "Schema" unei astfel de tehnologii trebuie, în mod obligatoriu, sa valideze următoarele nevoi: ușurința în a dezvolta și folosi, disponibilitatea pe termen lung, stabilitatea, suportul pentru o gama larga de aplicații, rezultatul rapid, eleganta și modernitatea. Prin noua sa platforma .NET, Microsoft completează aceasta lista cu un element esențial pentru interoperabilitatea aplicațiilor. Aceasta platforma, lansată la sfârșitul anului 2002, își cunoaște începuturile undeva la sfârșitul anilor ’90, însumând punctele forte ale etapelor de dezvoltare existente pana în acel moment.
5.1. Cadrul software .Net Framework
Soluțiile .NET vor funcționa pe suportul oferit de o mașină virtuală, adăugând în acest mod aplicațiilor dezvoltate atributul portabilității și al independenței de platformă. Acest nou cadru include diferențe majore față de tehnologiile actuale de dezvoltare a aplicațiilor bazate pe soluțiile Win32 și COM. Runtime-ul .NET, numit Common Language Runtime (CLR), a fost gândit astfel încât sa ofere o puternică interoperabilitate multilimbaj. Iată câteva din marile avantaje care decurg din noua arhitectură propusă de Microsoft:
Integrare – programarea în .NET se poate realiza în aproape orice limbaj de programare, singura condiție fiind ca mediul de dezvoltare să fie capabil să emită cod intermediar pentru mașina virtuală .NET. Specificațiile acestui cod intermediar sunt publice și actualmente sunt disponibile 21 de limbaje compatibile cu .NET: C#, C++, Visual Basic (.NET), Jscript (.NET), COBOL, Perl etc. Având în vedere existența unui cadru deschis privind specificațiile .Net Framework și CLR, se preconizează că într-un orizont de timp mediu vor fi disponibile implementări pentru majoritatea limbajelor de programare actuale.
Interoperabilitate – modulele scrise într-un limbaj compatibil cu platforma .Net pot fi utilizate în oricare din celelalte limbaje. Spre exemplu, o clasa scrisă în VB.Net poate fi moștenită în C# sau Perl.
5.1.1. Elemente fundamentale privind Common Language Runtime (CLR) și modul de rulare al aplicațiilor .Net
Mediul de execuție al .NET constă dintr-un sistem orientat-obiect înzestrat cu un mecanism de colectare integrală. În momentul lansării unui compilator compatibil .NET se produce o formă intermediară de limbaj (cod), ce urmează a fi tratată de o stivă abstractă. La prima vedere, acest sistem seamănă oarecum cu sistemul din Java, existând însă o serie de diferențe majore. Cea mai importantă diferență este că Java a fost gândită în special pentru portabilitate, iar .NET pentru interoperabilitate. Mai mult decât atât, în .NET nu există nici o opțiune de interpretare a codului intermediar, așa cum există în Java. Pentru a înțelege mai bine, sa luăm exemplul compilatorului de C#. Acest compilator este, evident, compatibil cu .NET și deci este suportat de CLR. La lansare (în prima fază), compilatorul transformă codul sursă într-un cod ce va fi administrat și controlat de CLR (managed code). Acest cod conține un limbaj intermediar MSIL (Microsoft Intermediate Language). Ambele entități sunt însă împachetate intr-un singur fișier (cu extensia .exe sau .dll), numit executabil portabil (PE). În a doua faza (execuție), PE-ul este încărcat cu motorul de execuție care are rolul de a extrage separat MSIL și metadata. MSIL este compilat în cod mașină (binar) și executat. Prezenta metadatei (data describing data) face ca acest cod administrat să se poată auto-descrie (definiții de tipuri, versiune, restricții legate de securitate, etc.). Aceasta extrainformație asigură o interoperabilitate fără compromisuri.
5.1.2. Arhitectura .Net Framework
Cadrul software .Net include un set vast de clase și librării care pot fi apelate în oricare din limbajele suportate de acest mediu. Astfel, toate aplicațiile – indiferent de limbajul în care au fost scrise – pot accesa într-un mod unitar funcțiile disponibile în cadrul claselor .Net.
Din punct de vedere arhitectural .Net (figura 5.1.) include patru categorii fundamentale de clase:
ASP.NET este generația următoare a tehnologiei Active Server Pages, fiind destinată dezvoltării unor aplicații pentru Web. Un punct cheie al noii versiuni a ASP îl constituie posibilitatea de expunere a funcțiilor aplicațiilor prin intermediul serviciilor Web;
.NET este noua versiune a setului de librării ActiveX Data Object, oferind accesul la sursele de date relaționale sau la alte baze de date. ADO.NET are la bază limbajul XML, asigurând în acest mod un nivel ridicat de portabilitate și accesibilitate al datelor;
Windows Forms este un standard de clase care permit dezvoltarea aplicațiilor Windows și a interfețelor grafice (Graphic User Interface) în toate limbajele suportate de această tehnologie;
Enterprise Services consistă dintr-un set de clase și librării ce permit accesarea serviciilor COM+ și realizarea unor aplicații complexe.
Cele patru categorii fundamentale de clase acoperă în totalitate cerințele de dezvoltare ale celor mai diverse aplicații, începând cu soluțiile tradiționale dedicate mediilor Windows și încheind cu serviciile Web și aplicațiile moderne accesibile prin intermediul Internetului.
Figura 5.1. Arhitectura .Net Framework.
5.2. Principalele limbaje compatibile cu CLR
În cele ce urmează vor fi prezentate elemente fundamentale privind principalele limbaje compatibile cu CLR. Dezvoltarea unor aplicații eterogene și independente de limbajul de dezvoltare a dus la necesitatea adaptării sintaxei limbajelor pentru punerea în practică a acestui demers.
5.2.1 Visual Basic .NET
Limbajul Basic are o istorie de peste 40 de ani , fiind proiectat în anii ’60 de către o echipă de la Colegiul Dartmouth din SUA. Având în vedere simplitatea sintaxei și timpul scurt necesar învățării, Basic a devenit în scurt timp unul dintre cele mai populare limbaje de programare. De-a lungul timpului Basic a suferit multiple modificări, fiind adaptat la cerințele de utilizare ale momentului. Astfel, adaptarea la necesitățile programării orientate pe obiecte a fost consemnată prin lansarea limbajului Visual Basic.
Visual Basic.Net constituie un nou pas în evoluția limbajului Basic. Pentru adaptarea la cerințele utilizării în cadrul platformei .Net au fost necesare schimbări substanțiale. În raport cu Basic-ul tradițional, a fost creat practic un nou limbaj, acest lucru oferind posibilitatea de uniformizare a acestuia cu celelalte limbaje suportate de CLR. Integrarea VB.Net în cadrul platformei .Net Framework a eliminat posibilitatea de a dezvolta aplicații independente de tehnologia .Net. În acest sens, aplicațiile dezvoltate în VB.Net vor putea fi compilate în limbajul intermediar, neputând fi rulate decât pe sistemele pe care este instalat cadrul software .Net. Dar iată câteva din elementele definitorii ale noului limbaj:
Posibilitatea de a implementa moștenirile între clasele de obiecte, înlesnind în acest mod reutilizarea codului scris în acest limbaj de programare;
Cuprinde un suport complet pentru multithreading;
Abilitatea de a construi interfața aplicațiilor direct prin limbaj, fără utilizarea instrumentelor vizuale.
Un alt lucru important de reținut este faptul că VB.Net marchează sfârșitul utilizării Visual Basic Scripting Edition (denumit și VBScript) ca tehnologie distinctă. Folosit tradițional în construcția paginilor Web bazate pe tehnologia Active Server Pages, acest dialect al VB a fost înlocuit treptat de VB.Net. Această modificare permite acum folosirea forței tehnologiei .Net în dezvoltarea aplicațiilor pentru Internet, existând însă – din păcate – dezavantajul gradului de complexitate mai ridicat al aplicațiilor VB.Net în raport cu cele scrise în VB.Script.
Un alt lucru demn de subliniat este că odată cu lansarea .Net au dispărut limitările limbajului Visual Basic. Astfel, în cazul aplicațiilor dezvoltate prin VB.Net există posibilitatea de a accesa setul complet de librării și clase ale acestui cadru software. În acest sens, aplicațiile care nu puteau fi dezvoltate decât în C++, pot fi realizate fără probleme în acest limbaj.
5.2.2. Limbajele C# și C++
Adaptarea limbajului Visual Basic la necesitățile tehnologiei .Net a presupus modificări majore. Limbajul C++, recunoscut de programatori pentru sistemul de operare Windows ca principal instrument de dezvoltare al aplicațiilor pentru această platformă, a necesitat la rândul lui o serie de modificări pentru a putea fi implementat în cadrul platformei .Net. Având în vedere aceste necesități, Microsoft a creat practic un nou limbaj destinat acestei platforme, intitulat C#. Moștenind o parte din sintaxă de la C++, limbajul C# prezintă asemănări importante cu VB.Net și Java (figura 5.2.).
În plus, C++ a fost adaptat și menținut în cadrul platformei pentru dezvoltarea aplicațiilor .Net. De asemenea, limbajul C++ poate fi utilizat pentru construcția unor aplicații tradiționale fără suportul .Net Framework.
Figura 5.2. Limbaje de programare suportate de platforma .Net.
5.2.3. JScript.Net
JScript este o treaptă superioară a limbajului JavaScript, dedicat construcției paginilor Web dinamice bazate pe tehnologia ASP. Folosindu-se Jscript .Net, se pot realiza aplicații cu un grad de complexitate mai ridicat, prin utilizarea setului de clase și librării specific .Net. Limbajul permite folosirea forței programării obiectuale, permițând realizarea operațiunilor de moștenire între clase, precum și pe aceea interfațare a acestora. Suplimentar, tipurile de date au fost extinse pentru a acoperi necesitățile de dezvoltare a aplicațiilor.
Jscript.Net poate fi folosit ca alternativă la limbajele VB.Net și C# pentru paginile Web dinamice ASP.Net. Nu este exclusă posibilitatea de dezvoltare a unor aplicații mixte, ale căror module să fie realizate în toate cele trei limbaje.
5.3. Mediul Visual Studio .Net
În lucrare, pentru realizarea părții aplicative, s-a ales mediul de dezvoltare oferit de Microsoft – Visual Studio.Net. S-a făcut această alegere având în vedere avantajele pe care le incumbă acest mediu de dezvoltare, precum și răspândirea pe scară largă a acestui instrument în rândul dezvoltatorilor din țara noastră și nu numai.
Versiunea .Net a mediului Visual Studio, lansată la sfârșitul anului 2002, aduce ca principal element de noutate o modalitate eficientă de dezvoltare și integrare a serviciilor Web în propriile aplicații. În anul 2003 a fost lansată versiunea 2003 a Visual Studio.Net, aceasta prezentând în principal avantajul integrării cu gama de servere Windows 2003. În plus, având în vedere faptul că XML constituie baza acestei tehnologii, majoritatea instrumentelor disponibile au fost integrate cu acest limbaj. Menționăm colecția de obiecte .NET (ActiveX Data Object), utilizată în dezvoltarea aplicațiilor de baze de date, care se bazează, începând cu această versiune, exclusiv pe acest limbaj.
De asemenea, noua versiune exploatează un cadru software comun (.Net Framework), care permite accesarea librăriilor în mod similar prin orice aplicații scrise într-un limbaj compatibil cu această platformă. În acest sens, mediul introduce un cadru comun de dezvoltare a aplicațiilor, elementul unificator fiind reprezentat de CLR (Common Language Runtime). CLR realizează traducerea oricărei aplicații scrise dintr-un limbaj compatibil cu această tehnologie într-un limbaj de nivel intermediar – Microsoft Intermediate Language (IL). Aplicațiile disponibile în această modalitate intermediară vor putea fi transferate și executate pe platforma dorită (figura 5.3.).
Figura 5.3. Limbajul intermediar.
5.4. Dezvoltarea aplicațiilor Windows standard prin intermediul tehnologiei .Net
.NET Framework asigură uneltele și tehnologiile necesare dezvoltării aplicațiilor distribuite, atât Windows, cât și Web. Prin arhitectura sa, .NET Framework asigură suportul necesar proceselor de compilare și rulare, necesare dezvoltării aplicațiilor .NET. În acest subcapitol sunt prezentate elementele de noutate legate de dezvoltarea aplicațiilor Windows, iar capitolele următoare vor fi dedicate prezentării modului de dezvoltare a aplicațiilor .Net.
În .NET putem vorbi de două tipuri de aplicații: Console Applications și Windows Applications. O singură aplicație poate avea elemente caracteristice atât celor de tip consola cât și celor de tip Windows. De exemplu, într-o aplicație consolă putem să introducem o fereastră MessageBox. Compilatorul C# face diferența dintre cele două tipuri de aplicații printr-un switch numit "target" de pe linia de comandă a acestuia:
/target:exe – pentru aplicații consolă
/target:winexe – pentru aplicații Windows
Dacă un executabil marcat ca fiind de tip consolă este lansat în execuție direct din Windows, atunci va fi afișată o fereastră consolă pentru aplicație. Dacă aplicația este pornită dintr-o fereastră de tipul command prompt, atunci aceasta este folosită pentru afișarea ieșirii.
Să presupunem că avem de dezvoltat o aplicație în care există mai multe forme de introducere a datelor. În .NET Framework, o formă este descrisă de o clasă, prin urmare formele se pot moșteni. Pentru aceasta se creează o formă care reprezintă intersecția formelor finale, după care, pe baza acesteia, sunt realizate celelalte forme.
.Net Framework permite cuplarea (binding) nu numai la surse de date de tip ADO, ci la aproape toate structurile care conțin date. Datorită acestei funcționalități nu mai este necesară scrierea unor proceduri și funcții complexe care să realizeze legarea conținutului informațional al controalele cu sursele de date. De exemplu, se pot construi controale legate de: colecții, șiruri, proprietăți ale altor controale, precum și de obiecte .Net, cum ar fi coloane din tabele și interogări. Mulțumită procesului de binding, dacă un control are o proprietate legată la o sursă de date, la modificarea proprietății controlul va realiza modificările asupra sursei de date. Legarea controalelor poate fi de două feluri: simplu – prin care o proprietate este legată la un singur câmp al sursei de date; complex – când un control este atașat la o întreagă tabelă de date.
Figura 5.4. Utilizarea obiectelor legate.
Sincronizarea dintre controale și sursa de date este făcută de un obiect numit CurrencyManager, fiecare sursă de date având atașată câte o instanță a acestui obiect.
Figura 5.5. Legarea controalelor dintr-o formă de diverse elemente (matrici, colecții de obiecte și tabele).
Când sunt dezvoltate aplicații care se adresează unor utilizatori din țări diferite, se pune problema scrierii interfețelor grafice în mai multe limbi, precum și afișarea corespunzătoare a datelor în formatul limbii respective, cum este cazul datei calendaristice. Pentru astfel de aplicații trebuie avute în vedere:
globalizarea: nucleul aplicației care asigură funcționalitatea de bază a aplicației, trebuie construit fără modulele care trebuie localizate;
localizarea: care se realizează prin traducerea modulelor resursă folosite de aplicație și în alte limbi.
Suportul pentru localizare în .NET Framework este asigurat de către clasa CultureInfo, care conține informații despre limba, țara, calendarul, convențiile culturale. Datorită acestei tehnologii, este necesar un efort mai redus pentru localizarea aplicațiilor și adaptarea acestora la diverse cerințe lingvistice.
Moștenirea formelor, legarea controalelor de diverse surse informaționale și posibilitatea de localizare simplă a aplicațiilor constituie câteva din trăsăturile de bază ale aplicațiilor tradiționale Windows bazate pe tehnologia .Net. Prin intermediul acestor facilități, se reduc numărul liniilor de cod trebuincioase pentru dezvoltarea aplicațiilor și timpul pentru finalizarea acestora.
5.5. Windows Server – platforma pentru rularea aplicațiilor .Net
Windows Server este e o soluție importantă pentru gama de aplicații dedicată serverelor. Această versiune aduce îmbunătățiri importante la capitolele administrare și securitate, fiind disponibil și un nivel ridicat de scalabilitate a sistemului de operare la diversele categorii de nevoi ale utilizatorilor. De asemenea, este integrată tehnologia .Net, care permite rularea aplicațiilor moderne construite prin mijlocirea serviciilor Web. Pentru a oferi un grad sporit de integrabilitate, Microsoft a lansat concomitent cu Windows și alte două noi versiuni de soluții. Astfel, este disponibilă versiunea 2003 a mediului de dezvoltare Visual Studio .Net, precum și versiunea pe 64 de biți a serverului de baze de date SQL Server Enterprise.
5.5.1. Roluri și configurarea serverelor
După instalarea elementelor de bază a sistemului de operare se poate trece la configurarea rolurilor pentru serverele care vor fi operabile pe calculatorul pe care a fost instalat Windows 2003.
Figura 5.6. Menage Your Server permite instalarea și configurarea simplă a serverelor disponibile pe platforma Windows 2003.
Astfel, Menage your server este un instrument simplu de folosit, care permite instalarea și configurarea simplă a diverselor componente ce vor fi accesibile pe sistem. Prin intermediul acestui instrument se pot configura: serverul de fișiere și imprimare, serverul de Web, aplicații, serverul de poștă electronică, Virual Private Network (VPN) și componenta de operare la distanță a serverelor (Windows Terminal Server), precum și alte componente de tip server care vor fi destinate rețelei companiei sau vor permite accesul la resurse din cadrul acesteia prin intermediul Internet-ului.
În folosirea instrumentului Menage your server se remarcă o colecție de “vrăjitori” care simplifică procesul de administrare și configurare a componentelor disponibile sub Windows 2003 Server. În ceea ce privește mentenanța ulterioară a serverelor sunt accesibile instrumente care dispun de o interfață bine organizată, operațiunile de administrare realizându-se simplu. De asemenea, componenta Windows Terminal Server permite operarea și administrarea serverului la distanță. Astfel, este posibilă accesarea serverului prin intermediul soluției Remote Desktop disponibilă în Windows XP, ca și de pe un alt calculator.
5.5.2. Platformă pentru aplicații
Windows Server prezintă avantajul integrării cu gama completă de soluții de dezvoltare oferită de Microsoft, fiind platforma ideală pentru publicarea și rularea aplicațiilor bazate pe tehnologia .Net. În acest sens, soluțiile Visual Studio .Net și SQL Server Enterprise pe 64 de biți, lansate concomitent cu Windows Server, prezintă ca principal avantaj un nivel ridicat de integrabilitate. Într-un orizont de timp scurt, este anunțată lansarea și a altor soluții dezvoltate de Microsoft, care vor fi integrate cu această platformă.
Windows Server permite rularea unor aplicații complexe bazate pe serviciile Web, acestea fiind capabile să satisfacă nevoile de mobilitate și accesibilitate specifice noii generații de sisteme informatice. Serviciile Web sunt o modalitate standardizată de distribuție a aplicațiilor care folosește Internetul și tehnologiile fundamentale ce stau la baza acestei rețele. XML sau eXtended Markup Language constituie baza tuturor elementelor care sunt rațiunea tehnologiei Web Services. Având în vedere independența de platformă, XML constituie motorul care face posibil transferul datelor prin intermediul Internetului, constituind totodată fundamentul serviciilor Web.
5.5.3. Integrarea cu Visual Studio.Net
Visual Studio.Net este mediul de dezvoltare oferit de Microsoft, utilizatorul având posibilitatea de a dezvolta facil servicii Web sau aplicații din această categorie. Visual Studio.Net permite integrarea eficientă a aplicațiilor cu serverul Windows, simplificând procesul de publicare și depanare, contribuind și la reducerea timpului necesar pentru aducerea în stadiu operațional a aplicațiilor realizate. În plus, având în vedere faptul că XML constituie baza acestor tehnologii, majoritatea instrumentelor disponibile sunt integrate cu acest limbaj. Menționăm colecția de obiecte .NET (ActiveX Data Object), utilizată în dezvoltarea aplicațiilor de baze de date, care se bazează exclusiv pe acest limbaj.
Windows Server include serverul de Web și aplicații Internet Information Services 6 (IIS) , acesta constituind elementul cheie care permite integrarea aplicațiilor realizate în mediul Visual Studio.Net pe această platformă. Ultima versiune dispune de un nivel ridicat de securitate, întrucât cuprinde suportul pentru .Net Framework și permite rularea nativă a aplicațiilor .Net. IIS dispune și de o consolă care facilitează realizarea eficientă a procesului de administrare.
Una dintre principalele trăsături ale serverului Windows este scalabilitatea. Această soluție răspunde la cerințele diverselor categorii de utilizatori, putând fi implementată atât în cadrul firmelor mici, cât și al companiilor care utilizează sisteme informatice care necesită o infrastructură deosebită. Pentru a acoperi aceste cerințe extrem de variate, Microsoft propune mai multe versiuni ale acestui sistem de operare.
Capitolul 6 – Sisteme informatice de asistare a deciziilor și aplicații economice disponibile prin intermediul Internetului
Necesitatea unui Web dinamic este principala cerință a majorității utilizatorilor. În acest demers bazele de date își găsesc un loc important, constituind infrastructura care sprijină, la ora actuală, tot mai multe site-uri. Astfel, de la motoarele de căutare până la site-uri de e-business, bazele de date și limbajul de interogare SQL sunt elementele omniprezente. În acest sens vom prezenta o serie de considerente privind tehnologiile ASP (Active Server Page) și ASP.NET, soluții de referință în domeniul limbajelor de scripting și de interconectare cu bazele de date. Dezvoltate de Microsoft, cele două tehnologii permit realizarea unor aplicații complexe, disponibile prin intermediul browser-ului Web.
6.1. Considerente preliminare privind integrarea soluțiilor Web în mediile economico-financiare
Mobilitatea este unul din atributele fundamentale ale mediului de afaceri actual. În acest sens, este imperios necesar ca informațiile economice sau de altă natură să poată fi accesate de la sisteme conectate la rețeaua companiei sau din alte locații. De asemenea, datele oferite prin intermediul sistemelor informatice de acest tip trebuie actualizate permanent în concordanță cu situația economică de moment a companiei. Pentru a realiza sisteme informatice care să răspundă acestor nevoi, se poate folosi suportul oferit de serviciul World Wide Web (Web). Prin intermediul acestei modalități pot fi realizate sisteme informatice accesibile cu ajutorul unui browser Web tradițional. Tehnologiile disponibile în acest moment permit realizarea relativ simplă a unor aplicații complexe, care să ofere mijloace de interconectare cu sursele de baze de date și să permită generarea dinamică a paginilor Web.
6.1.1. Mediul World Wide Web
Informația este, fără îndoială, cel mai de seamă lucru oferit de Internet. Astăzi, ca o consecință a tehnologiilor dezvoltate pentru acest mediu de comunicare, avem posibilitatea de a percepe informația în multiplele ei forme de exprimare. În cursul anului 1989, Tim Berners-Lee, fizician la Institutul European de Fizică a Particulelor (CERN), a prezentat o propunere privind dezvoltarea unei soluții prin care utilizatorul să poată recepționa informația din orice locație ar proveni.
Rețeaua de rețele Internet este cel mai mare sistem creat de om. Cu zeci de milioane de servere, sute de milioane de utilizatori și cu un trafic de date ce a depășit traficul de voce în SUA încă din 2002, se poate vorbi despre Internet ca despre un fenomen care reflectă in plan științific, tehnic și comercial evoluția societății umane la sfârșitul secolului XX, începutul secolului XXI.
Este de remarcat că în sistemul de telecomunicații mondial s-a ajuns la o densitate de linii telefonice de 17% după peste 160 ani de evoluție, în timp ce numai după 20 ani densitatea globaIă a utilizatorilor Internet este de 7%.
Se poate deci vorbi de Internet ca despre un fenomen global și care accentuează globalizarea. Există numai accidental pete albe pe harta care arată răspândirea mondiaIă a tehnologiilor informației, comunicațiilor și Internetului, pete albe care se datorează în principal unor considerente de natură politică și socială, și nu unor dificultăți de natură tehnică.
WWW este bazat pe o arhitectură client/server. Un server Web este un calculator conectat în permanență la Internet, care este integrat în serviciul WWW, având capacitatea de a oferi un răspuns la informația solicitată de utilizator prin intermediul browserului.
Pentru conectarea și transmiterea informațiilor între un calculator și server-ul Web este folosit protocolul HTTP (HyperText Transfer Protocol). Pe calculatorul care este server Web este indispensabilă existența unei aplicații specializate, numită și server HTTP, ea fiind îndrituită să gestioneze cererile clienților care se conectează la acesta și să transmită, pe baza protocolului http, documentele către aceștia. Serverul va trebui să răspundă concomitent la cererile diverșilor clienți conectați. Pe calculatorul utilizatorului care accesează resurse disponibile pe server va fi necesară folosirea unei aplicații specializate (browser), aceasta având menirea să se conecteze la serverul HTTP și să afișeze conținutul paginilor Web.
Dacă inițial Web-ul a folosit cu precădere pentru oferirea de informații diverse, avantajele acestui mediu au determinat utilizarea aplicațiilor de acest tip și în mediul economic. Într-o primă fază, au fost dominante soluțiile e-commerce care au permis realizarea comerțului en-detail prin intermediul unui site Web. Ulterior aria de aplicare a unor soluții Web a acoperit toate sectoarele specifice mediului de afaceri. În continuare punctez câteva categorii de aplicații care sunt dezvoltate astăzi pe scară largă, pe baza unei arhitecturi Web:
Sisteme informatice pentru plata impozitelor și taxelor.
Soluții Web integrate în cadrul administrației publice și locale (e-government).
Sisteme informatice integrate de gestiune sau soluții ERP (Enterprise Resource Planning);
Soluții CRM (Customer Relationship Management);
Sisteme informatice de asistare a deciziilor;
Sisteme expert;
Soluții financiar-bancare sau de asigurări;
Aplicații de comerț electronic;
6.1.2. Avantajele sistemelor informatice de gestiune și a altor soluții economice orientate către Web
Dezvoltarea unor sisteme informatice de gestiune și de asistare a deciziilor orientate către Web constituie o tendință actuală. Arhitectura client-server formează infrastructura fundamentală pentru aplicații din această categorie. În sistemele informatice tradiționale, în cadrului componentei client erau disponibile aplicații Windows care accesau resursele informaționale disponibile prin intermediul unui server de baze de date. În cazul sistemelor informatice orientate către Web, aplicațiile client vor fi disponibile prin intermediul unui browser, acesta comunicând cu un server Web dedicat. Orientarea către Web a sistemelor informatice determină o serie de avantaje în ceea ce privește dezvoltarea și implementarea unor soluții de acest tip. Iată două argumente esențiale în favoarea lor:
Soluțiile orientate către Web nu necesită un proces de instalare. Având în vedere că singura cerință pe parte de client este existența unui browser Web (aplicație prezentă pe orice calculator), nu va fi necesară instalarea și configurarea fiecărei stații care folosește respectiva aplicație.
Posibilitatea de a accesa sistemul informatic din orice locație. Sistemele informatice de acest tip vor putea fi utilizate fără probleme atât din rețeaua Intranet, cât și din mediul Internet. Pentru disponibilitatea în cele două medii nu sunt necesare eforturi pentru adaptarea aplicațiilor.
Un dezavantaj al sistemelor economice orientate Web îl constituie gradul mai scăzut de securitate al acestora în comparație cu cele tradiționale. Pentru asigurarea confidențialității transmisiilor de date, condiție strict necesară pentru aplicațiile economice, sunt disponibile mai multe tehnologii specifice, care vor fi prezentate pe parcursul acestui capitol.
6.2. Elemente fundamentale privind limbajele de scripting rulabile de server
Internetul este unul din domeniile tehnologiei care a avut, în ultimul deceniu, o evoluție explozivă. Acest dinamism s-a concentrat atât asupra volumului (numărului utilizatorilor), cât și asupra tehnologiilor utilizate în acest domeniu. Astfel, site-urile Web au evoluat de la reprezentarea statică a informațiilor la o reprezentare dinamică a acestora. Această evoluție a fost o consecință a cerințelor pieții, în care informația a căpătat un rol primordial, iar transmiterea și recepționarea cât mai rapidă a acesteia este o condiție esențială pentru realizarea unui demers cât mai eficient.
Una din posibilitățile de “dinamizare” a Internetului o constituie, neîndoielnic, bazele de date ca infrastructură a Web-ului. Astfel, paginile Web vor fi generate dinamic în funcție de informațiile stocate în bazele de date. Limbajele de scripting constituie modalitatea fundamentală prin care conținutul din bazele de date poate fi publicat în paginile Web. Limbajele de scripting au ca temelie mai multe tehnologii de programare, în continuare fiind expuse câteva dintre cele mai importante soluții de acest tip.
Aplicațiile CGI (Common Gateway Interface) sunt scrise, de regulă, in Perl sau C, putând fi realizate însă în orice limbaj care poate fi compilat într-o aplicație executabilă sau care poate fi executat de un motor de scripting. Un motiv pentru folosirea aplicațiilor CGI îl constituie faptul că ele oferă programatorului accesul in sistemul de operare și la resursele calculatorului. Un alt motiv ar fi viteza de execuție, în special dacă aplicația CGI este compilată într-un program executabil. Soluțiile dezvoltate pe baza tehnologiei CGI prezintă și o serie de dezavantaje. În primul rând, aceste aplicații sunt dificil de depanat. O altă problemă o reprezintă nivelul de performantă: fiecare solicitare a unui utilizator pentru o aplicație CGI deschide o nouă procedură care consumă din resursele serverului.
Aplicațiile ISAPI sunt implementate ca biblioteci DLL (Dynamic Link Library) și sunt create cu ajutorul limbajelor de genul C și Delphi. Aceste fișiere DLL sunt încărcate în același spațiu de procesare ca și serverul de Web, în acest fel evitându-se necesitatea creării unui nou proces pentru fiecare solicitare. Aplicațiile ISAPI sunt executate mai rapid decât aplicațiile CGI, deoarece ele se află in același proces ca și serverul de Web.
Există două tipuri de aplicații ISAPI. Primul tip este reprezentat de aplicațiile de tip filtru, acestea fiind încărcate în spațiul de procesare al serverului de Web în timpul inițializării acestuia și rămân în memorie până la închiderea serverului. Ele sunt comandate de evenimentele serverului de Web, fiind folosite, de regulă, pentru monitorizarea solicitărilor și executarea algoritmilor de autentificare personalizați.
Extensiile sunt al doilea tip de aplicație ISAPI. Aceste aplicații sunt încărcate în spațiul de procesare al serverului de Web când se formulează o primă solicitare a unui client pentru legătura dinamică ISAPI. În general, extensiile prelucrează datele tipizate din solicitări, aplică reguli de operare și lucrează cu datele din bazele de date. O posibilă problemă legată de fișierele DLL ISAPI este legată de faptul că un comportament anormal al unei aplicații poate genera haos în întregul server de Web, deoarece totul se desfășoară în același spațiu de procesare. Acest lucru se întâmplă, din fericire, foarte rar.
Aplicațiile ASP au la bază scripturile executate în server, create în limbajul VBScript sau JScript. Aceste aplicații pot accesa cu ușurință baze de date folosind tehnologia ADO (Active Data Objects). Programatorul are și posibilitatea de a extinde aplicația ASP folosind componente ActiveX proprii sau din alte surse. Tehnologia ASP a fost adoptată pe scară largă ca metodă care le permite programatorilor să creeze site-uri de Web dinamice, bogate și funcționale, fără să consume un procent ridicat din resursele serverului sau din timpul de procesare.
Tehnologia ASP.NET reprezintă o evoluție în cadrul tehnologiilor de programare pentru Web. Cea mai importantă modificare la trecerea de la ASP la ASP.NET o reprezintă faptul că acum codul aplicațiilor este cod compilat, care este executat în server, în loc să fie interpretat pe măsura solicitării paginilor. Deoarece ASP.NET folosește tehnologia Common Language Runtime (CLR), la dispoziția programatorilor aplicațiilor de Web stând acum toate componentele, precum și forța întregii platforme .NET. Complexul ASP.NET permite o separate curată a codului de prezentare de componenta de execuție a aplicației, în acest fel aplicația devenind mai ușor de depanat și gestionat.
Vom trece acum la prezentarea elementelor privind conceptul și arhitectura conexiunii prin ASP la bazele de date. Vor fi avute în vedere atât elementele de ordin teoretic, cât și cele de ordin practic. Vom prezenta modul în care este posibilă configurarea serverului Web astfel ca el să “recunoască” scripturile ASP. De asemenea, va fi realizată o aplicație care permite realizarea de interogări asupra bazelor de date prin intermediul acestei tehnologii. Vom expune un studiu de caz care va consta într-o miniaplicație ASP, prin intermediul căreia ne vom conecta la o sursă de baze de date, iar în baza instrucțiunii SQL Select și a colecției de obiecte ADO interogările vor fi afișate în browserul Web.
6.3. Conceptul și elementele tehnologice ale tehnologiei ASP
Active Server Pages este un limbaj de scripting rulat de către server (server side scripring), el permițând realizarea unor aplicații Web dinamice și interactive. Limbajele tradiționale Javascript și Vbscript implementate în cadrul browser-ului Web se deosebesc de ASP prin faptul că aceste scripturi sunt transmise clientului prin intermediul protocolului HTTP și rulate pe calculatorul acestuia (client side scripting). Limbajul ASP oferă posibilitatea de a utiliza componentele COM (Component Object Model) și elemente de XML (Extended Markup Language). De asemenea, există posibilitatea utilizării tehnologiilor Active X Data Objects (ADO) și ADO.Net, lucru indispensabil în realizarea aplicațiilor apte să exploateze bazele de date.Acest limbaj de scripting utilizează sintaxa Vbscript și este stocat în fișiere purtând extensia ASP. Fișierele ASP sunt o combinație între codul scris în limbaj de scripting și cod HTML, scripturile ASP fiind incluse între caracterele <% …%>.
Codul scris în ASP nu este perceptibil pentru utilizatorul final, avându-se în vedere faptul că scriptul se execută de către server. Serverul va executa scriptul și va genera cod pur HTML, pe care îl va transmite clientului, care îl va afișa în browserul Web.
ASP prezintă următoarele trăsături fundamentale:
Este independent de browserul utilizat de client. Browserul nu primește de la server decât cod HTML, în acest mod nefiind necesare extensii sau plugin-uri suplimentare;
Ascunde clientului (sau poate, de ce nu, hackerului) codul scripturilor scrise în acest limbaj;
Având în vedere că are la bază limbajul Visual Basic, este foarte ușor de învățat;
Permite realizarea de legături la o mulțime de surse de baze de date prin intermediul ADO și ODBC (Open Database Connection), lucru extrem de important.
6.4. Arhitectura aplicațiilor de baze de date pentru Internet
În esență, arhitectura generală (figura 6.1.) a aplicațiilor de baze de date realizate pentru Web presupune trei elemente obligatorii:
Serverul de baze de date este instrumentul care permite stocarea datelor, permițând realizarea interogărilor SQL. În cazul nostru “actorul” însărcinat cu aceste operațiuni este SQL Server.
Limbajul de scripting – prin intermediul limbajului ASP vor fi realizate aplicațiile noastre și ne vom conecta la sursele de baze de date.
Severul de Web este “responsabil” cu livrarea prin intermediul protocolului HTTP (Hypertext Transfer Protocol) a documentelor HTML solicitate de client. Conexiunea dintre client și server se întrerupe după livrarea documentului sau fișierului solicitat. În cazul analizat, serverul de Web va avea atribuții suplimentare, care constau în recunoașterea și rularea scripturilor ASP. Din acest motiv va trebui utilizat un server care să suporte acest limbaj de scripting. În acest sens sunt disponibile două alternative: prima constă în folosirea Personal Web Server, iar cea de-a doua în utilizarea Internet Information Services.
Figura 6.1. – Arhitectura aplicațiilor bazate pe tehnologia ASP.
ASP 1.0 a fost implementat în 1996 pe sistemul Windows NT 4.0, ca parte a Internet Information Server 3.0 (IIS). Versiunea ASP 3.0, este prezentă în cadrul IIS 5.0 pe sistemul de operare Windows 2000. IIS constituie, incontestabil, o alternativă profesională la utilizarea Personal Web Server, fiind dedicată site-urilor cu necesități mari de securitate și care prezintă un trafic important. IIS 6.0. este inclus în cadrul serverului Windows, oferind suport pentru limbajul ASP.Net. IIS 7.5 a fost disponibil pe Windows 7 și Windows Server 2008 R2. IIS 8.5 este disponibil pe ultimele generații ale lui Windows (Windows Server 2012 R2 și Windows 8.1) – n.r. lucrarea de față a fost finalizată în decembrie 2014.
Pentru ambele soluții prezentate este necesar, înainte de construcția aplicațiilor, să configurăm directorul gazdă al fișierelor pe serverul Web. De asemenea, este necesară setarea serverului Web pentru a recunoaște fișierele ASP. Implementarea scripturilor ASP pe sistemele Unix este posibilă prin intermediul programelor realizate de compania Chili!ASP.
6.5. Datele preliminare ale studiului de caz
În cvasi-majoritarea site-urilor Web actuale este prezent un formular de înregistrare prin intermediul căruia “vizitatorul” are posibilitatea de a comunica autorului site-ului o serie de informații personale sau chiar opinii. Aceste informații vor fi stocate pe server într-o multitudine de formate, pornind de la simple fișiere text și încheind cu baze de date. Desigur, păstrarea informației în bazele de date aduce importante avantaje în ceea ce privește securitatea și posibilitățile mai bune de prelucrare și filtrare a datelor.
În cazul exemplului nostru, pentru a stoca informația transmisă de utilizator într-o bază de date vom folosi tehnologiile ASP, ADO și ODBC. Sursa de date către care vor fi transmise informațiile de conectare va fi una din cele acceptate de driverele ODBC instalate pe calculatorul de test. Baza de date se poate construi într-o multitudine de arhitecturi (Access, SQL Server, Oracle fiind doar câteva din soluțiile optime posibile).
Baza de date obținută va putea cuprinde o multitudine de informații despre utilizator, cum ar fi: numele acestuia, adresa, telefonul, adresa de e-mail, firma și poziția în cadrul acesteia, opinii despre site etc.
După ce, în funcție de necesitate, a fost construită baza de date, este necesară includerea unei intrări către aceasta în secțiunea System DSN a aplicației ODBC Data Source Administrator (această aplicație este disponibilă în secțiunea Control Panel). Data Source Name (DSN) îl vom utiliza în scripturile ASP pentru identificarea bazei de date la care se face conexiunea și asupra căreia se aplică setul de instrucțiuni SQL.
6.5.1. Descrierea aplicației
Aplicația realizată se compune din două părți distincte:
Prima este reprezentată de fișierul Introd.html și oferă utilizatorului de a posibilitatea introduce datele ce urmează a fi stocate în baza de date.
A doua secțiune a aplicației este reprezentată de fișierul Introd.ASP și este responsabilă cu realizarea conexiunii cu baza de date și transmiterea informațiilor către aceasta.
Iată care este structura fișierului Introd.HTML:
<HTML>
<HEAD>
<TITLE>Inregistrare în baza de date</TITLE>
</HEAD>
<BODY>
<font size="+3" face="arial">Adauga o inregistrare</font><hr>
<blockquote>
<form action="introd.asp" method="POST">
Nume: <input type="Text" name="txtNume"size="20"><br>
Prenume: <input type="Text" name="txtPrenume"size="20"><br>
Adresa: <input type="Text" name="txtAdresa" size="20"><br>
Telefon: <input type="Text" name="txtTelefon" size="20"><p>
<input type="Submit" name="" value="Adauga în baza de date">
</form></blockquote>
</BODY>
</HTML>
În cadrul fișierului HTML a fost utilizat tag-ul <Form> pentru realizarea operațiunilor de introducere a datelor. De asemenea, controlul este trecut către fișierul ASP prin intermediul instrucțiunii Action și a metodei Post, care facilitează extragerea datelor din codul HTML.
Fișierul Introd.ASP arată astfel:
<%
set cm = Server.CreateObject("ADODB.Command")
set objConn = server.createobject("ADODB.Connection")
objConn.Open ("Inregistrari;")
cm.ActiveConnection = objConn
cm.commandtext="INSERT INTO Inregistrari (Nume,Prenume, Adresa, Firma, Pozitia, Telefon) Values (" &_
"'" & request.form("txtNume") & "', " &_
"'" & request.form("txtPrenume") & "', " &_
"'" & request.form("txtAdresa") & "', " &_
"'" & request.form("txtTelefon") & "')"
cm.Execute
%>
În ceea ce privește structura fișierului ASP, este necesar să facem câteva succinte precizări:
În prima parte a acestuia se realizează conexiunea la baza de date. În cazul aplicației noastre a fost utilizat numele Inregistrari drept numele sursei de baze de date (DSN) înregistrat în cadrul ODBC.
În continuare este construită comanda SQL Insert, prin intermediul acesteia fiind adăugate înregistrările noi în baza de date. Colectarea informațiilor introduse în formularul HTML se va realiza prin intermediul instrucțiunii Request. În construcția instrucțiunii ASP a mai fost utilizat operatorul de concatenare &.
Ultima instrucțiune a fișierului ASP are menirea de a executa instrucțiuni SQL și modifică efectiv setul de înregistrări al bazei de date.
6.6. Elemente fundamentale privind ASP.Net
ASP.Net reprezintă o evoluție importantă a tehnologiei ASP, oferind posibilitatea de a accesa facilitățile oferite de platforma de dezvoltare .Net (prezentată pe larg în capitolul introductiv). ASP constituie una din tehnologiile principale ale Web-ului, permițând dezvoltarea paginilor Web dinamice cu suport pentru bazele de date. Ultima versiune (ASP.Net) oferă ca principal element de noutate posibilitatea de creare a unor aplicații complexe destinate Internetului, precum și dezvoltarea serviciilor Web. În plus, mai este inclus și un alt set de facilități, dintre acestea menționând:
Posibilitatea de separare a codului propriu-zis al aplicațiilor de codul de reprezentare statică a paginilor Web scris în HTML;
Aplicațiile ASP.Net pot fi scrise, în funcție de preferințele dezvoltatorului, într-unul dintre cele 21 de limbaje disponibile la ora actuală;
ASP.Net pune la dispoziție un set complet de controale rulate pe parte de server, acest lucru contribuind la crearea unei interfețe foarte bine realizate în cazul aplicațiilor dezvoltate.
6.6.1. Modul de rulare al scripturilor ASP.NET
În cazul aplicațiilor ASP.NET, modul de funcționare al scripturilor realizate în acest limbaj este diferit. Când clientul apelează o pagină cu extensia ASPX, aceasta este încărcată în memorie, pe baza ei generându-se o clasă, care este compilată, obținându-se astfel un assembly, care în sfârșit este încărcat și rulat. Astfel, doar la prima cerere clasa este creată și compilată, urmând ca la cereri ulterioare să găsească și să execute direct codul executabil gata de rulare. Acest lucru prezintă avantajul unei viteze sporite a execuției scripturilor, oferind posibilitatea de integrare a acestora în cadrul unor soluții complexe.
Modul în care se generează clasa pe baza paginii ASPX depinde mult de anumite informații declarate în pagina ASPX. În spatele fiecărei pagini ASPX se află câte un fișier în care se află o clasă, fișier care intră în procesul de compilare alături de clasa generată pe baza ASPX-ului. Plecând de la cazul cel mai simplu, când nu avem un astfel de fișier, ci doar pagina ASPX, această pagină va conține următoarea declarație:
<%@ Page language="c#" AutoEventWireup="false"
Inherits="System.Web.UI.Page"%>
În această instrucțiune se precizează că limbajul folosit este C#, iar clasa care va fi generată pe baza paginii ASPX trebuie să fie derivată din clasa System.Web.UI.Page. Toate clasele care reprezintă Web Form-uri trebuie să fie derivate din clasa Page, chiar dacă acest lucru se realizează indirect. Fiecare control adăugat este implementat ca proprietate a clasei ce va fi generată.
Dacă fișierul ASPX include și un fișier separat pentru cod, atunci vom avea următoarea declarație:
<%@ Page language="c#" Codebehind="WebForm2.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1.WebForm2" %>
Pagina va fi identificată prin numele Webform2.aspx, iar fișierul care conține codul are numele WebForm2.apx.cs. În acest caz limbajul folosit este C#. În fișierul acesta avem o clasă derivată din clasa Page, numită WebApplication1.WebForm2, în care WebApplication1 este namespace-ul aplicației noastre. Când se generează clasa pe baza informațiilor din fișierul ASPX, aceasta nu va mai fi derivată din clasa Page, ci din WebForm2, care la rândul ei este derivată din Page. Dacă adăugăm un control în pagină, acesta va fi văzut ca o proprietate a clasei, urmând ca prin moștenire să fie vizibil și în clasa derivată ce va fi generată.
6.6.2. Controalele rulate pe server
În cazul aplicațiilor ASP, atunci când o pagină Web era procesată de către server, se folosea limbajul VBScript pentru personalizarea aspectului ei în funcție de identitatea utilizatorului. ASP.Net include o nouă tehnologie, reprezentată de controalele rulate pe parte de server. Controalele de server sunt componente care pot fi programate în server și care oferă un model de obiect ce poate fi menționat în codul dintr-un formular Web. Când un browser client face o trimitere la formularul de Web, controalele de server generează elementele și atributele în cod HTML (Hyper Text Markup Language), pe care trimit către browser.
În paginile ASP.Net pot fi încorporate următoarele tipuri de controale:
Controalele de tip HTML sunt în fapt versiuni programabile ale clasicelor controale specifice limbajului HTML. Ele sunt programabile atât pe server, cât și în browserul client;
Controalele server ASP.Net prezintă un set superior de funcționalități în raport cu controalele HTML. Controalele de server ASP.Net pot detecta browserul folosit de client, generând codul HTML corespunzător;
Controalele de validare – permit testarea și validarea informațiilor introduse de utilizatori în paginile ASP.Net;
Controalele utilizator – sunt controale particulare realizate de dezvoltatori, ele fiind capabile să răspundă cerințelor specifice aplicațiilor realizate.
6.6.3. Controalele definite de utilizator
Unul dintre elementele de noutate din ASP.Net îl constituie posibilitatea de a crea controale definite de utilizatori, precum și de a trata aceste controale ca obiecte (normale) în cadrul unei aplicații.
Un control definit de utilizator este un grup de unul sau mai multe controale de server și elemente HTML statice sau dinamice (JavaScript) care încapsulează o anumită funcționalitate. Astfel, un control definit de utilizator ar putea fi o extensie a unei funcții, a unui control existent. De asemenea, un control definit de utilizator poate consta în mai multe elemente care interacționează pentru a face un anumit lucru.
În fiecare din aceste cazuri, controalele definite de utilizatori rezidă pe aceeași pagină cu alte elemente. O funcționalitate asemănătoare exista și în ASP 3, prin care se puteau crea pagini care să fie legate cu alte pagini. Cu toate acestea între cele două tehnologii există diferențe – legate de posibilitatea în care cadrul de lucru .NET tratează controalele definite de utilizatori ca obiecte separate. De asemenea, prin posibilitatea de a expune proprietăți ale controalelor, alte elemente (controale ASP.NET și alte controale definite de utilizatori) pot să interacționeze prin cod cu controalele definite de utilizatori.
Între controalele definite de utilizatori și celelalte controale există anumite diferențe. Astfel, există controalele ASP.NET. Ele sunt componente server-side, instalate odată cu .NET Framework, fiind compilate în biblioteci (fișiere .dll) și nu pot fi editate. În contrast cu un control de server, un control al utilizatorului este construit pe baza unor controale deja existente (controale constitutive), are o interfață care poate fi editată și modificată și poate fi manipulat în momentul design-ului și al execuției prin proprietăți pe care utilizatorul trebuie să le construiască.
Mai trebuie cunoscut și faptul că, cu mici modificări, orice formular ASPX se poate transforma într-un control definit de utilizator care să poată fi reutilizat și de alte pagini. Diferența la prima vedere între acestea constă în primul rând în extensia celor două fișiere (.ascx pentru controale definite de utilizator, .aspx pentru pagini ASP.NET). În al doilea rând, din interiorul unui formular transformat în control al utilizatorului, directiva @Page trebuie eliminată (sau înlocuită cu directiva @Control, multe dintre atributele celor două directive fiind comune).
Pentru a putea fi folosite, controalele utilizatorilor trebuie mai întâi înregistrate în pagina în care se dorește integrarea lor prin directiva Register:
‹%@ Register TagPrefix="SpatiuDeNume" TagName="NumeControl" Src="pagina.ascx" %›
În această linie de cod sunt disponibile următoarele instrucțiuni:
TagPrefix determină un spațiu de nume unic pentru controlul utilizatorului, astfel încât să poate fi identificate mai multe controale cu aceleași nume, în funcție de spațiul de nume;
TagName este un nume unic pentru control în interiorul unui spațiu de nume (se poate alege orice nume);
Src este atributul care reprezintă calea virtuală către control.
După înregistrare, controlul poate fi plasat în interiorul unui formular ca orice control obișnuit (trebuie să cuprindă și atributul runat="server").
În momentul în care un formular web este tratat ca un control, câmpurile și metodele publice ale acelui formular sunt transformate în proprietăți publice, care pot fi utilizate din pagina care încarcă controlul utilizatorului pentru a modifica valorile respective.
În concluzie, controalele definite de utilizatori sunt unelte puternice pentru capturarea comportamentului și logicii, fiind în același timp reutilizabile și putând fi partajate de mai mulți dezvoltatori. Întrucât cache-ul ASP.NET poate conține și controale ale utilizatorilor, ele joacă un rol important și în îmbunătățirea performanțelor aplicațiilor.
6.7. Securitatea aplicațiilor Web
Unul dintre cele mai importante aspecte legate de programarea soluțiilor pentru Web îl reprezintă – logic – siguranța aplicațiilor. Acest lucru este valabil în special în cazurile în care acestea vehiculează informații confidențiale, ceea ce face necesară codificarea acestora. De asemenea, vor trebui recunoscuți utilizatorii pentru a li se oferi accesul în anumite sectoare ale sistemului creat în funcțiile de drepturile acordate. Aplicațiile economice, prin natura informațiilor oferite, solicită implementarea unor algoritmi puternici de securitate. În consecință, pentru orice sistem informatic orientat către Web și dedicat mediului economic va fi necesară integrarea unor proceduri care să trateze cererile de la diverși utilizatori și să le ofere acces diferențiat la resursele informaționale existente prin intermediul aplicației. În continuare, vom trata elemente specifice tehnologiilor ASP și ASP.Net în infrastructuri informatice bazate pe Windows Server 2003 și soluția Internet Information Services (IIS).
6.7.1. Elemente definitorii privind vulnerabilitatea sistemelor informatice
Un sistem de tip Internet este vulnerabil prin natura sa. Fiind un “sistem de sisteme” care crește cu rapiditate și cu o infrastructură diversificată, ansamblul Internet cuprinde numeroase elemente de vulnerabilitate care au generat preocupări pentru studierea și eventual eliminarea acestora.
Vulnerabilitatea sistemelor Internet este mai mare decât cea a sistemelor tradiționale. Afirmația se justifică prin faptul că volumul informației este mult mai mare decât la celelalte sisteme. În al doilea rând, dezvoltarea Internetului a fost rapidă, fără a fi însoțită de preocupări deosebite pentru asigurarea unei limitări a vulnerabilității.
În afara vulnerabilităților specifice sistemelor informatice clasice, în Internet a apărut atacul informatic ca element provocat sau declanșat întâmplător. Primul incident a avut loc în 1988 și a fost cauzat de virusul Morris Worm. A urmat o creștere exponențială a incidentelor de acest tip și, ulterior, a unei diversități de alte tipuri.
Este recunoscut că informația poate fi pierdută, furată, modificată, folosită necorespunzător și decriptată ilegal. În acest sens, este posibiIă pierderea integrității, confidențialității și disponibilității datelor.
Vulnerabilitatea aplicațiilor este controlabilă la nivel de microsistem. Sursele de risc sunt echipamentele, software-ul și bazele de date.
În cazul echipamentelor, principalii factori de vulnerabilitate, în afara problemelor normale generate de fiabilitatea intrinsecă a componentelor sistemului, sunt dezastrele naturale (furtuni, inundații, cutremure), căderile sau întreruperile de alimentare cu energie și actele de vandalism.
În software, aplicații și date putem evidenția factorii furt, alterare și distrugere de date, virușii informatici și accidentele neintenționate.
Diminuarea vulnerabilității la nivel de microsistem se poate face prin măsuri de control al accesului și creștere a robusteței programelor. Toate acestea se fac cu un anumit cost care este cu atât mai mic cu cât măsurile sunt luate mai din timp, în fazele de proiectare și realizare a sistemului.
6.7.2. Modalitatea standard de securizare a aplicațiilor ASP
Metoda de bază a securizării aplicațiilor ASP este fundamentată pe drepturile de securitate integrate prin serverele IIS și Windows. Prin această metodă serverul IIS autentifică utilizatorul, iar aplicația ASP primește un certificat cu drepturile de acces. Având în vedere că pentru procesarea datelor de securitate se folosește mediul Windows, este important să fie utilizat sistemul de fișiere NTFS (New Technology File System). În acest mod vor putea fi declarate permisiuni de acces la diverse resurse disponibile pe serverul Web, fiind asigurat un nivel ridicat de securitate. În cazul acestei metode de securizare a aplicațiilor Web, are loc următoarea succesiune de evenimente:
Utilizatorul încearcă să viziteze o pagină din site-ul de Web.
IIS autentifică clientul folosind accesul anonim sau autentificarea simplă, sistematizată sau integrată din Windows.
În cazul în care clientul se autentifică corect, serverul IIS transferă solicitarea de resurse către aplicația ASP sub forma unui certificat.
Aplicația ASP folosește certificatul și consultă drepturile din NTFS pentru accesarea diverselor resurse.
În cazul în care accesul este permis prin drepturile NTFS, aplicația ASP.NET returnează utilizatorului resursa solicitată prin IIS.
6.7.3. Securizarea aplicațiilor ASP.Net
Tehnologia ASP.Net poate integra metode specifice de autentificare și oferire a drepturilor de acces la diverse resurse. Această metodă de securizare se bazează pe sistemul propriu integrat în mediul ASP.Net. În această variantă de securitate, aplicația folosește un element de tip cookie creat de ASP.NET, în care sunt înregistrate informații referitoare la numele de utilizator și parolă. Aplicația ASP.NET folosește informațiile respective făcând în același timp o verificare pe cont propriu a autenticității acestor informații. Pentru ca acest tip de autentificare să ofere cele mai bune rezultate, este obligatorie activarea funcției pentru acces anonim din consola de administrare a IIS. În caz contrar, înainte de a trimite solicitarea către aplicația ASP.Net, serverul IIS va încerca să autentifice utilizatorul pe baza propriilor metode, făcându-se astfel o nouă autentificare. Pentru autentificarea prin metoda ASP.Net sunt necesare următoarele etape de procesare:
Utilizatorul încearcă să viziteze o pagină din serverul de Web.
Serverul IIS preia solicitarea și execută direct autentificarea.
În situația în care este activată opțiunea pentru acces anonim, solicitarea este transmisă către aplicația ASP.NET.
Dacă în calculatorul client există un element de tip cookie pentru autentificare, informațiile din fișierul respectiv vor fi automat comparate cu informațiile de configurație a sistemului de securitate înregistrate în aplicația ASP.NET. În cazul autentificării datelor de legitimare, solicitarea este procesată și ASP.NET trimite pagina către utilizator.
Dacă elementul cookie pentru autentificare nu se găsește pe calculatorul client, utilizatorul este trimis către pagina de deschidere a sesiunii definită de parametrii de configurare ai aplicației ASP.NET. Acolo utilizatorul își va introduce numele de utilizator și parola și să va trimite apoi spre autentificare.
Aplicația ASP.Net validează apoi datele utilizatorului, de regulă printr-o funcție de validare a utilizatorului, și transmite fișierul cookie de securitate în calculatorul utilizatorului. Dacă validarea utilizatorului eșuează, pe ecran va apărea mesajul ,,Access Denied" (Accesul refuzat).
6.7.4. Infrastructura de securitate specifică ASP.Net
Arhitectura sistemului de securitate din ASP.NET este formată din două componente. Prima componentă este integrată în IIS, iar cea de a doua este definită prin intermediul fișierului web.config. Acest fișier conține diferiți parametrii de securitate specifici aplicațiilor ASP.Net.
Primul demers care trebuie realizat pentru securizarea unei aplicații începe cu serverul de Web care găzduiește site-ul. În majoritatea cazurilor, respectivul server de Web este Internet Information Server (IIS) 5.0, care este instalat în mod automat o dată cu Windows 2000 Server, Windows 2000 Professional, Windows XP Professional sau Windows Server 2003.
IIS poate permite sau refuza accesul în site-ul de Web pentru anumite adrese de IP și nume de domenii. În configurația prestabilită, IIS permite accesul de la orice sistem integrat în rețea sau disponibil pe Internet. Prin intermediul interfeței de configurare pot fi setate anumite adrese IP sau nume de domenii care nu vor putea accesa resurse oferite de site. De asemenea, se poate stabili ca serverul IIS să refuze accesul tuturor adreselor IP, cu excepția celor indicate de administrator. Această metodă este mult mai restrictivă, de aceea este recomandată numai dacă aplicația sau site-ul Web urmează a fi accesate de un număr determinat de utilizatori. Astfel, un sistem de tip ERP disponibil prin intermediul unei interfețe Web nu va fi accesat decât de către utilizatori din cadrul companiei, putându-se include limitări de acest tip pentru asigurarea unui nivel ridicat de securitate.
Un alt mecanism de securitate integrat în IIS constă în funcțiile de autentificare a utilizatorilor. Primul nivel specific acestui mecanism este accesul de tip anonim. În cazul în care prin consola de configurare a fost selectată funcția Anonymous Access, utilizatorii care accesează resurse ale serverului Web vor fi autentificați printr-un nume de utilizator generic. O caracteristică a IIS este că se poate crea o parolă unică pentru acest cont, ceea ce înseamnă că utilizatorii cu privilegii pentru administrarea serverului nu trebuie să genereze o parolă adecvată pentru contul fiecărui utilizator.
În afara modalității de tip anonim, IIS implementează și autentificarea simplă. Acest gen de autentificare solicită utilizatorului datele pentru deschiderea sesiunii, reprezentate de numele de utilizator și de parolă. Aceasta este o metodă optimă de protejare a conținutului site-ului de Web; principalul său dezavantaj este însă faptul că numele de utilizator și parola sunt transmise către serverul de Web, în vederea autentificării, ca text simplu, fără codificare. Acesta înseamnă că orice persoană care dispune de un program software care monitorizează conținutul pachetelor TCP/IP va putea obține acces la resursele serverului Web. Pentru a elimina acest neajuns va fi necesară crearea unei legături securizate la serverul de Web, folosind Secure Sockets Layer (port 443) sau SSL. Tehnologia SSL folosește un sistem cu cheie publică pentru codificarea tuturor datelor transmise între calculatorul utilizatorului și serverul de Web. De asemenea, ea realizează autentificarea calculatorului utilizatorului pentru a elimina posibilitatea ca o altă persoană să-i fi subtilizat identitatea electronică.
Al treilea nivel de autentificare în IIS 5.0 este cea sistematizată. Această metodă este asemănătoare autentificării simple, cu excepția faptului că parola nu este transmisă serverului de Web ca text necodificat, ea fiind codificată sub forma unei valori de control înaintea retransmiterii ei către server. O valoare de control sau un mesaj sistematizat conține date binare, care sunt generate printr-un algoritm de dispersie. Toate valorile de control au trei proprietăți comune, indiferent de tipul de algoritm folosit:
valorile de control au lungimi între 128 și 160 de biți, chiar dacă mesajul codificat are o lungime de mai mulți kilocteți sau gigaocteți;
mesajele codificate prin dispersie logică vor genera o cu totul altă valoare de control, chiar dacă mesajele codificate diferă printr-un unic bit;
de fiecare dată când unui mesaj se aplică un algoritm, el va genera – fără excepție – aceeași valoare de control.
Autentificarea sistematizată este o facilitate nouă în HTTP 1.1 ea nefiind posibilă în toate browserele. Internet Explorer, începând cu versiunea 5, permite autentificarea sistematizată. Browserele care se dovedesc incompatibile primesc, dacă încearcă să obțină accesul la o resursă care folosește acest gen de autentificare, mesaj de eroare de la serverul Web. Un avantaj al folosirii autentificării sistematizate este că poate fi utilizată și în cazul unui firewall sau al unui server proxy.
Pentru a folosi autentificarea sistematizată, serverul de Web trebuie să lucreze în conjuncție cu un controler de domeniu. În plus, pentru ca autentificarea sistematizată să funcționeze corect, serverele de Web trebuie să aibă o copie necodificată a parolei. Datorită lipsei de moment a unei forme codificate a acestor parole este extrem de important ca serverul de Web să fie protejat atât împotriva atacurilor fizice, cât și a celor din rețea. Pentru fiecare utilizator care solicită accesul la resursele site-ului trebuie creat un cont de utilizator corespunzător în Windows. Aceste conturi pot fi fie conturi locale, plasate în serverul de Web, fie conturi globale, plasate în controlerul de domeniu.
Al patrulea și ultimul nivel de autentificare este cel integrat în Windows. Autentificarea integrată în Windows nu transmite niciodată informații referitoare la numele sau parola de utilizator către serverul de Web, realizând doar validarea acestora.
Avantajul folosirii acestui gen de autentificare este că, în majoritatea cazurilor, utilizatorii nu vor trebui să deschidă sesiuni de lucru în serverul de Web, pentru că vor fi deja autentificați de controlerul de domeniu din rețea. Ca atare, oricine vizitează un site de Web prin acest gen de autentificare trebuie să aibă un cont de utilizator în controlerul de domeniu. Din nefericire, această variantă de autentificare nu poate fi folosită în cazul unui server proxy sau al firewall-urilor. Cel mai indicat domeniu de utilizare este, de regulă, în site-urile disponibile în rețelele Intranet, unde toți utilizatorii sunt din același domeniu și folosesc browser-ul Internet Explorer. Având în vedere aria relativ restrânsă a utilizatorilor unor aplicații de acest tip, această metodă de autentificare poate fi folosită cu succes în cazul sistemelor informatice de gestiune și economice,.
6.7.5. Configurarea sistemului de securitate ASP.Net
Fișierul web.config este instrumentul care permite autentificarea utilizatorilor prin intermediul aplicațiilor ASP.Net Dacă vreți ca aplicația ASP.NET să valideze utilizatorii, trebuie să folosiți fișierul Web.config. Acesta este un fișier XML și se găsește în directorul-rădăcină al aplicației Web, definind diferiți parametri de configurare. În acest fișier există un nod, numit <security>, care conține informațiile de configurare pentru sistemul de securitate al aplicației ASP.Net. Următorul exemplu de cod ilustrează câteva din atributele nodului <security> dintr-un fișier Web.config.
<authentication mode="[Windows/Cookie/Passport]">
<cookie cookie="[nume]" loginurl="[url]" decryptionkey="[key]°> <credentials passwordformat="[Clear, SHA1, MD5]">
<user name="[nume utilizator]" password="[parolă]"/> </credentials>
</cookie> </authentication> <authorization>
<allow users="[lista utilizatorilor]" roles="[lista rolurilor]"/> <deny users="[ lista utilizatorilor] roles="[lista rolurilor]"/> </authorization>
<identity>
<impersonation enable=" [true/false] "/>
</identity>
În acest exemplu sunt definite trei sub-etichete din fișierul Web.config: <authentication>, <authorization> și <identity>. Primul definește modul de autentificare prestabilit care va fi folosit în aplicația ASP.NET, având un atribut care poate avea una din următoarele valori: Windows, Passport și None.
Sub-etichetei <authentication> i se poate asocia un sub-element, numit <cookie>, având trei atribute:
Cookie conține numele elementului de cookie HTTP folosit pentru autentificarea in ASP.NET. În configurația prestabilită, această valoare este ASPXAUTH.
Loginurile includ URL-ul către care sunt trimiși utilizatorii dacă datele lor de identificare din fișierul cookie nu pot fi autentificate corespunzător. Această adresa este URL-ul de deschidere a sesiunii pentru aplicația ASP.NET.
Decryptionkey conține cheia folosită pentru decodificarea informațiilor de identificare salvate în fișierul cookie de autentificare. Această cheie este plasată în acest fișier în formă necodificată.
Subeticheta <cookie> poate avea și ea o subetichetă opțională numită <credentials>. Această subetichetă are un atribut, password format, care definește formatul de codificare folosit pentru înregistrarea parolelor. Formatele de codificare recunoscute de ASP.NET sunt bazate pe metodele MD5 și SHA1. Subeticheta <credentials> permite folosirea sub-etichetei <user>, care definește valorile nume de utilizator și parolă.
O a doua subetichetă din fișierul web.config este <authorization>. Această subetichetă controlează accesul clienților la aplicația ASP.NET. Ea permite folosirea a două sub-etichete: <allow> și <deny>. Subeticheta <allow> permite identificarea explicită a listei cu valori ce conține utilizatorii și rolurile care pot obține accesul la resursa sau URL-ul solicitat. Subeticheta <deny> definește o listă cu valori despărțite prin virgulă a utilizatorilor și a rolurilor pentru care accesul la resursa solicitată este refuzat. De asemenea, toți utilizatorii care au sau nu dreptul de a accesa anumite resurse vor fi reprezentanți printr-un asterisc.
Când un utilizator solicită accesul la URL, secțiunea <authorization> din fișierul Web.config este procesată și se selectează prima apariție a utilizatorului în lista <allow> sau <deny>. Dacă nu se găsește nici o apariției a utilizatorului în cele două liste, utilizatorului i se refuză în mod automat accesul la resursa solicitată. În cazul sub-etichetelor <allow> și <deny> poate fi folosit și un alt treilea tip de atribut. Acest atribut se numește verbs și definește utilizatorii sau rolurile care pot folosi instrucțiuni HTTP de tipul GET sau POST.
Exemplificând, pentru a-i permite Utilizatorului_1 accesul la resursele aplicației și a interzice accesul tuturor celorlalți va fi necesară folosirea următoarei sintaxe:
<authorization>
<allow users=" Utilizatorului_1" /> <deny users="*" /> </authorization>
În cazul aplicațiilor complexe în care se dorește autentificarea utilizatorilor prin intermediului unei baze de date, nu va fi necesară folosirea elementelor de configurare din web.config.
Al treilea element pentru secțiunea de securitate din fișierul web.config este sub-eticheta <identity>. Ea permite sau interzice autorizarea prin personificare pentru site-ul de Web. Personificarea este folosită de aplicațiile ASP.NET când autentificarea este făcută numai de IIS și de Windows cu ajutorul conturilor de utilizatori și a permisiunilor NTFS pentru resurse.
Passport este un alt tip de autentificare care poate fi integrat cu aplicațiile ASP.Net. Acesta este un serviciu centralizat oferit de Microsoft pentru salvarea informațiilor de autentificare a utilizatorilor. Toate site-urile care se abonează la acest serviciu pot folosi un sistem de conectare unică pentru a obține accesul la mai multe site-uri și resurse. Pentru a folosi acest gen de autentificare trebuie mai întâi instalat pachetul Passport SDK. După ce este efectuat acest pas, va fi definit modul Passport pentru sub-eticheta <authentication> din fișierul Web.config. Când utilizatorii vor solicita pentru prima dată accesul la resursele aplicației, în mod automat vor fi dirijați către site-ul de conectare Passport în vederea autentificării. Dacă se obține autentificarea, vor fi reorientați către aplicație împreună cu informațiile de autentificare incluse în șirul de interogare al URL-ului. Când URL-ul este procesat de serverul de Web, informațiile de autentificare din șirul de interogare sunt eliminate și Plasate într-un cookie pentru ulterioare solicitări de resurse.
6.7.6. Secure Sockets Layer (SSL) o cerință esențială pentru aplicațiile economice
Secure Sockets Layer (SSL) este un standard deschis, propus de compania Netscape, care prevede utilizarea unui canal de comunicații sigur, astfel încât să fie împiedicată interceptarea informațiilor critice și confidențiale. Principalul obiectiv al standardului SSL este de a realiza tranzacții financiare sigure prin intermediul Web-ului, dar este conceput pentru a putea fi folosit și pentru alte servicii Internet. Această tehnologie folosește la criptarea cu cheie publică, iar funcțiile de utilizare sunt integrate în majoritatea browser-elor actuale și în serverul IIS.
Pentru sistemele informatice de gestiune, având în vedere nivelul ridicat de confidențialitate a informațiilor procesate, este imperios necesar ca datele transmise între serverul Web și calculatorul utilizatorului să fie transmise în format criptat. Dacă datele sunt transmise în formă necriptată, prin intermediul unor aplicații de tip sniffer, datele confidențiale vor putea fi interceptate și astfel se vor înregistra importante prejudicii.
Protocolul SSL (Secure Socket Layer), cunoscut și ca https, este folosit în mod normal prin portul 443 al serverului de Web. Acest gen de sistem de codificare folosește o cheie publică pentru codificarea informațiilor și o cheie privată pentru decodificarea lor. Când datele sunt codificate cu cheia publică, ele pot fi decodificate numai cu cheia privată. SSL se bazează pe folosirea certificatelor digitale. Certificatul este, în principiu, un element de identificare emis de un organism independent de încredere, asemănător notarului public, care confirmă identitatea utilizatorului. Pentru securizarea comunicațiilor se folosesc două tipuri de certificate. Primul tip, certificatul de server, este folosit pentru informarea clientului că serverul este legitim și autentic. Al doilea tip, certificatul de client, are rol de semnătură digitală pentru identificarea clientului de către server.
Într-o legătură securizată realizată prin certificate de server, aceasta fiind forma cea mai folosită pentru legăturile prin SSL, pentru inițierea legăturii codificate sunt efectuați patru pași importanți:
Clientul solicită o legătură securizată cu serverul prin portul 443.
Serverul îi trimite clientului certificatul, care conține cheia publică de codificare.
Clientul validează certificatul serverului, generează o cheie de sesiune și o codifică folosind cheia trimisă de server prin certificat.
Serverul decodifică cheia de sesiune folosind cheia privată și creează o legătură securizată.
SSL permite implementarea unor conexiuni sigure, asigurând un nivel maxim de confidențialitate pentru datele transmise prin intermediul sistemului informatic. Fără tehnologia SSL este practic imposibilă dezvoltarea unor aplicații economice orientate către Web, această componentă asigurând un nivel ridicat de siguranță pentru aceste aplicații.
6.8. Optimizarea aplicațiilor orientate către Web
În dezvoltarea aplicațiilor orientate către Web, un lucru important de luat în considerare este nivelul de performanță al acestora. Performanța programelor Web se traduce prin timpul necesar serverului Web pentru a oferi paginile solicitate de diverși utilizatori. O serie de elemente caracteristice tehnologiei ASP și modului de optimizare a aplicațiilor bazate pe aceasta sunt prezentate în continuare.
6.8.1. Optimizarea paginilor ASP
O pagină ASP preia informații dintr-o bază de date, afișând apoi rezultatele sub forma unei pagini HTML. Indiferent de viteza bazei de date, prelucrarea datelor din memorie este mult mai rapidă decât preluarea datelor dintr-o bază de date. Citirea datelor de pe discul local este, de obicei, mai rapidă. De aceea, păstrarea datelor fie în memoria serverului, fie pe discul său local duce la creșterea performanțelor. Cachingul este un compromis clasic făcut între spațiul folosit și timpul de răspuns al aplicației. Dacă pe server sunt păstrate date relevante atunci creșterea performanțelor se va dovedi spectaculoasă. Pentru ca această tehnică să dea rezultate trebuie ca datele respective să fie reutilizate frecvent sau prelucrările făcute pentru obținerea lor să aibă un cost ridicat.
Datele care nu se modifică frecvent sunt buni candidați la procedeul de caching deoarece nu este necesară resincronizarea lor în timp cu baza de date. De obicei se păstrează, mai degrabă, prezentarea datelor decât datele în sine. Dacă o pagină HTML integrează un conținut se schimbă rar, dar păstrarea ei este costisitoare (un întreg catalog de produse), atunci soluția cea mai eficientă ar fi generarea în avans a paginii HTML mai degrabă decât generarea ei la fiecare cerere.
Păstrarea datelor frecvent folosite în memoria serverului se realizează prin obiectele Application și Session. Obiectele ASP Session și Application sunt containere potrivite pentru păstrarea datelor în memorie. Ambelor obiecte le pot fi asignate informații care rămân în memorie între cererile HTTP. Datele de sesiune sunt păstrate per utilizator, iar cele privind aplicația sunt valabile pentru toți utilizatorii.
De cele mai multe ori informațiile sunt încărcate în obiectele Session și Application atunci când sesiunea, respectiv aplicația pornesc. Pentru a realiza acest lucru se folosesc evenimentele Application_OnStart() și Session_OnStart(). Este bine totuși ca informațiile necesare să fie încărcate atunci când este nevoie de ele pentru prima dată. În aceste obiecte pot fi stocate orice tip de date variant (string, integer, array).
Atunci când în obiectele Session și Application sunt stocate date, ele rămân acolo până când sunt schimbate prin program la expirarea sesiunii sau când aplicația web este repornită.
Uneori volumul de date care se dorește a fi păstrat în memorie este prea mare. Această supradimensionare depinde de volumul de memorie care este disponibil, de numărul de înregistrări și de frecvența cu care aceste informații vor fi accesate. În acest caz păstrarea datelor se poate face pe discul serverului sub formă de fișiere XML sau text. Strategiile de păstrare a datelor în memorie și pe disc pot fi combinate pentru a se obține strategia optimă de caching.
Atunci când este vorba de măsurarea performanțelor pentru o singură pagină ASP, nu întotdeauna preluarea datelor de pe disc este mai rapidă decât preluarea lor din baza de date. Avantajul acestei tehnici constă în faptul că se micșorează încărcarea bazei de date și a rețelei. Atunci când încărcarea este foarte mare, această strategie duce la o importantă creștere a timpului de răspuns al aplicației la nivel global. De aceea este util ca această tehnică să se aplice asupra seturilor de rezultate obținute prin intermediul unor interogări costisitoare (cum ar fi legături între multe tabele sau o procedură stocată complexă) sau asupra seturilor de rezultate foarte mari.
ASP și COM oferă mai multe instrumente pentru a construirea schemelor de caching. Funcțiile Save() și Open() ale obiectului ADO Recordset asistă programatorul în procesele de salvare a datelor pe disc și de încărcare a datelor de pe disc. Alte componente importante care oferă suport pentru lucrul cu fișiere sunt:
Scripting.FileSystemObject permite crearea, citirea și scrierea fișierelor.
MSXML, inițiatorul XML integrat în Internet Explorer 6.0 suportă salvarea și încărcarea documentelor XML.
Obiectul LookupTable este o alegere foarte bună pentru încărcarea listelor simple de pe disc.
O altă posibilitate de creștere a performanței este păstrarea prezentării datelor mai degrabă decât a datelor în sine. Codul HTML pre-generat poate fi stocat în fișiere .html sau .asp, care pot fi accesate prin intermediul hiperlegăturilor. O altă alternativă este includerea de fragmente de html sau asp folosind:
#include file="nume_fisier.asp/htm"
Validarea datelor la client înainte de a fi trimise către server (pe cât posibil). Există cazuri în care anumite date pot fi validate în pagina HTML prin intermediul unor funcții JavaScript (exemplu: dată validă, câmpuri care trebuie să conțină numai cifre, câmpuri care trebuie completate obligatoriu). Dacă aceste validări nu ar fi efectuate la client de fiecare dată când un anumit câmp ar fi eronat, serverul ar trebui să detecteze eroarea și să întoarcă clientului un răspuns în care acesta să fie notificat asupra greșelii făcute. Efectuarea acestor validări la client reduce numărul de round-trips și conduce la o solicitare mai redusă a serverului și a rețelei. Dezavantajul acestei abordări constă în faptul că pagina HTML trimisă clientului, cea care conține și validările (funcții JavaScript), este mai mare.
Atunci când sunt folosite obiecte COM, este bine ca datele frecvent folosite să fie copiate în variabile script. Această tehnică reduce apelurile la metodele COM, care sunt relativ costisitoare comparativ cu accesarea variabilelor script.
Dacă o anumită informație este solicitată de mai multe ori, ideal este ca respectiva informație să fie salvată într-o variabilă script. Această optimizare vizează în special variabilele Request (colecțiile Form și QueryString). De exemplu, în paginile aplicației se transferă o variabilă QueryString numită UserId. Presupunând că această variabilă este accesată de mai multe ori într-o pagină, în loc să se acceseze Request.QuerySring("userId") de mai multe ori este mai indicat ca o variabilă script să fie inițializată cu această valoare la începutul paginii. Această variabilă va fi ulterior folosită în pagină.
6.8.2. Elemente specifice optimizării aplicațiilor care se conectează la surse de date
Păstrarea conexiunilor ADO în obiectele Application și Session nu este de natură să conducă la un plus de performanță în ceea ce privește aplicațiile realizate. Dacă o conexiune este păstrată în obiectul Application și este folosită în toate paginile ASP, atunci toate paginile vor încerca permanent obținerea ei. Dacă o conexiune este pusă în obiectul Session, atunci pentru fiecare utilizator se va crea o conexiune. Această abordare distruge toate beneficiile oferite de poolingul conexiunilor și induce stres inutil asupra serverului de Web și asupra bazei de date.
Soluția alternativă și evidentă este crearea și distrugerea obiectelor ADO în fiecare pagină. În acest fel se poate profita din plin de faptul că IIS are integrat mecanismul de eliminare a conexiunilor.
Pentru fiecare utilizator (browser) care accesează paginile unei aplicații web, serverul instanțiază un obiect Session dedicat păstrării datelor de ordin general legate de respectivul utilizator.
O sesiune se creează atunci când un utilizator face prima cerere către o pagină din aplicație și se termină fie prin script (Session.Abandon()), fie atunci când utilizatorul nu mai face nici o cerere către server pe durata unui interval de timp prestabilit. Pentru fiecare utilizator se instanțiază un obiect Session care ocupă inițial 10 KB în memorie (fără ca în paginile ASP să se fi adăugat ceva pe sesiune).
Marea problemă a acestei tehnici apare atunci când aplicația rulează pe mai multe servere de Web. În acest caz este nevoie ca toate cererile unui utilizator să fie procesate de același server, pentru a nu se pierde sesiunea. Această soluție este destul de costisitoare și relativ greu de implementat, de aceea în acest caz este utilă evitarea folosirii obiectului Session, transmiterea informațiilor generale de la o pagină la alta făcându-se prin intermediul câmpurilor de tip hidden plasate în formularele care se transmit. Dezactivarea sesiunii se face prin adăugarea la începutul fiecărei pagini ASP:
%@EnableSessionState = false;%
Este util că înainte de începerea unor procesări costisitoare să se verifice dacă cel care a generat cererea mai este conectat (nu a navigat către o altă locație). Acest lucru se face prin intermediul Response.IsClientConnected. Dacă valoarea întoarsă este falsă, atunci procesul de generare a răspunsului poate fi întrerupt prin intermediul Response.End(). Testul se poate face de mai multe ori, la intervale de timp, pentru a se preveni utilizarea inutilă a resurselor serverului. IIS face acest test automat pentru toate cererile aflate în coadă, o dată la 3 secunde.
În paginile ASP se pot instanția obiecte COM, în această situație fiind recomandată folosirea codului compilat, deoarece acesta se execută mai repede decât cel interpretat. Totuși, nu este indicat să se abuzeze de această posibilitate deoarece apare o supraîncărcare a serverului pentru crearea și invocarea obiectului COM.
Instanțierea obiectelor folosind tagul ‹object› în loc de Server .CreateObject(). Sunt două metode de a instanția un obiect într-o pagină ASP:
(1) ‹object runat="server" id="objname" pogid="ADODB.Recordset"›
(2) objName = Server.CreateObject ("ADODB.Recordset")
Prima formulă este de fapt doar o declarare a obiectului, el urmând să fie creat în momentul primului apel către o metodă sau proprietate a lui. Astfel, dacă execuția într-un anumit context nu necesită crearea obiectului, atunci el nu va fi creat. A două formulă duce la crearea obiectului direct, chiar dacă el nu va fi utilizat.
6.8.3. Optimizarea aplicațiilor ASP.Net
Profitând de funcționalitățile oferite de cadrul software .Net Framework, mediul ASP.Net permite mai multe posibilități de optimizare în raport cu soluțiile tradiționale dezvoltate în ASP.
În primul rând, ASP.Net dispune de funcții pentru o execuție îmbunătățită a codului. Astfel, tehnologia .Net Framework integrează interpretorul Common Language Runtime (CLR). Prin intermediul acestui instrument, codul sursă este compilat în Intermediate Language (IL), iar apoi în cod nativ la prima execuție a aplicației. Codul nativ (denumit și cod binar) este specific unei anumite platforme hardware, cum ar fi familia x86 de procesoare, care este disponibilă pe majoritatea calculatoarelor personale. Când codul sursă devine cod nativ, el este salvat în memoria cache și este gata de execuție pentru viitoarele utilizări, acest lucru determinând o execuție rapidă și eficientă. Dimpotrivă, paginile ASP sunt interpretate de componenta asp.dll, acest lucru determinând o optimizare mai redusă a codului.
Tehnologia ASP.Net include un sistem evoluat, care permite înlăturarea din memoria serverului a componentelor și variabilelor care nu mai sunt solicitate de utilizatori. Această operațiune este în totalitate automatizată și nu necesită intervenții ale programatorilor în aplicațiile dezvoltate. Interpretorul CLR ține evidența memoriei alocate obiectelor, cum ar fi variabilele definite într-o aplicație. Când stabilește că un obiect nu mai are referințe asociate în aplicație, interpretorul CLR va proceda la eliberarea memoriei rezervate obiectului respectiv. De asemenea, eliminarea componentelor neutilizate din memorie se poate realiza și prin intermediul metodei GC.Collect.
6.8.4. Metode pentru accelerarea aplicațiilor ASP.Net
Accelerarea paginilor ASP.Net determină reducerea încărcării serverului, acest lucru permițând servirea mai rapidă a fișierelor salvate în memoria cache. ASP.Net include în principiu două tipuri de accelerări:
Accelerarea ieșirilor sau a paginilor Web, inclusă în premieră în ASP.Net.
Metoda clasică de accelerare a accesului la informații, care constă în salvarea datelor în memoria temporară.
În cazul primei metode, accelerarea ieșirilor permite plasarea paginilor ASP.Net dinamice într-un loc rezervat pe server și servirea lor directă către clienți. Accelerarea ieșirilor constă în specificarea intervalului de timp pentru care pagina respectivă va fi stocată în memoria cache. Pentru realizarea acestei operațiuni va trebui introdusă o singură linie de cod în debutul fișierului. Astfel, pentru menținerea paginilor pentru un interval de 10 minute în memoria temporară, va fi introdusă următoarea instrucțiune:
<% @OutputCache Duration=”600” VaryByParam=”none” %>
Accelerarea prin salvarea în cache poate fi folosită în ASP.Net și pentru partajarea obiectelor sau datelor între mai multe pagini. Ultima versiune aduce îmbunătățiri substanțiale comparativ cu aplicațiile tradiționale ASP, cum ar fi expirarea automată sau reapelarea anumitor componente. De asemenea, dependențele între obiectele salvate în memoria temporară și cele din bazele de date sau din alte surse de informație vor fi salvate la rândul lor în memoria cache. Când datele dependente sunt modificate, datele salvate în memoria cache vor fi eliminate în totalitate din memorie.
6.8.5. Optimizarea serverului de web
Serverul de web IIS dispune de mai multe funcții, care permit optimizarea generală a aplicațiilor care rulează pe baza acestuia. În acest sens, opțiunea Application Protection a serverului de web poate avea următoarele valori:
Low – aplicația rulează în același proces cu IIS-ul;
Medium – toate aplicațiile care sunt setate la această valoare rulează în același proces, altul decât cel al IIS-ului;
High – fiecare aplicație are procesul ei, astfel încât, dacă una din ele prezintă disfuncționalități la rulare, celelalte vor continua să servească clienții.
Cu cât crește nivelul de protecție al aplicației cu atât scad performanțele ei, dar crește fiabilitatea. În funcție de contextul în care este instalată aplicația, se poate face un compromis între performanță și fiabilitate.
O resursă este cerută în momentul apariției necesității ei și este eliberată imediat ce nu mai este nevoie de ea, pentru a nu încărca inutil serverul. O metodă de aplicare a acestei reguli o constituie folosirea memoriei tampon pentru generarea răspunsului:
‹%Response.Buffer = true%›
Rezultatul utilizării acestei funcții constă în minimizarea numărului de scrieri în browser, care duce la performanțe mai bune, deoarece nu se mai trimit multe pachete mici, pe care protocolul de HTTP nu le gestionează bine.
Dezavantajele acestei metode constă în folosirea unui cuantum mai mare de memorie, acest lucru fiind însă compensat de creșterea vitezei de execuție a aplicațiilor.
6.8.6. Optimizarea aplicațiilor folosind cache-ului browser-ului și proxy-ului
În mod standard, setările privind cache-ul sunt dezactivate în cazul folosirii serverului IIS. Există pagini care sunt actualizate la un interval de timp fixat. În cazul acestor pagini se poate folosi mecanismul de păstrare în cache. Astfel, serverul nu va mai fi încărcat cu sarcina de a genera aceste pagini de fiecare dată când se face o cerere către ele.
Se poate controla perioada de timp pentru care pagina e păstrată în cache folosind:
• pentru browser:
‹%Response.Expires = 10%›
‹%Response.ExpiresAbsolute = #data#%›
• pentru proxy:
‹%Response.CacheControl="Public"|"Private"|"No-cache"| "No-store"%›
Variabilele server pot fi accesate prin intermediul colecției Request.ServerVariables. Dezavantajul folosirii lor constă în faptul că, atunci când se dorește aflarea valorii uneia dintre ele, trebuie generată o cerere specială către server care colectează toate cele aproximativ 50 de valori corespunzătoare variabilelor server, nu numai pe cea dorită. Deși acest lucru se întâmplă doar prima dată când se face cererea într-o pagină, este de dorit evitarea folosirii lor.
În concluzie, dacă se dorește creșterea performanțelor este bine ca scopul să fie stabilit de la bun început, pentru ca pe parcursul dezvoltării să poată fi făcute îmbunătățiri integrate în vederea atingerii acestui scop. De cele mai multe ori spre sfârșitul unui proiect este prea târziu ca să se mai facă schimbări de arhitectură, deci testele de performanță trebuie să fie luate în considerare în programul zilnic de execuție a testelor.
În general, pentru a măsura performanțele este nevoie de un mediu de testare dedicat. Acest mediu ar trebui să includă hard-ul corespunzător, care să se asemene celui folosit în mediul în care va rula aplicația. Următoarea etapă este stabilirea unor parametri cum ar fi: numărul de utilizatori care vor accesa aplicația simultan, frecvența cererilor pe care aceștia le vor face, tipurile de pagini cel mai des vizitate. În final este nevoie de o unealtă care să poată să simuleze încărcarea aplicației.
Una din aplicațiile care pot fi folosite pentru a testa aplicațiile web este Microsoft Web Application Stress (WAS) Toolkit. WAS permite înregistrarea unor scripturi de test și apoi simularea cererilor generate de sute sau mii de utilizatori. WAS generează numeroase statistici, cum ar fi numărul de cereri pe secundă, distribuția timpului de răspuns, numărul de erori apărute.
Capitolul 7 – Dezvoltarea serviciilor Web și aplicațiile distribuite
Dezvoltarea Internetului a afectat fundamental arhitectura aplicațiilor informatice de gestiune, determinând modificări substanțiale în modalitatea de distribuție și în accesibilitatea soluțiilor din această categorie. Având în vedere aceste considerente, se poate spune că accesarea aplicațiilor economice prin intermediul unui simplu browser Web a venit în întâmpinarea necesităților unei lumi caracterizate prin dinamism și prin globalizarea fenomenelor economice.
Astfel, în anii ’90, principalul trend în dezvoltarea aplicațiilor îl constituia oferirea de suport și accesibilitate – pentru calculatoarele conectate la Internet – la o paletă cât mai largă de resurse informaționale (baze de date sau de altă natură) și aplicații. Mărturia acestui lucru îl stau multitudinea de limbaje și tehnologii care permit dezvoltarea facilă a aplicațiilor de exploatare a bazelor de date prin intermediul unui simplu browser Web. În acces sens, limbajele de scripting rulate pe parte de server (ASP și urmașul său ASP.Net; PHP; JSP etc.) sunt în prezent tehnologii mature, care oferă posibilitatea de dezvoltării unor aplicații complexe destinate Web-ului.
Cu toată existența acestor tehnologii, în ultimii ani – logic – s-au produs schimbări în ceea ce privește necesitățile informaționale sau echipamentele care sunt folosite de diverși utilizatori. Astfel, în prezent sunt conectate la Internet nu numai calculatoare, ci și o multitudine de alte echipamente, cum ar fi telefoane mobile sau dispozitive de tip hand-held. Având în vedere aceste necesități, crearea unui limbaj universal, care să fie înțeles de toate aceste echipamente deosebit de diverse, a devenit o cerință imperioasă.
XML este răspunsul la aceste solicitări, constituind practic o nouă etapă în evoluția erei informaționale, ușurând schimbul datelor între echipamente dintre cele mai diverse. În afara posibilității de a transfera date pe această gamă de platforme eterogene, s-a ivit necesitatea creării unor mijloace capabile a constitui modul de comunicare între cele mai diverse aplicații. Răspunsul la aceste priorități îl constituie tehnologia Web Services, aceasta constituindu-se în instrumentul cel mai eficient de comunicare între aplicații via Internet.
7.1. Proiectarea sistemelor distribuite
Proiectarea sistemelor distribuite constă în descrieri realizate la diverse nivele de abstractizare. Principiile generale de proiectare a sistemelor distribuite sunt următoarele:
Proiectarea logică este independenta de arhitectură;
Sistemul distribuit este un sistem coordonat;
Localizarea datelor este transparenta pentru utilizator, în funcție de limitele impuse de condițiile de durabilitate;
Arhitectura fizică este constituită ca un pachet de servicii;
Conceptele relative la distribuire sunt identificabile în modelul logic.
7.1.1. Caracteristici generale ale sistemelor distribuite
Există o serie de aspecte care diferențiază proiectarea arhitecturilor distribuite de alte metodologii de proiectare a sistemelor informatice. Aplicațiile client corect proiectate nu codifică detalii referitoare la modul și locul în care datele fizice sunt stocate și administrate, nici nu execută operații low-level asupra datelor.
Caracteristicile generale ale proiectării aplicațiilor distribuite sunt urmatoarele:
Sistemul utilizează resursele minime, ceea ce permite o dezvoltarea ulterioara a sistemului mult mai ușor;
Conexiuni de rețea – serverul este conectat cu clientul prin intermediul unei rețele LAN/WAN/MAN. Sistemele distribuite corect proiectate nu consuma resurse semnificative pe cablu. În general, interogările SQL scurte sunt transmise server-ului, iar răspunsurile transmise de acesta sunt constituite ca seturi de date de dimensiuni reduse;
Stații de lucru operaționale – în arhitecturile distribuite mașina de calcul client nu execută aplicații complexe, aplicația client fiind destinată în primul rând afișării rezultatelor interogărilor și preluării datelor de la utilizator prin intermediul unei interfețe vizuale. În concluzie, aceste stații de lucru pot fi dotate cu procesoare de viteză scăzută;
Reducerea resurselor necesare. O aplicație distribuită trebuie să fie proiectată astfel încât să minimizeze încărcarea resurselor, sau să evite un timp de răspuns prea mare;
Utilizarea în comun a datelor, procedurilor și hardware-ului. Un sistem distribuit depinde de comportamentul clienților, fiecare utilizând în comun cu serverele aceleași resurse (proceduri de stocare, RAM, capacitatea de rețea, etc.).
Cel mai important instrument utilizat în etapa de proiectare este modelul aplicație. Rolul său constă în dirijarea procesului de construire a software-ului prin organizarea și gruparea cerințelor, prin identificarea modului în care interacționează și se echilibrează seturile de cerințe. Pe baza unor astfel de modele, proiectarea și apoi implementarea aplicației se poate realiza în condiții de certitudine în ceea ce privește acoperirea întregii specificații a sistemului.
7.1.2. Proiectarea sistemelor distribuite
Aplicațiile de tip three-tier și n-tier sunt dezvoltate, în general, pe baza componentelor. Fiecare din nivelele aplicației conțin propriile componente, implementate astfel încât sa rezolve sarcinile specifice nivelului respectiv.
Termenul "componentă" reprezintă o noțiune controversată, fiind de multe ori folosit ca sinonim pentru obiectele economice complexe. Există însă o serie de diferențe importante între cele două concepte:
Obiectele sunt create ca instanțe ale claselor. Clasa este cod sursă care definește datele obiectului precum și metodele de manipulare a acestora;
Componentele sunt cod binar precompilat. Fiind precompilate, componentele sunt independente de limbajul în care au fost implementate
La un nivel mediu, putem defini componenta ca fiind un grup de obiecte precompilat. O parte din aceste obiecte vor fi utilizate de către programe client (obiecte publice), în timp ce altele sunt destinate exclusiv operațiilor din interiorul componentei (obiecte private). Componenta este deci similara unei aplicații de dimensiuni mici, având în plus capacitatea de a-și pune funcționalitatea la dispoziția altor aplicații.
Aplicațiile distribuite conțin, în general, trei tipuri de componente:
Componente standard – care oferă o funcționalitate foarte larga, fiind utilizabile și necesare într-o gamă variată de aplicații (, ROD etc.);
Componente specifice aplicației – sunt construite și implementate pentru satisfacerea cerințelor specifice ale unei aplicații, fără a fi destinate uzului general;
Componente specifice unei arii de activități (verticale) – sunt componente a căror țintă este o industrie anume sau domeniu economic specific. Acest tip de componente este încă destul de rar întâlnit, dar eforturile de dezvoltare a pieței în această direcție sunt abia la început. Produse de tipul sistemelor contabile sau de gestiune pot fi utilizate ca și componente într-un sistem mai larg, dacă au fost proiectate să asigure o interfață publică.
Daca dezvoltarea independentă a componentelor nu ridică probleme deosebite, rezolvarea problemelor de interacțiune între componente, de comunicare între diferitele module ale aplicației, devine obiectivul central al proiectării.
Modalitățile de interconectare a componentelor sunt variate, ele cuprinzând atât tehnologii care nu conțin mecanisme de definire a interfețelor, cât și produse complexe, care asigura mecanisme atât pentru construirea interfețelor cât și pentru realizarea conexiunilor. Din prima categorie fac parte:
Accesul comun la baze de date componentele interacționează prin intermediul înregistrărilor din baza de date;
TCP/IP, protocol de rețea;
Pipe, tehnică de comunicare între procese bazata pe stream-uri, specifică sistemului de operare Unix;
Semnalele și evenimentele inter-procese suportate de sistemele de operare Apple, Windows, Unix;
Transferul de fișiere pe baza protocolului TCP/IP.
Tehnicile mai avansate conțin în plus și mecanisme de dezvoltare a interfețelor.
RMI (Remote Method Invocation) este un mecanism pentru transmiterea de mesaje între obiecte care se execută pe calculatoare conectate la Internet. În prezent este specific implementărilor Java;
RPC (Remote Procedure Call) reprezintă o interfață orientată spre proceduri destinate comunicării la nivel de socket, fiind un instrument destul de puternic în dezvoltarea aplicațiilor client/server;
COM, și COM+ sunt standardele Microsoft pentru comunicații între aplicațiile Windows. Programul poate fi scris în diferite limbaje și poate fi plasat pe diferite calculatoare;
CORBA – Este standardul OMG pentru comunicații între componente orientate-obiect. Este similar COM-ului, dar are avantajul de a nu fi restricționat la Windows;
Web services – o tehnologie care va fi tratată într-o secțiune dedicată a acestui capitol.
Proiectarea unei aplicații construită prin componente se realizează în trei etape fundamentale.
Proiectarea conceptuală transformă cerințele utilizatorului într-un format accesibil nivelului de proiectare logică, definind problema economică și funcțiile necesare pentru rezolvarea ei. Etapa presupune definirea unui număr mare de scenarii economice sau de utilizare, destinate identificării cât mai complete a viziunii clientului asupra aplicației, precum și a funcționalității cerute.
Aceasta fază reprezintă punctul central al modelării economice și nu tratează tehnologiile necesare implementării sistemului.
În timpul stabilirii cerințelor pe care o aplicație trebuie să le satisfacă, este indicată analiza problemelor referitoare la performanță, mediu, eventuala integrare și interacțiune cu sistemele existente, protocoale de comunicație, restricții hard sau soft, roluri ale utilizatorilor și drepturi de acces, localizarea datelor și relația lor cu clientul, cerințe de criptare, integritate și protecție a datelor.
Proiectarea logică definește entitățile, atributele, acțiunile și interacțiunile dintre entități, fiind de obicei cea mai complexă etapa a dezvoltării aplicației. După identificarea utilizatorilor, a serviciilor de date precum și a componentelor economice ale sistemului, se poate trece la etapa de construire a componentelor. Este indicat ca primele componente care se implementează să corespundă nivelului cel mai de jos al sistemului (accesul la date, servicii de mesagerie, etc.). Următoarele candidate la implementare sunt serviciile care sunt cele mai avantajate de plasarea într-un spațiu de proces sau într-un calculator separat de aplicația client (generare de rapoarte, proceduri complexe de calcul, servicii de fax etc).
Procesul de proiectare a componentelor este la rândul lui separat în trei nivele: construirea arhitecturii componentelor, proiectarea interfețelor și construirea produsului. În prima etapă se definesc elementele de bază ale funcționarii componentei, precum și modul în care acestea vor fi cuplate și vor interacționa. Pentru asigurarea unei flexibilități maxime a sistemului, comportamentele variate ale produselor finale trebuie mapate corespunzător peste componente software. De asemenea, se impune definirea unui limbaj comun de comunicare între componentele bazate pe un model din domeniul aplicație, precum și evaluarea problemelor fizice care pot conduce la distorsiuni în comunicare după distribuirea fizică. Proiectarea interfețelor constă în definirea proprietăților de stare și comportament ale fiecărei entități în parte, astfel încât acestea să fie capabile să funcționeze într-o varietate de configurații și contexte. În ultima fază componentele sunt asamblate pentru a forma sistemul.
Există situații în care se pot utiliza diverse instrumente de construire a produselor. Astfel, obiectele interfeței grafice (GUI) se pot asambla fie prin cod program, fie prin utilizarea unor medii de programare vizuala (VisualAge, C++Builder, etc).
În faza de proiectare fizică se iau deciziile referitoare la localizarea aplicațiilor și a serviciilor peste nodurile sistemului și corespunzător acestei plasări, la modul în care componentele vor fi implementate fizic. O regulă de bază constă în plasarea fiecărei entități la locul în care ea este utilizată (componentele care lucrează cu bazele de date vor fi plasate pe serverul de baze de date, cele care validează informațiile utilizatorului vor fi alocate mașinii clientului). Există, desigur considerații suplimentare (constrângeri de securitate și performanță) care pot conduce la excepții de la aceasta regulă.
Deoarece componentele sunt independente din punctul de vedere al localizării, modelul de distribuție a serviciilor poate fi separat complet de proiectarea logică și fizică a interfețelor aferente. Mai mult, în decursul timpului acest model se poate modifica, fără ca această operațiune să afecteze sursele client sau server. După ce componenta a fost construită, există patru variante de distribuire a acesteia – în interiorul proiectului client, într-un automation server de tip in-process (DLL), într-un automation server de tip out-process (EXE) sau într-un automation server de tip remote (EXE pe un calculator aflat la distanță).
7.2. Serviciile Web
Serviciile Web constituie metoda cea mai modernă de realizare a aplicațiilor distribuite. Folosind protocolul HTTP și limbajul XML, tehnologii fundamentale care stau la baza Internetului, serviciile Web permit distribuția aplicațiilor pe absolut orice platformă utilizată.
În cadrul prezentului referat vom încerca să trecem în revistă avantajele fundamentale ale utilizării serviciilor Web în dezvoltarea sistemelor informatice de gestiune. Pentru a ilustra practic această lucrare, vom consolida prezentarea teoretică a arhitecturii acestei tehnologii cu un exemplu de dezvoltare a unei aplicații de tip Web Services. Drept platformă de dezvoltare a acestei aplicații a fost folosit completul mediu de dezvoltare Microsoft Visual Studio.Net.
7.2.1. Serviciile Web – concept
Serviciile Web sunt o modalitate standardizată de distribuție a aplicațiilor care folosește Internetul și tehnologiilor fundamentale ce stau la baza acestei rețele. De asemenea, serviciile Web oferă posibilitatea de interconectare a unei palete vaste de aplicații disponibile pe diferite platforme și în diverse locații de pe glob. În acest mod, se poate spune că serviciile Web s-au constituit într-un esperando al comunicației între aplicații, noua tehnologie deschizând larg poarta spre o nouă eră a informaticii, dominată de aplicații cu un grad ridicat de inteligență, capabile să ia decizii și să caute informații pe Internet ca suport pentru hotărâri cât mai judicioase.
Astfel, presupunând că dorim a construi un sistem expert bursier care să gestioneze un portofoliu de acțiuni, este necesar să avem în vedere faptul că un asemenea sistem nu poate funcționa fără actualizarea permanentă a cotațiilor bursiere aferente acțiunilor incluse în respectivul portofoliu. În plus, luarea unei decizii optime de cumpărare sau vânzare este o chestiune care se măsoară de cele mai multe ori în minute, acest considerent influențând substanțial eficiența sistemului expert realizat. Dacă acum un deceniu acest sistem informatic era foarte complicat de dezvoltat datorită lipsei unor mijloace eficiente de comunicație între aplicații, astăzi, având în vedere apariția serviciilor Web, acest lucru s-a simplificat substanțial. În acest sens, va trebui dezvoltat în mod clasic sistemul expert de gestionare a portofoliului de acțiuni urmând ca legătura cu exteriorul să se realizeze folosindu-se tehnologia care face obiectul acestei teze. În acest sens, datele care includ cotațiile vor fi transmise via Internet prin intermediul unui serviciu Web realizat de către bursa de valori. Folosindu-se funcțiile și procedurile expuse de serviciul Web al bursei, vor putea fi transmiși parametrii care includ codurile acțiunilor aferente portofoliului deținut, sistemul informatic al bursei returnând informațiile solicitate, care pot fi încorporate în baza de date a sistemului expert realizat. În plus, toate funcțiile expuse de sistemul bursei de valori vor putea deveni parte integrantă a aplicațiilor realizate, putând fi apelate întocmai ca procedurile similare dezvoltate. În aceste condiții, se va putea programa consultarea automată a cotațiilor bursiere și actualizarea permanentă a bazei de date locale.
Lucrurile pot merge mai departe, existând posibilitatea de a include un serviciu Web al societății de brokeraj care să permită sistemului expert nu numai luarea deciziei optime, ci și executarea în timp real a ordinului de vânzare – cumpărare al acțiunilor. Se poate observa cu ușurință din acest exemplu automatizarea totală a comunicării între aplicații, intervenția umană nefiind necesară pe parcursul întregului flux informațional. Această informatizare a tuturor fluxurilor economice prin intermediul serviciilor Web contribuie indubitabil și decisiv la eliminarea a erorilor umane.
Figura 7.1. Modul de operare al serviciilor Web.
7.2.2. Tehnologiile care stau la baza serviciilor Web
Serviciile Web sunt construite pe baza unor tehnologii fundamentale pentru funcționarea Internetului. În acest sens, pentru transmiterea informațiilor via Internet, aceste soluții folosesc protocolul standard HTTP (HyperText Transfer Protocol), iar datele transferate sunt încapsulate în fișiere XML. În acest mod, având în vedere că ambele tehnologii constituie elemente de bază specifice funcționării Internetului, ele vor asigura accesibilitatea aplicațiilor pe orice platformă disponibilă.
Spre deosebire de serviciile Web, predecesoarele acestora în conectarea la aplicații via Internet aveau principalul dezavantaj de a nu oferi o arie de portabilitate tot atât de ridicată. Tehnologiile DCOM și CORBA nu erau acceptate de totalitatea producătorilor de soluții IT&C, acest lucru determinând reducerea ariei de utilizare a acestora. Având în vedere eterogenitatea rețelei Internet, este necesar ca o tehnologie să fie acceptată de o paletă cât mai largă de utilizatori pentru a putea căpăta statutul de tehnologie universală pentru Internet.
În plus, tehnologiile DCOM și CORBA folosesc fișiere binare pentru transferul datelor și comunicarea între aplicații, acest lucru contribuind la o portabilitate mai scăzută a acestor tehnologii. Spre deosebire de acestea, serviciile Web utilizează pentru transferul datelor limbajul XML care constă în fapt în utilizarea unor simple fișiere text, în acest mod asigurându-se o arie de portabilitate maximă.
Nu în ultimul rând, serviciile Web utilizează pe servere portul 80 asignat în mod standard protocolului HTTP. Comparativ, celelalte două tehnologii alternative folosesc protocoale proprii pentru transmisia datelor, acest lucru determinând necesitatea deschiderii unor porturi suplimentare pe serverul de aplicații. În aceste condiții, într-o lume dominată de necesitatea unui nivel tot mai ridicat de securitate a sistemelor informatice, acest neajuns al tehnologiilor CORBA și DCOM poate avea un impact negativ asupra întregii arhitecturi a sistemelor informatice.
În concluzie, se poate considera că răspândirea în ultimii ani a serviciilor Web este o rezultantă a compatibilității acestora cu două tehnologii unanim acceptate reprezentate de protocolul HTTP și limbajul XML. Având în vedere aceste avantaje, specialiștii de la IDC (companie de sondaj și analiză a domeniului IT&C) consideră că serviciile Web vor constitui modalitatea fundamentală de distribuție a aplicațiilor, surclasând toate celelalte tehnologii alternative.
7.2.3. Arhitectura serviciilor Web
În primul rând, este necesar a preciza că serviciile Web sunt o modalitate standardizată de consorțiul . Această organizație este formată din instituții comerciale și educaționale și are ca principal obiectiv standardizarea tehnologiilor și asigurarea uniformității la nivelul Internetului.
Având în vedere standardizarea serviciilor Web de o organizație unanim acceptată cum este consorțiul Web, s-a atribuit acestei tehnologii titulatura de universală. Serviciile Web, indiferent de tipul platformei de dezvoltare (Microsoft, , HP sau Oracle), respectă același set de standarde, acest lucru asigurându-le adaptabilitate și posibilitatea de integrare cu cele mai diverse platforme software.
În esență, această tehnologie este “clădită” pe trei elemente fundamentale care-i permit integrarea și adaptarea funcțiilor specifice.
Primul element este reprezentat de protocolul (Simple Object Access Protocol), acesta fiind bazat pe limbajul XML și având următoarele caracteristici funcționale:
controlul transferului de pachete de date între furnizorul de servicii Web și utilizatorul acestora utilizând protocolul HTTP (metode GET sau POST) pentru transferul pachetelor de date între server și utilizator;
transferul parametrilor stabiliți de utilizator și specifici funcțiilor accesibile prin intermediul serviciului Web;
returnarea rezultatelor rulării funcțiilor pe serverul care furnizează serviciul Web, aceste rezultate fiind în realitate seturi de date care au fost transpuse în fișiere XML.
Al doilea element care stă la baza serviciilor Web este reprezentat de WSDL (Web Services Description Language). WSDL este la rândul lui bazat pe limbajul XML, având rolul de a informa potențialii utilizatori ai serviciului Web în legătură cu elementele specifice acestuia. Astfel, prin intermediul WSDL se pot afla informațiile legate de funcțiile expuse de serviciul Web, precum și cele legate de parametrii ce pot fi asignate acestora.
Ultimul element care stă la baza serviciilor Web este reprezentat de UDDI (Universal Discovery Description and Integration). UDDI are o funcție asemănătoare motoarelor de căutare disponibile pe Web, permițând utilizatorilor căutarea serviciilor Web pentru necesitățile proprii. UDDI folosește informațiile de descriere a serviciului Web stabilite prin intermediul limbajului WSDL în scopul oferirii potențialilor utilizatori a unei modalități eficiente de căutare, completată cu un set de informații de utilizare a serviciului Web.
7.2.4. Modul de operare al serviciilor Web
În ceea ce privește modalitatea de operare a serviciilor Web, sunt necesare o serie de precizări. Astfel, în prealabil vom vedea cine sunt participanții implicați în procesul de utilizare a serviciului Web:
Furnizorul de servicii Web este primul participant la acest proces. Furnizorul pune la dispoziție potențialilor utilizatori o funcționalitate reprezentată de serviciul Web;
Consumatorul de servicii Web este reprezentat de utilizatorul care accesează respectivul serviciu Web și îl integrează în aplicațiile sale;
Între cei doi participanți este posibil să apară și un intermediar, reprezentat de registrul UDDI, care permite consumatorului să-și găsească furnizorul de servicii care oferă setul de funcționalități specific necesităților proprii.
Considerând definite aceste elemente teoretice, vom trece la expunerea unui studiu de caz, reprezentat printr-o modalitate practică de dezvoltare și utilizare a serviciilor Web. În acest sens, vom presupune că o societate comercială producătoare de materiale de construcții utilizează un sistem informatic de gestiune din categoria ERP (Enterprise Resource Planning). Sistemul informatic utilizat de această companie se bazează pe o arhitectură standard client-server, care are ca element central un server de baze de date MS-SQL Server. Majoritatea clienților acestei societăți sunt reprezentați de antreprizele de construcții – montaj, acestea sugerând companiei producătoare să le ofere o posibilitate de consultare permanentă a prețurilor produselor finite. În plus, antreprizele de construcții doresc să includă în sistemele informatice proprii datele legate de prețurile actualizate ale materialelor de construcții, asigurând în acest fel o modalitate eficientă de modificare în timp util a devizelor estimative de construcții.
Pentru punerea în practică a acestor doleanțe, compania producătoare de materiale de construcții își propune să dezvolte un serviciu Web care să ofere clienților săi posibilitatea de integrare a funcționalităților de interogare a nomenclatorului care include prețurile produselor. În acest mod, va putea fi oferită antreprizelor de construcții posibilitatea cunoașterii permanente a prețurilor aferente diverselor categorii de produse finite. În plus, funcțiile expuse de serviciul Web vor putea fi integrate în aplicațiile proprii utilizate de fiecare companie de construcții, acestea permițând programarea automată, la intervale determinate de timp, a actualizărilor privind informațiile asupra prețurilor practicate. Transferul între cele două baze de date (cea a companiei producătoare și cea a antreprizei de construcții) se va realiza în mod eficient utilizându-se limbajul XML. Utilizarea limbajului XML determină o interoperabilitate crescută, astfel că nu vor exista restricții în ceea ce privește platformele pentru care sunt utilizate cele două sisteme informatice.
7.2.5. Cerințele pentru dezvoltarea și rularea serviciilor Web
În ceea ce privește dezvoltarea serviciilor Web, Visual Studio.Net este mediul ideal pentru dezvoltarea aplicațiilor complexe din această categorie. Alături de acest mediu există și o variantă gratuită, WebMatrix, dezvoltată tot de Microsoft, care, cu toate că nu oferă setul complet de facilități, este un mediu acceptabil de dezvoltare a serviciilor Web. Pentru testarea și publicarea serviciilor Web pe calculatorul personal sau pe un server dedicat, este necesară instalarea următoarelor componente:
Serverul de web Microsoft Internet Information Server 5 (IIS). Această componentă este accesibilă pentru utilizatorii care folosesc Windows 2000 (Workstation sau Server), Windows XP Professional sau Windows Server 2003.
.Net Framework disponibil gratuit și care pot fi descărcate de pe site-ul Microsoft. În situația în care este folosită o distribuție Visual Studio .Net, există posibilitatea de a instala această componentă pe CD-ul inclus în cadrul acestei suite.
7.2.6. Dezvoltarea propriu-zisă a serviciilor Web
Pentru dezvoltarea programelor clasice Windows sau pentru crearea aplicațiilor specifice Internetului, Visual Studio .Net oferă o interfață unitară. În acest sens, pentru dezvoltarea serviciului Web propus ca exemplu practic pentru acest studiu de caz este necesară realizarea următoarelor operațiuni succesive:
a. Crearea proiectului serviciului Web. În momentul în care se creează un proiect .Net există posibilitatea de a se alege tipul de aplicație căruia va fi dedicat. În plus, în cazul proiectului ASP.Net Web Services, este necesară și stabilirea serverului de Web pe care va fi accesibil serviciul Web.
b. Stabilirea elementelor specifice conexiunii la baza de date. Visual Studio .Net pune la dispoziție un set complet de instrumente pentru gestionarea eficientă a conexiunii cu mai multe sisteme de gestiune a bazelor de date. Menționăm aici setul de obiecte ADO.Net, bazat exclusiv pe limbajul XML, alături de acesta fiind disponibil și un set de instrumente vizuale care permit stabilirea simplificată a parametrilor acestei conexiuni. Menționăm controalele OLEDBConnection, OLEDBCommand și Dataset – instrumente simplu de configurat prin “vrăjitori”. Alături de aceste instrumente amintim și utilul tool-bar Server Explorer, el oferind acces la diverse componente ale bazei de date MS SQL Server. Suplimentar, elementele incluse în fereastra Server Explorer vor putea fi adăugate ușor în aplicațiile dezvoltate, prin simple operațiuni drag&drop. În situațiile în care nu se dorește utilizarea instrumentelor vizuale disponibile în mediul Visual Studio.Net, există posibilitatea de a realiza instrucțiunile de conectare și exploatare prin intermediul limbajului de programare utilizat în cadrul proiectului specific.
Iată configurația funcției aferente serviciului Web propusă drept exemplu. Am utilizat limbajul Visual Basic.Net, procedura expusă prin intermediul serviciului Web utilizând drept parametru de selecție codul unui anumit produs:
Imports System.Web.Services
Imports System.Data
Imports System.Data.SqlClient
Public Function Actiune(ByVal strCod As String) As DataSet
Dim Myconnection As SqlConnection
Dim Mycommand As SqlDataAdapter
Dim ds As New DataSet()
Dim strSQL As String
strSQL = "select cod_produs,denumire,calitate,pret form produse where cod_produs=" & strCod & " ' "
Myconnection = New SqlConnection("server=mot;uid=sa;pwd=;database=pubs")
Mycommand.Fill(ds, "Produse")
Return ds
Myconnection.Close()
End Function
c. Stabilirea metodelor publicate prin intermediul serviciului Web. Visual Studio.Net permite stabilirea foarte simplă a metodelor care vor fi accesibile prin intermediul serviciului Web. În acest sens, distincția între procedurile proprii aplicației realizate și cele care vor fi expuse pe Web se face prin introducerea cuvântului Webmethod în debutul declarațiilor funcției.
d. Rularea și testarea serviciului Web. Prin selecția butonului Run, serviciul Web va fi rulat, modul de funcționare al funcțiilor publicate putând fi testat în browserul Web. De asemenea, pentru înlăturarea eventualelor erori de programare, vor putea fi utilizate instrumentele de depanare specifice (figura 7.2.).
Figura 7.2. – Testarea serviciilor Web în browser.
E. Integrarea serviciilor Web în cadrul aplicațiilor clienților. Pentru integrarea serviciului în aplicațiile utilizate în cazul exemplului nostru, de antreprizele de construcții, Visual Studio.Net necesită crearea unei clase proxy. Această clasă are ca principală funcțiune stabilirea de conexiuni la server și realizarea comunicației eficiente cu acesta.
7.2.7. Concluzii și avantajele serviciilor Web
Trăim într-o lume dominată de necesitatea unei interoperabilități între diverse sisteme informatice, disponibile pe diverse platforme. În aceste condiții, serviciile Web constituie tehnologia capabilă să rezolve eficient această problemă. Simplitatea serviciilor Web (simplitate care este o rezultantă a compatibilității cu tehnologiile de bază ale Internetului) asigură acceptarea universală a acestei soluții ca mod de comunicare între aplicații. În plus, dezvoltarea relativ simplă a acestor elemente va contribui în mod indubitabil la propagarea acestora.
7.3. Aplicații pentru dispozitivele mobile
Aplicațiile pentru dispozitivele mobile s-au impus odată cu apariția WAP-ului. Au mai existat și înainte încercări de impunere a unor standarde, dar acestea nu au avut succesul scontat în încercarea lor de a cuceri piața. Tehnologia WAP (Wireless Application Protocol) nu a putut fi considerată în totalitate un succes. Inexistența unui standard acceptat de toți producătorii de telefoane mobile și imposibilitatea de dezvoltării unor aplicații complexe destinate domeniului afacerilor au umbrit din valoarea acestei soluții
Mobile .Net Framework este o tehnologie capabilă să rezolve problemele de acest tip, oferind un mediu solid pentru dezvoltarea aplicațiilor pentru dispozitivele amintite.
7.3.1. Mobile .NET & Compact .NET Framework
În paralel cu pregătirea tehnologiei .NET Framework și a mediului Visual Studio .NET, Microsoft a mai dezvoltat și un proiect numit "Mobile Internet Toolkit". Microsoft a realizat un mediu în care o aplicație este dezvoltată o singură dată, într-o singură versiune, independent de tipul dispozitivului pe care va rula.
Microsoft a conturat două direcții principale de dezvoltare în ceea ce privește aplicațiile mobile. Mobile Web Application, care continuă tendința pieței, în care aplicațiile mobile sunt privite prin prisma soluțiilor distribuite, având nivelul business și date pe server, iar pe dispozitive aflându-se doar nivelul de prezentare (interfața cu utilizatorul). În cea de a doua perspectivă, .NET Compact Framework este menit să ruleze aplicații independente pe dispozitive mobile care au instalat sistemul de operare Windows CE.
7.3.2. Mobile WEB Application
Pe echipamentele mobile se găsesc navigatoare capabile să interpreteze documentele de tip WML, cHMTL sau HTML. Aceste echipamente trebuie să se conecteze la un server, de unde să realizeze transferul documentelor.
Pe latura server, Microsoft a folosit Internet Information Services (IIS), împreună cu .NET Framework. Această infrastructură pentru aplicațiile WEB este folosită și pentru aplicațiile WEB Mobile. Când clientul solicită o pagină cu extensia ASP, atunci serverul IIS încarcă pagina în memorie și interpretează scriptul VBScript sau JScript din pagină, script care apoi este rulat de mașina de scripting, iar rezultatul execuției este trimis clientului.
Pentru a folosi Visual Studio la dezvoltarea Mobile Web Application este nevoie să se instaleze un add-on numit "Microsoft Mobile Internet Toolkit", acesta fiind și un add-on al .NET Framework (poate fi descărcat gratuit de pe site-ul Microsoft).
Add-on-ul pune la dispoziție un set bogat de clase pentru construirea aplicațiilor mobile, având toate facilitățile de care sunt capabile navigatoarele existente cu suport WML, cHTML și HTML. Aceste clase sunt însoțite de Mobile Internet Controls Runtime – implementarea efectivă a claselor. Microsoft Mobile Internet Toolkit extinde ASP.NET pentru aplicațiile Web Mobile, fiind folosind însă un alt set de controale decât pentru Web Applications, dedicate interpretării și funcționării pe echipamente mobile.
Capitolul 8 – Sistem informatic de asistare a deciziilor de grup în contextul tehnologiilor client-server
Soluțiile informatice dedicate asistării deciziilor au devenit o componentă indispensabilă pentru realizarea eficientă a proceselor de management specifică companiilor. Complexitatea fenomenelor economico-financiare, volumul tot mai mare de informații acumulate în bazele de date și necesitatea analizei eficiente a acestora sunt doar câteva din cauzele care au determinat expansiunea aplicațiilor de tip SIAD.
Asistarea deciziilor prin instrumente specifice tehnicii de calcul a început în urmă cu circa 25 de ani și a fost justificată inițial de erorile frecvente datorate persoanelor implicate în procesul decizional. Din punct de vedere al deciziilor, managerul trebuie să identifice și să inițieze schimbările, să rezolve alocarea resurselor, tot el îndeplinind rolul de negociator. Scopul sistemelor informatice de asistare a deciziilor constă în reducerea costurilor, mărirea potențialului de creștere a afacerii și automatizarea sau asistarea procesului decizional.
Avantajele introducerii sistemelor soft în asistarea deciziilor constau în culegerea și prelucrarea rapidă a unui volum mare de date, utilizarea metodelor și modelelor economico-matematice riguroase în analiza și interpretarea informațiilor. În plus, pot fi realizate și corelații multiple între elementele și fenomenele caracteristice situațiilor decizionale analizate. Aceste corelații oferă posibilitatea unor analize complexe și a prezentării într-o manieră deosebit de sugestivă pentru decident. Actualmente principalele limite ale sistemelor de asistare a deciziei țin de imposibilitatea de a se substitui complet și perfect raționamentului uman și de gradul redus în care iau în considerare incertitudinea mediului economic, dar totul este perfectibil și pentru acest lucru se lucrează intens.
În cadrul acestui capitol vor fi expuse elementele definitorii ale unui sistem informatic de asistare a deciziilor în raport cu alte sisteme informatice economice. De asemenea, vor fi trecute în revistă elementele fundamentale privind proiectarea, dezvoltarea și implementarea sistemului informatic propus ca suport pentru această teză.
8.1. Sisteme de asistare a deciziei (SIAD)
Primele realizări în domeniul sistemelor de asistare a deciziei au apărut în anii ‘70 în Statele Unite, odată cu dezvoltarea primelor sisteme logice interactive orientate către aplicații financiare. În această perioadă, deosebit de populare au fost limbajele specializate pentru aplicații financiare, al căror prototip a fost IFPS („Interactive Financial Planing Systems”).
Sistemele de asistare a deciziilor au fost privite cu interes de către diverse companii IT, lucru care a condus, logic, la dezvoltări importante ale soluțiilor din această categorie. În acest sens, soluțiile de tip SIAD au fost încorporate în cadrul sistemelor interactive pentru manageri, fiind integrată totodată o interfață tot mai “prietenoasă” pentru această categorie de aplicații.
Nu a trecut foarte mult timp până în momentul când realizatorii acestor sisteme și-au pus problema introducerii unui regim conversațional om-calculator, a cărui apariție a condus la obținerea unei legături între capacitatea de procesare a calculatoarelor și raționamentul decidentului. Utilizarea soluțiilor SIAD a permis modificarea interactivă a valorii parametrilor, efectuarea unor analize detaliate și luarea deciziilor optime pentru afacere.
Realizate de către persoane interesate în special de domeniul aplicațiilor, sistemele de asistare a deciziei au ridicat experților în domeniu două probleme principale: construirea unui model conceptual al sistemului de asistare a deciziei, respectiv identificarea funcțiilor și a metodologiei de realizare a sistemelor suport de decizie și a instrumentelor soft care să permită dezvoltarea acestora. În intervalul scurs de la aceste încercări de pionierat, sistemele de asistare a deciziei au cunoscut o evoluție și o perfecționare continuă. Astăzi ele vizează principalele probleme decizionale la nivelul firmelor, băncilor și a altor instituții financiare majore.
8.2. Elementele definitorii ale unui SIAD
Spectrul sistemelor reunite sub denumirea SIAD este foarte larg: de la SIAD cu o complexitate redusă, care sprijină deciziile repetitive pe baza unor proceduri și formate predefinite, la SIAD generale, bazate pe programe de calcul tabelar, SGBD-uri și pachete de aplicații grafice. Ultima generație de SIAD este reprezentată de sisteme complexe care vizează domenii clar delimitate și se bazează pe simulare, modele de optimizare, prelucrare analitică on-line și depozite de date.
În general, soluțiile SIAD dezvoltate pentru a rezolva probleme complexe, care apar în mod constant în cadrul unei organizații, se numesc SIAD instituționale. Sistemele suport care rezolva probleme simple, cu caracter sporadic, au denumirea de SIAD ad-hoc. Marea majoritatea a SIAD sunt dezvoltate pentru a asista fie deciziile caracteristice unei anumite ramuri/subramuri (bănci, linii aeriene), fie pentru a oferi suport unei anumite arii funcționale (marketing, financiar, producție)
Caracteristicile fundamentale ale SIAD, care le individualizează de celelalte tipuri de sisteme informatice pentru conducere, sunt următoarele:
SIAD se bazează pe modele standard sau definite de utilizator. Capacitățile de modelare ale sistemului favorizează experimentarea, în contextul mai multor configurații;
SIAD poate asista mai multe decizii interdependente și/sau secvențiale, având în vedere faptul că în practica economică majoritatea covârșitoare deciziilor sunt intercorelate;
Asistarea deciziilor se poate realiza la toate nivelurile de conducere, de la manageri operaționali la manageri de vârf, atât individual cât și pentru grupurile de lucru;
SIAD asistă deciziile, cu precădere cele privind situațiile semistructurate și nestructurate, combinând cunoștințele și intuiția umană cu viteza de procesare a calculatorului;
SIAD susține toate fazele procesului decizional și poate fi adaptat diverselor stiluri decizionale;
SIAD este adaptabil în timp. Decidentul trebuie să aibă un comportament reactiv în utilizarea SIAD, să sesizeze schimbarea condițiilor și să adapteze corespunzător sistemul;
Un SIAD ad-hoc poate fi definit cu ușurință de către utilizator, pe baza unui mediu de dezvoltare “prietenos”, flexibil, cu capacități grafice puternice și interfața adaptată utilizatorilor neprofesioniști;
SIAD promovează învățarea și înmagazinarea de noi cunoștințe, ceea ce conduce la cerințe noi și la rafinarea sistemului;
SIAD include diferite mijloace de analiză, de la obișnuitul "What if" la elaborarea și selectarea scenariilor.
8.3. Componente ale SIAD
Sistemele suport de decizie sunt constituite din module software pentru gestionarea bazelor de date, gestionarea dialogului și a modelelor. SIAD-urile avansate conțin suplimentar și o componentă pentru gestionarea cunoștințelor, fundamentată pe un sistem expert și care îi conferă fie atributul de inteligent, fie de SIAD bazat pe cunoștințe.
A. Componenta de gestiune a datelor
Aceasta componentă este alcătuită din baza de date a SIAD, dicționarul bazei de date și din facilitățile de interogare. Baza de date poate include tranzacții interne, alte surse de date, date externe și date personale aparținând unuia sau mai multor utilizatori. Datele interne (financiare, contabile, din domeniul producției, a marketing-ului) provin din prelucrarea rezultatelor tranzacțiilor interne ale organizației. Datele externe includ diferite cercetări în domeniul marketing-ului, reglementări guvernamentale, indicatori macroeconomici, iar datele private pot include reguli specifice decidenților.
Dicționarul bazei de date este un catalog al tuturor datelor din baza de date, care conține definițiile acestora și are ca funcție principală furnizarea informațiilor cu privire la disponibilitatea, sursa și semnificația lor exactă. Utilizarea acestui catalog este indicată în faza de identificare și definire a procesului de luare a deciziilor, prin scanarea datelor și identificarea tuturor domeniilor și oportunităților.
Facilitățile de interogare reprezintă elementul esențial pentru accesul la date. Ele acceptă cereri de date de la alte componente ale SIAD, determină care dintre acestea pot fi soluționate, formulează cereri detaliate și returnează rezultate cu privire la subiectul cerut. Facilitățile de interogare presupun existenta unui limbaj special de interogare, specific fiecărei soluții de tip SIAD.
B. Componenta de gestiune a modelului
Această componentă poate fi descompusă în patru elemente:
Baza de modele conține rutine și modele cantitative din domeniul statisticii, finanțelor, managementului care oferă capacități de analiza într-un SIAD.
Sistemul de management al bazei modelelor este un sistem software cu funcțiuni de creare și actualizare a modelului, utilizare a subrutinelor și a altor blocuri, generarea de noi rutine și rapoarte, manipularea datelor.
Dicționarul de modele este un catalog care conține definiții de modele și furnizează informații cu privire la disponibilitatea și capacitatea acestora.
Componenta de management a modelului asigură controlul execuției modelului, precum și combinarea operațiunilor specifice. Pentru a accepta și interpreta instrucțiunile de modelare, pentru execuție sau interpretare se folosește un procesor de controlare a modelului.
C. Interfața cu utilizatorul
Interfața soluției SIAD acoperă toate aspectele privind comunicarea dintre utilizator și sistemul de asistare a deciziilor. În ultimul timp tot mai multe soluții dispun de o interfață utilizator (în cele mai multe cazuri specifică sistemelor de operare Windows) care simplifică modalitatea de operare și utilizare a aplicației.
D. Componenta de gestiune a cunoștințelor
Aceasta componentă apare în cazul integrării sistemului de asistare a deciziei cu un sistem expert, în vedere obținerii unui SIAD inteligent (expert). Modulul cuprinde, în esență. motorul de inferență și baza de cunoștințe. Motorul de inferența va permite sistemului să simuleze raționamentul unui expert pornind de la datele și cunoștințele disponibile, în timp ce baza de cunoștințe va alimenta mecanismul de inferență, într-un mod similar celui în care baza de date alimentează algoritmii statistici în cadrul sistemelor suport de decizie. Un aspect esențial al construirii și utilizării sistemelor suport de decizie expert constă în realizarea unei interacțiuni între aceste elemente, ele fiind traduse pe de-o parte prin trecerea controlului de la o funcțiune la alta în cadrul sistemului și, pe de altă parte, prin transferul informațiilor între funcțiuni.
8.4. Sisteme suport pentru decizii de grup (SIADG)
Complexitatea operațiunilor economico-financiare a determinat mutații importante în ceea ce privește modalitățile în care sunt derulate procesele decizionale. Deciziile care trebuie luate în cadrul unei organizații implică deseori comunicații între diferitele entități ale organizației (compartimente, directori). În procesul decizional de grup mai mulți decidenți lucrează împreună pentru a ajunge la o concluzie optimă comună în privința anumitor probleme. Dimensiunea grupului poate atinge aproximativ 50 de persoane, numărul decidenților fiind influențat de complexitatea acțiunii întreprinse, de mărimea și importanța proiectului, precum și de alte elemente organizatorice sau tehnice.
Domeniul groupware s-a conturat la sfârșitul anilor '80, ca o concretizare a interacțiunii dintre noile tehnologii informaționale. Avantajele acestor sisteme se concretizează în creșterea confortului, a simțului de răspundere, și nu în ultimul rând a productivității. Trebuie luate însa în calcul și eforturile, mai ales cele de natură financiară, implicate de constituirea unor grupuri de lucru.
Soluțiile alternative propuse în cadrul dezbaterilor de grup sunt evident semnificativ mai multe și mai consistente decât cele pe care le poate propune un singur decident, potențialul creator al unui grup fiind mai mare decât suma contribuțiilor individuale. De asemenea, procesul decizional de grup conduce la o buna cunoaștere a mecanismelor de luare a deciziei și implicit de funcționare a organizației de către un număr mai mare de angajați ai acesteia, ceea ce are ca efect îmbunătățirea semnificativă a performanțelor personalului.
8.4.1. Elemente caracteristice unui sistem informatic de asistare a deciziilor de grup
Având în vedere participarea mai multor persoane la procesul de luare a deciziilor, soluțiile SIAD de grup prezintă o serie de particularități în ceea ce privește modalitățile în care este realizat procesul decizional. Pentru edificare vom prezenta câteva dintre elementele distinctive ale acestor categorii de soluții:
Luarea deciziilor presupune dezbateri și negocieri între participanții la acest proces. Fiecare participant la procesul decizional poate propune o strategie proprie pentru rezolvarea problemei, iar în urma discuțiilor vor fi realizate compromisuri și va fi luată o decizie comună.
Interpretările privind datele și informațiile pe baza cărora sunt luate deciziile sunt diferite, acest lucru determinând importante diferențe în rezoluțiile fiecărui participant.
Ținând cont de cunoștințele tehnice diferite ale participanților la discuții, soluția SIAD trebuie să dispună de o interfață utilizator simplă și ușor de folosit.
Existența unei interfețe Web a soluției SIAD poate constitui o cerință în situațiile în care deciziile de grup presupun existența unor participanți din diverse locații geografice (diverse filiale ale aceleași companii).
Ținând cont de coordonatele timp-spațiu, în cadrul unui SIAD de grup putem identifica următoarele caracteristici:
Distanța care separă factorii de decizie – în raport cu acest element procesul decizional poate fi realizat în următoarele modalități:
Hotărârile sunt luate într-o cameră de ședințe în care sunt adunați participanții la procesul decizional și au loc dezbateri.
Procesul decizional este realizat prin intermediul rețelei interne a companiei sau folosind Internetul. În acest caz sunt utilizate diverse soluții informatice pentru asigurarea comunicării între participanți (mesagerie electronică, chat).
Folosirea soluțiilor complexe pentru asigurarea comunicării între participanți, constând în sisteme de videoconferință și alte soluții dedicate.
Coordonata temporală în procesul decizional într-un SIAD de grup constituie elementul hotărâtor în ceea ce privește arhitectura sistemelor de suport decizional. În situațiile în care utilizatorii nu participă simultan la procesul decizional vor fi folosite mijloace electronice pentru asigurarea comunicării asincrone între aceștia.
Modul de realizare a controlului asupra grupului decizional – În cele mai multe situații deciziile sunt luate în mod democratic, prin negocieri între participanți. În situațiile în care există controverse între factorii de decizie, va putea interveni un mediator pentru realizarea de compromisuri și luarea de decizii comune. Din punct de vedere al modului în care este realizat controlul asupra grupului decizional pot fi identificate următoarele situații:
Modul democratic.
Modul democratic cu un arbitru pentru medierea neînțelegerilor.
Modul ierarhic – în care modul participativ în luarea deciziilor este mai restrâns, hotărâtoarea finală în luarea deciziilor fiind luată de persoanele de conducere din cadrul companiei.
Tipul comunicării între participanți – din punctul de vedere al acestei caracteristici putem identifica două modalități de comunicare: comunicarea point to point între participanți și comunicarea de tip broadcasting.
8.4.2. Conceptul de SIAD de grup
Termenul groupware se definește ca ansamblul metodelor, procedurilor, programelor și platformelor informatice care permit persoanelor asociate unui proiect să conlucreze cu maximum de eficacitate. Un grup se constituie prin crearea de legături între stațiile de lucru, oferind asistarea activităților de comunicare, colaborare și coordonare între membrii grupului.
Pentru ca un sistem informatic sa fie considerat groupware el trebuie sa integreze toate cerințele de lucru ale membrilor unui grup sau organizații, și anume: comunicare, prin utilizarea mesageriei electronice, colaborare, prin partajarea resurselor informaționale între membrii grupului, coordonare, prin adăugarea comunicării și colaborării în structura proceselor de afaceri. Din acest punct de vedere groupware poate fi definit ca un set integrat de instrumente care permit decidenților să lucreze împreună, prin comunicare în anumite momente de timp și în locuri diferite.
Obiectivele fundamentele ale sistemelor decizionale de grup sunt descrise în continuare:
Partajarea informațiilor, concretizată prin folosirea în comun a datelor, textelor, cunoștințelor care sunt accesibile atât utilizatorilor individuali care își îndeplinesc sarcinile curente, cât și membrilor grupului de decizie.
Realizarea proiectelor utilizând software specializat. Presupune folosirea unor instrumente specializate pentru dezvoltarea soluțiilor de tip SIAD de grup. În metodologia de dezvoltare sunt incluse obiectivele propuse, proiectele pentru realizarea obiectivelor și acțiunile de întreprins pentru rezolvarea proiectelor.
Realizarea în colaborare a documentațiilor tehnice, a rapoartelor și a altor documente, inclusiv a documentelor multimedia.
Susținerea de conferințe electronice folosind tehnologii din domeniul comunicațiilor precum și tehnica de calcul.
Gestionarea mesajelor prin sisteme ce se constituie ca o extensie a facilitaților de poșta electronică și reprezintă porți de comunicare atât cu exteriorul cât și în interiorul unei organizații.
Asistare în constituirea grupurilor de lucru, prin intermediul unor programe specializate care coordonează acțiunile de întreprins și stabilesc persoanele care pot fi grupate eficient într-o echipă, alături de un lider.
8.4.3. Modelul fundamental al unui SIAD de grup
În cele mai multe cazuri procesul decizional de grup se desfășoară într-o camera de conferințe, unde decidenții se întâlnesc față în față și discuta, în mod sincron, pentru a rezolva problema pusă în discuție. În cazul în care mai multe astfel de camere de conferință, aflate la distanță, se conectează între ele prin legături video/audio în timp real, va rezulta un spațiu media. În cadrul camerelor individuale de conferință sau în spatiile cu tehnologie multimedia, întâlnirile sunt asistate atât de tehnică de calcul cât și de alte forme de tehnologie din domeniul comunicațiilor (fax, telefon, video-proiector). În cadrul acestor medii stațiile de lucru conectate în rețea asigură suportul de asistare a deciziilor, acoperindu-se diverse faza ale procesului decizional direct.
O alta abordare a sistemelor suport pentru decizii de grup se bazează în totalitate pe serviciile oferite de rețelele de calculatoare. Un astfel de sistem este cel numit "decizie în rețea" care pornește de la ideea unor întâlniri asincrone în cadrul deciziilor de grup. Astfel, întâlnirile sunt distribuite nu doar în spațiu ci și în timp. Participanții și întreg procesul decizional se bazează în totalitate pe serviciile puse la dispoziție de rețeaua de calculatoare, fără a mai apela la alte modalități adiționale de comunicare. În mod obișnuit un astfel de proces de luare a deciziei durează un timp îndelungat. În ambele cazuri este necesara o rețea de calculatoare pentru a asigura serviciile de comunicație necesare în deciziile de grup atât participanților umani, cât și actorilor software.
8.5. Arhitectura unui sistem informatic de asistare a deciziilor de grup
Arhitectura client-server poate constitui elementul fundamental al unui SIAD de grup. Avantajele care le incumbă această arhitectură (expuse și în cadrul primului capitol al acestei teze) asigură un nivel ridicat al flexibilității sistemului informatic dezvoltat. De asemenea, orientarea către Internet a sistemului informatic de asistare a deciziilor aduce avantaje importante în ceea ce privește disponibilitatea și accesibilitatea acestuia. În cele ce urmează vom prezenta componentele de bază care stau la bază unui SIAD de grup.
Figura 8.1. Arhitectura unei soluții SIAD de grup.
8.5.1. Sistemul de gestiune a bazelor de date
Soluțiile de baze de date constituie fundamentul oricărei aplicații dedicată mediului economic și, în consecință, este un element indispensabil în dezvoltarea unui SIAD de grup. Având în vedere cerințele impuse de un SIAD, sistemul de gestiune a bazelor de date trebuie să îndeplinească o serie de cerințe obligatorii:
Baze de date client-server – sistemul de gestiune este necesar să prezinte o arhitectură client-server, în acest mod fiind capabil să răspundă cel mai bine nevoilor de exploatare specifice. Existența unei baze de date centrale contribuie la simplificarea proceselor de dezvoltare a aplicațiilor și de administrare a acestora.
Integrarea componentei Online Analytical Processing (OLAP) – componenta OLAP este indispensabilă pentru realizarea unei analize eficiente a datelor. Folosind această componentă vor putea fi obținute rapoarte detaliate ale evoluțiilor principalilor indicatori economico-financiari, facilitând în acest mod procesul decizional.
Suportul pentru data mining – procesul de data mining permite identificarea unor modele sau relații utile în bazele de date. Astfel, această componentă oferă informații importante legate de tendințele principalilor indicatori din cadrul companiei.
8.5.2. Integrarea cu sistemele operaționale și soluții adiționale de raportare
Un SIAD este necesar să poată exploata eficient informațiile din bazele de date operaționale ale companiei sau din depozitele de date. Factorii de decizie trebuie să poată accesa un sistem puternic de raportare, care să le ofere acces la toate elementele specifice procesului de business. Pentru acest lucru, sistemul trebuie să răspundă la o serie de cerințe obligatorii:
Integrarea cu sistemul informatic integrat al companiei (ERP-Enterprise Resource Planning) – având în vedere nevoile de management și cele specifice procesului decizional este necesară existența unei palete complete de rapoarte privind evoluțiile principalilor indicatori care măsoară performanțele afacerii. De asemenea, este necesar ca rapoartele disponibile să poată fi parametrizate sau modificate pentru a răspunde celor mai diverse cerințe ale factorilor de decizie.
Integrarea cu alte sistemele informatice – în afara suportului pentru sistemul ERP, soluția SIAD este necesar să fie capabilă să ofere rapoarte din cadrul altor sisteme informatice disponibile în cadrul companiei. Spre exemplu, sistemul de asistare a deciziilor poate fi integrat cu soluția de tip CRM (Customer Relationship Management) disponibilă obligatoriu în cadrul companiei.
Interfața accesibilă și operarea simplă a sistemului de raportare – având în vedere experiența diferită a factorilor de decizie, sistemul de raportare trebuie să fie exploatat facil. Existența unor “vrăjitori” care simplifică procesul de construcție și parametrizare a rapoartele, obținerea unor rapoarte grafice ușor de interpretat – sunt numai două din cerințele obligatorii pentru un sistem din această categorie.
8.5.3. Comunicarea între participanții la procesul decizional
Un element necesar pentru realizarea unui SIAD de grup îl constituie instrumentul care asigură comunicarea între participanții la procesul decizional. În afara situațiilor în care comunicarea se realizează direct, utilizarea rețelei și a mijloacelor electronice sunt elemente care asigură funcționarea sistemului dezvoltat. În prezent, având în vedere importantele evoluții tehnologice, sunt disponibile mai multe metode de comunicare între participanți:
Portalul Web – este o componentă simplă pentru comunicarea la nivelul soluției SIAD. Folosind acest tip de soluție, participanții la procesul decizional pot accesa, prin intermediul unui simplu browser, resursele informaționale ale companiei și comunica cu ceilalți utilizatori.
Sistemele de mesagerie – poșta electronică este folosită tot mai frecvent pentru transmiterea informațiilor și a deciziilor în cadrul companiei. În ultimul timp, au fost dezvoltate soluții complexe de mesagerie care pot fi încadrate în conceptul de groupware. Aceste soluții permit atât transmitea poștei electronice tradiționale, cât și stabilirea fluxurilor informaționale și decizionale din cadrul companiei.
Soluțiile de tipul Virtual Private Network (VPN) – se bazează pe tehnologia VPN, ele permițând comunicarea sigură între filialele unei companii care sunt dispersate ca locație.
Aplicațiile de tip forum sau chat –constituie o alternativă puțin costisitoare pentru comunicarea la nivelul unui grup de decizie. Existenta mai multor programe din această categorie sub licența open source, simplifică procesul de implementare a unor elemente de acest tip.
Soluțiile de videoconferință – acest tip de aplicații necesită eforturi financiare mari pentru implementare, asigurând însă un nivel ridicat al eficienței procesului de comunicare.
8.6. Proiectarea unui SIAD de grup
Pentru proiectarea sistemelor informatice care stau la baza acestei teze a fost aleasă metodologia UML (Unified Modeling Language). UML este cea mai modernă metodă de modelare obiectuală și proiectare a sistemelor informatice, ea contribuind la reducerea timpului alocat pentru aceste procese, precum și la simplificarea lor.
8.6.1. Elemente generale privind proiectarea unui sistem informatic
Ca definiție un sistem informatic reprezintă un model fizic de simulare a comportamentului unei părți din lumea reală sau conceptuală. Acest model fizic este definit prin intermediul unui limbaj de programare și el se concretizează într-o aplicație (model executabil) ce poate fi rulată pe un sistem de calcul.
Ciclul de viață al unei aplicații reprezintă totalitatea etapelor care sunt parcurse în procesul de dezvoltare a aplicației respective. Cele mai importante etape de proiectare și dezvoltare a sistemelor informatice sunt:
Analiza funcțională ce presupune definirea problemei și specificarea detaliată a funcționalităților care vor fi suportate de către sistemul informatic;
Analiză – în cadrul căreia se realizează identificarea caracteristicilor esențiale ale tuturor soluțiilor corecte posibile;
Proiectarea – care adaugă modelelor de analiză noi elemente care definesc o soluție particulară;
Implementarea – în care se realizează un proiect executabil al soluției particulare modelată în faza de proiectare;
Testarea – în care se verifică echivalența implementării cu modelul proiectat și se validează faptul că acesta respectă criteriile de corectitudine identificate în etapa de analiză.
Metodele de analiză și proiectare orientată-obiect permit parcurgerea etapelor ciclului de viață a aplicațiilor într-o manieră iterativă.
Realizarea de aplicații de complexitate medie sau mare nu mai poată fi concepută astăzi fără utilizarea metodelor de analiză și proiectare. Prin metode de analiză și proiectare înțelegem o mulțime de procedee, tehnici și recomandări utilizate în etapele timpurii ale ciclului de viață al unei aplicații având ca scop final crearea unui model al aplicației care urmează a fi construită. Specificarea acestui model se realizează prin intermediul unui limbaj sau formalism vizual (notație) compus dintr-un set de simboluri grafice și adnotări textuale.
Odată cu evoluția metodelor de analiză și proiectare orientate-obiect s-au dezvoltat o serie de instrumente care permit automatizarea procesului de realizare a aplicațiilor având la bază aceste metode. Astfel de instrumente poartă numele de instrumente CASE (Computer Aide Software Engineering) și sunt formate dintr-o colecție de componente care sprijină realizarea operațiilor ce trebuie efectuate în cadrul uneia sau mai multor etape ale unei metode de analiză și proiectare.
8.6.2. Proiectarea sistemelor informatice folosind UML (Unified Modeling Language)
În acest moment UML este cea mai eficientă metodologie de proiectare a sistemelor informatice. Din acest motiv, în cadrul acestei teze de doctorat, am utilizat această metodologie pentru proiectarea tuturor elementelor care compun soluția SIAD de grup.
În anii ’90 au apărut o serie de metode de dezvoltare a aplicațiilor, fiecare dintre acestea introducând noi notații (grafice sau formale) particulare. Printre cele mai populare metode se numărau: OMT (Object Modeling Technique); OOD (Object Oriented Design) sau OOSE (Object-Oriented Software Engineering).
Fiecare dintre aceste metode avea puncte “tari” și “slabe”. OMT era potrivit pentru etapa de analiză, OOD pentru etapa de proiectare iar OOSE avea în vedere în special etapa de analiză comportamentală. Anii ’90 sunt caracterizați de așa-numitul 'război al metodelor', în care fiecare dintre autori încerca să impună propria metodă de analiză și proiectare a aplicațiilor.
Limbajul UML s-a născut din dorința de a unifica cele mai importante concepte introduse de fiecare dintre aceste metode precum și pentru a găsi o notație standard de modelare a acestor concepte.
În septembrie 1997 aceste controverse legate de metodologia de proiectare s-a încheiat prin adoptarea de către OMG a limbajului UML ca limbaj standard de modelare a aplicațiilor. OMG (Object Management Group) reprezintă un consorțiu internațional al cărui obiectiv principal îl constituie promovarea abordării orientate obiect în cadrul ingineriei softului.
Limbajul UML s-a format având la bază unificarea a ce era mai bun din cele trei metode amintite mai sus, la care s-au adăugat contribuții notabile în diverse faze ale etapelor de analiză și proiectare: clasificare – Odell, hărți de stări – David Harel, ciclu de viață al obiectelor – Shlaer-Mellor și șabloane de proiectare – Gamma.
UML este un standard de notație, introducând un număr de opt diagrame de descriere a unui sistem informatic, precum și semantica specifică acestora. UML nu propune și un proces de utilizare a acestor diagrame în dezvoltarea aplicațiilor, limitându-se doar la procesul de proiectare.
Cele opt tipuri de diagrame propuse de UML sunt: diagrama cazurilor de utilizare, diagrama activităților, diagrama claselor, diagrama colaborărilor, diagrama componentelor, diagrama de amplasare, diagrama de secvențe, diagrama de stări.
Aceste diagrame pot fi împărțite în 3 categorii:
– diagrame statice – descriind structura și responsabilitățile sistemului informatic (diagramele de cazuri de utilizare, clase);
– diagrame dinamice – descriind comportamentul și interacțiunile care au loc între diverse entități în cadrul sistemului informatic (diagrame de activități, colaborare, secvență, stări);
– diagrame arhitecturale – descriind componentele executabile ale sistemului și determinând locațiile fizice de execuție și nodurile de stocare a datelor (diagrame de componente, de amplasare).
8.7. Arhitectura generală a sistemului informatic de asistare a deciziilor de grup
Soluția SIAD de grup propusă ca suport în cadrul acestei teze de doctorat are la bază un ansamblu de componente, tehnologii, soluții de tip server, precum și instrumente de proiectare și dezvoltare a sistemelor informatice. Un alt lucru ce îl considerăm important și pe care dorim să-l punctăm în ceea ce privește sistemul realizat este orientarea către Web și Internet a tuturor aplicațiilor care intră în componența acestuia. Astfel, toate programele care alcătuiesc soluția SIAD de grup sunt Web-enabled, acest lucru asigurând un acces simplu și uniform la resursele informaționale. Orientarea către Web a sistemului informatic a fost aleasă pentru a răspunde la toate nevoile de business ale momentului:
Acces descentralizat la informație din rețeaua Intranet a companiei sau prin intermediul mediului Internet;
Mobilitate și acces uniform la resurse.
Din altă perspectivă, sistemele informatice orientate către Web prezintă o serie de avantaje în ceea ce privește procesele de administrare:
Nivelul de date și cel aplicativ sunt stocate centralizat pe unul sau pe mai multe servere. În acest mod, procesele de backup și configurare a aplicațiilor sunt mult simplificate.
Datorită concentrării pe parte de server a componentei aplicative și de date, sistemul integrează clienții “ușori” (thin client). Astfel pe parte de client nu este solicitat decât browserul Web, nefiind necesară instalarea unor aplicații sau a altor componente pe stațiile de lucru.
Soluția SIAD de grup propusă prezintă două nivele fundamentale care asigură funcționarea de ansamblu a sistemului informatic:
Nivelul de infrastructură – include componentele de tip server care vor constitui fundamentul nivelului aplicativ dezvoltat (server de fișiere, server de baze de date și server Web).
Nivelul aplicativ – include componentele aplicative propriu-zise, care exploatează sursele de date și realizează procesele de analiză ale acestora.
În cadrul figurii 8.2., pot fi identificate cu ușurință componentele generice ale sistemului informatic propus:
Figura 8.2. – Componentele fundamentale ale sistemului informatic dezvoltat.
8.7.1. Nivelul de infrastructură
Nivelul de infrastructură asigură necesitățile de bază ale sistemului și interacțiunea cu utilizatorii. În cazul acestui nivel putem identifica următoarele funcții disponibile și integrate în cadrul acestei componente:
Funcția de server de fișiere și de găzduire a celorlalte componente ale sistemului informatic.
Funcția de stocare a datelor și de integrare a funcțiilor de analiză specifice unui sistem de asistare a deciziilor (OLAP sau data mining).
Funcția de server Web care asigură interacțiunea cu utilizatorii sistemului informatic.
Cadrul software și componentele care asigură funcționalitatea la nivel aplicativ al soluțiilor dezvoltate.
Funcțiile și componentele care asigură securitatea de ansamblu a sistemului informatic.
În raport cu aceste funcționalități propuse, în dezvoltarea sistemului informatic au fost alese o serie de componente specifice.
1. Windows Server
Windows Server constituie elementul central al sistemului informatic realizat, pe baza acesteia fiind “clădite” celelalte componente ale sistemului realizat. Alegerea acestui sistem de operare poate fi motivată prin următoarele considerente:
Windows Server este actualmente cel mai complet sistem de operare pe parte de server, asigurând un nivel ridicat de securitate al aplicațiilor dezvoltate.
Windows Server este integrat soluțiile de dezvoltare și de tip server oferită de Microsoft, fiind platforma ideală pentru publicarea și rularea aplicațiilor bazate pe tehnologia .Net. În acest sens, soluțiile SharePoint Portal Server, ISA Server și BizTalk Server asigură un nivel ridicat de interoperabilitate cu acest sistem de operare.
Windows Server integrează nativ suportul pentru .NET Framework. Cadrul software .NET este componenta fundamentală care stă la baza sistemului informatic dezvoltat, asigurând funcționarea programelor bazate pe tehnologie ASP.NET.
2. SQL Server
Bazele de date constituie unul din elementele fundamentale ale infrastructurii IT a companiilor. Având în vedere importanța informațiilor stocate în bazele de date pentru desfășurarea proceselor de afaceri, soluțiile de acest tip trebuie să asigure un nivel ridicat de scalabilitate, performanță și siguranță în exploatare. SQL Server răspunde în totalitate acestor nevoi, fiind o soluție flexibilă și adaptabilă la nevoile diverselor categorii de clienți. Nivelul ridicat de adaptare la cerințele utilizatorilor este demonstrat de existența celor șapte versiuni ale acestei soluții, acestea permițând integrarea SQL Server pe o gamă variată de echipamente (începând cu servere bazate pe procesoare pe 64 de biți și încheind cu dispozitivele mobile).
În cadrul soluției SIAD dezvoltate, SQL Server este componenta care permite stocarea datelor, constituind fundamentul pe care sunt construite soluțiile de analiză a datelor.
3. Analysis Services
Analysis Services este o componentă accesorie SQL Server, având rolul de a integra funcțiile de analiză a datelor specifice soluție SIAD. Practic Analysis Services este capabil să preia datele din bazele de date tranzacționale și să organizeze depozitele de date care vor sta la baza sistemului informatic. De asemenea, este asigurat suportul pentru tehnologiile OLAP și Data Mining, elemente indispensabile pentru un sistem de asistare a deciziilor de grup.
4. Internet Information Services 8.5
Internet Information Services (IIS) 6 asigură funcția de server Web, precum și server de aplicații. IIS este integrat în Windows Server 2012 R2 și este garantată o interoperabilitate totală între cele două componente. IIS va asigura suportul eficient pentru aplicațiile ASP.NET, constituind platforma ideală pentru operarea aplicațiilor bazate pe această tehnologie.
6. .NET Framework
Aplicațiile dezvoltate în cadrul acestei cărți au la bază cadrul software .NET Framework. Această tehnologie simplifică procesele de dezvoltare a aplicațiilor, asigurând un set amplu de librării care pot fi integrate cu aplicațiile dezvoltate. .NET Framework permite implementarea unui nou nivel al programării obiectuale, iar ca o consecință a fundamentării pe baza tehnologiei XML este oferit un nivel ridicat de interoperabilitate a sistemelor informatice.
6. ISA Server / Microsoft Forefront Threat Management Gateway
Nevoia de mobilitate și noile mijloace de comunicare au determinat schimbări importante ale arhitecturilor sistemelor informatice și ale topologiilor de rețea. Astăzi, tot mai mulți utilizatori, care nu sunt integrați în cadrul rețelei interne accesează resurse din cadrul companiei. Utilizatori mobili care se conectează la distanță la sistemul informatic intern al firmei, aplicații din cadrul filialelor care sunt integrate cu servere disponibile în cadrul centralei sunt doar două scenarii în care conexiunile se realizează din afara rețelei interne. Având în vedere aceste considerente, modalitățile de implementare a politicilor de securitate sunt tot mai complexe, fiind necesar un acces flexibil a unei palete tot mai variate de utilizatori și, în același timp, un nivel cât mai bun de securitate.
În cazul sistemului informatic tratat în cadrul acestei teze de doctorat este importantă asigurarea unui nivel ridicat de securizare a aplicațiilor. Având în vedere orientarea către Web a soluției dezvoltate, pericolul ca informațiile gestionate să fie accesate de utilizatori neautorizați este major. Pentru a combate încercările de acces neautorizat la resurse am ales soluția ISA Server, aceasta asigurând un nivel ridicat de securizare a aplicațiilor.
ISA Server răspunde nevoile de securizare a aplicațiilor orientate spre Web, permițând implementarea politicilor de securitate în cadrul unor arhitecturi complexe de rețea și contribuind la securizarea accesului la distanță al utilizatorilor. Administratorii au posibilitatea de a securiza mai multe rețele și de a stabili reguli diferite de interconectare între acestea. Noul suport pentru mai multe rețele din ISA Server 2004 asigură un grad mai ridicat de protecție în ceea ce privește amenințările interne și externe asupra resurselor informatice. De asemenea, noile funcționalități permit crearea zonelor demilitarizate și folosirea ISA Server în cadrul unor arhitecturi și topologii de rețea complexe.
ISA Server include o componentă firewall evoluată, care va contribui la asigurarea unui nivel ridicat de securitate în cadrul infrastructurii IT. Soluția include suport extins pentru diverse protocoale Internet, fiind asigurate mijloacele pentru o analiză completă a traficului. Sunt incluse funcții de filtrare a traficului la nivelul aplicațiilor sau a serverelor, fiind oprite atacurile asupra sistemelor informatice. Este importantă integrarea cu IIS a aplicației, acest lucru contribuind la securizarea aplicațiilor ASP.NET.
Figura 8.4. – ISA Server componenta principală care contribuie la securizarea soluției SIAD de grup.
8.7.2. Nivelul aplicativ al soluției SIAD de grup
Nivelul aplicativ este compus din setul de aplicații dezvoltate și din componentele implementate, amândouă componentele contribuind la asigurarea funcționalităților sistemului informatic de asistare a deciziilor dezvoltare. În continuare vor fi tratate componentele care stau la baza acestui sistem, în subcapitolele următoare fiind disponibile informații detaliate privind modul de proiectare și dezvoltare a acestora. De asemenea, în figura 8.5. este prezentată schema sistemului informatic propus.
Componenta de raportare – asigură funcțiile de bază de construcție și vizualizare a rapoartelor pe baza sistemului informatic integrat din companie (ERP).
Componenta de business intelligence – exploatează tehnologiile OLAP și data mining pentru analiza datelor din depozitele de date.
Componenta de colaborare– asigură funcțiile colaborative ale unui SIAD de grup și permite integrarea diverselor sisteme disponibile în cadrul companiei.
8.8. Componenta de raportare
Bazele de date și depozitele sunt un element omniprezent în cele mai diverse domenii. Fie că vorbim de soluții din categoria aplicațiilor ERP (Enterprise Resource Planning), fie că vorbim de site-urile de comerț electronic, în ambele cazuri elementul fundamental pentru funcționarea acestora îl constituie sistemul de gestiune a bazelor de date. Un alt lucru important care trebuie oferit de astfel de soluții îl constituie posibilitatea de dezvoltare simplă a rapoartelor pe baza informațiilor incluse în bazele de date. Un raport prezintă datele într-un format accesibil și care poate fi imprimat, asigurând totodată sintetizarea informațiilor prin operațiuni de consolidare, grupare și totalizare. Desigur, și limbajul SQL oferă posibilități de selecție și grupare a datelor, dar folosirea unei aplicații specializate pentru crearea rapoartelor simplifică procesul de dezvoltare a acestor elemente. Astfel, în cazul utilizării instrucțiunilor specifice SQL sau a limbajelor procedurale, sunt necesare cunoștințe aprofundate în aceste limbaje, iar procesul de creare a interogărilor este destul de frustrant prin numărul mare de instrucțiuni care trebuie incluse. Spre deosebire de această situație, dacă sunt utilizate instrumentele de generare a rapoartelor, tot setul de operațiuni se va realiza vizual, nefiind necesare cunoștințe specifice în aceste limbaje.
Utilitatea generatoarelor de rapoarte este dovedită de multitudinea de situații de aplicare a acestora. Un scenariu de folosire a aplicațiilor din această categorie este constituit de soluțiile ERP (Enterprise Resource Planning) care nu oferă, în cele mai multe cazuri, posibilitatea de particularizare detaliată a rapoartelor și situațiilor de ieșire obținute prin intermediul acestora. În acest sens, va fi necesară conectarea la baza de date și definirea prin intermediul unor aplicații specifice a rapoartele necesare.
Figura 8.6. – Componentele incluse în Crystal Report.
Soluția Crystal Report este un instrument care permite conectarea la o bază de date, selecția setului de înregistrări și definirea formei raportului. Modul de lucru cu această aplicație, precum și amănunte legate de dezvoltarea de soluții bazate pe tehnologia Crystal Enterprise vor fi expuse în continuare.
8.8.1. Funcțiile și proiectarea componentei de raportare
Componenta de raportare asigură integrarea între sistemele informatice economice existente în cadrul companiei și o soluție Web pentru vizualizarea și analiza datelor. Componenta prezintă următoarele funcții de bază:
Este un mediu pentru construcția unor rapoarte particularizabile.
Funcții pentru conectarea cu diverse surse de baze de date și managementul acestor conexiuni. Sistemul propus va trebui să faciliteze suport pentru bazele de date SQL Server utilizate în cazul soluției SIAD dezvoltate.
Existența unui portal Web care să permită vizualizarea rapoartelor prin intermediul unui simplu browser.
Funcții de administrare și securizarea soluției Web de raportare.
Posibilități de asignare a drepturilor de acces la rapoarte pentru diverse grupuri de utilizatori.
Principalele funcții ale componentei de raportare se pot vedea și din diagrama cazurilor de utilizare (figura 8.7.). În figură se pot distinge doi actori generici (administrator și utilizator), aceștia integrând diversele funcții ale sistemului informatic (administrarea și stabilirea drepturilor de acces, construcția rapoartelor personalizate).
Figura 8.7. Diagrama cazurilor de utilizare dedicată componentei de raportare.
8.8.2. Conexiunea la bazele de date
La instalarea soluției Crystal Report, există posibilitatea de a selecta suportul pentru sursele de date pentru care se dorește generarea de rapoarte. Crystal Report oferă suport pentru aproape toate sistemele de gestiune a bazelor de date, printre acestea numărându-se și cunoscutele Oracle, SQL Server, DB/2 sau Ingress. De asemenea, apare posibilitatea de conectare la orice sursă de date pentru care sunt prezente drivere ODBC. Când aplicația este deschisă, este accesibil instrumentul Report Expert, prin intermediul acestui instrument fiind posibilă realizarea facilă a următoarelor operațiuni: setarea parametrilor de conectare la baza de date, selecția tabelelor care vor fi incluse în raport, câmpurile după care vor fi grupate datele și forma în care vor fi prezentate datele prin intermediul raportului. De asemenea, se vor putea stabili criteriile de selecție a datelor pentru mai multe câmpuri care stau la baza raportului. Presupunând că dorim conectarea la o bază de date SQL Server, pentru realizarea conexiunii este necesară specificarea numelui serverului, utilizatorului și a unei parole valide.
Figura 8.8. – Conectarea la sursele de date.
8.8.3. Modul de folosire al generatorului de rapoarte
Crystal Reports este unul dintre cele mai puternice generatoare de rapoarte ce sunt disponibile în acest moment. Crystal Reports este un instrument profesional ce permite construcția vizuală a rapoartelor, precum și conectarea la o paletă largă de surse de date. Alături de acesta, prin intermediul instrumentelor Crystal Enterprise, avem posibilitatea de publicare și gestionare a rapoartelor prin intermediul unui server de Web. De asemenea, Crystal Analysis este un instrument specializat ce permite realizarea operațiunilor de analiză pe baza tehnologiei OLAP.
În ceea ce privește modul de operare cu generatorul de rapoarte, acesta este destul de simplu, acțiunile de adăugare a câmpurilor în cadrul raportului putându-se realiza prin simple operațiuni de drag&drop. Pentru preluarea câmpurilor din cadrul tabelelor, stabilirea setului de înregistrări și afișarea lor în rapoarte sunt disponibile mai multe utilitare, care au rolul de a simplifica acest proces. Dintre acestea, le prezentăm în cele ce urmează pe cele mai importante:
Visual Linking Expert – este un utilitar vizual care permite adăugarea de tabele la respectivul raport și stabilirea relaționării acestora;
Select Expert –permite stabilirea în mod vizual a criteriilor de selecție a înregistrărilor din baza de date;
În situația în care se dorește editarea directă a codului în limbaj SQL de selecție a înregistrărilor care stau la baza raportului se poate selecta opțiunea Show SQL Query din meniul Database. Crystal Report generează în mod automat instrucțiunile SQL de interogare a bazei de date, prin intermediul acestui instrument este oferită posibilitatea de a se realiza modificări asupra codului generat;
Chart Expert este un vrăjitor care facilitează realizarea graficelor pe baza înregistrărilor din baza de date.
De asemenea, toate utilitarele permit stabilirea câmpurilor după care va fi realizată gruparea datelor. În rapoarte există posibilitatea de a include atât câmpurile din tabele, cât și unele formule stabilite pe baza informațiilor din baza de date. Pentru crearea câmpurilor calculate este oferit utilitarul Formula Editor. Prin intermediul acestui utilitar există posibilitatea de a edita formule complexe. În plus, Crystal Report pune la dispoziție o multitudine de funcții prestabilite, destinate celor mai diverse domenii (matematică, vastul domeniu economico-financiar).
Toate informațiile referitoare la conectarea la baza de date, setul de înregistrări și formatul raportului pot fi salvate într-un fișier purtând extensia RPT. Pentru a modifica mai simplu anumiți parametrii de execuție a rapoartelor, există posibilitatea de configurare a variabilelor care vor fi solicitate la rularea fișierelor RPT. În acest sens, pentru un raport care selectează informațiile din baza de date pentru o perioadă de timp definită se pot introduce prin intermediul unei ferestre de inițializare datele de început și încheiere ale respectivei perioade.
O ultimă mențiune pe care dorim să o facem este acea că, atunci când este activată opțiunea Save Data with Report din meniul File, înregistrările din baza de date vor fi încorporate în fișierul RPT. Pentru actualizarea datelor care stau la baza raportului, se selectează opțiunea Refresh Report Data din meniul Report.
Crystal pune la dispoziție un utilitar specializat care permite crearea interogărilor asupra bazei de date. SQL Designer facilitează „ruperea” nivelului de conectare propriu-zisă la baza de date și realizare a interogărilor de cel de construcție efectivă a rapoartelor. Acest instrument dispune de două posibilități de lucru: prima constă în stabilirea parametrilor conexiunii la baza de date și introducerea manuală a interogărilor SQL; cea de a doua metodă constând în utilizarea unui vrăjitor specializat, care va genera în mod automat codul interogării SQL. Interogările realizate prin intermediul acestui utilitar vor fi salvate în fișiere purtând extensia QRY, acesta putând sta la baza rapoartelor create prin intermediul Crystal Report.
Crystal Report conține mai multe formate de export a rapoartelor sau a datelor incluse în acestea. Important de subliniat, în cadrul versiunii 9, este introducerea suportului complet pentru formatul XML. Crystal Report oferă atât posibilitatea de exportare a datelor din rapoarte în format XML, cât și pe cea de import a datelor din fișierele XML și de generare pe baza acestora a rapoartelor.
Interesantă este și posibilitatea de export a rapoartelor în format PDF, în acest mod putându-se vizualiza rapoartele pe orice platformă. Important de subliniat este că forma raportului și graficele sunt bine ilustrate în format PDF. Alături de aceste facilități, mai există posibilitatea de export într-o multitudine de alte formate, cum sunt: HTML, Excel, DBF sau Word.
8.8.4. Crystal Analysis
Crystal Decisions include și o soluție profesionistă dedicată realizării analizelor economice pe baza tehnologiei OLAP. Crystal Analysis este instrumentul dedicat acestui scop, el prezentând ca principal avantaj simplificarea procesului de realizare a rapoartelor de analiză a datelor. Programul permite conectarea la diverse depozite de date, dispunând de o interfață bine organizată.
Figura 8.9. Interfața simplă a programului Crystal Analysis.
Procesul de construcție a analizelor OLAP este asemănător cu cel specific generatorului Crystal Reports. Astfel, într-o primă etapă este necesară conectarea la sursa de date, acest proces realizându-se în mod diferit în raport cu sursa de date. Realizarea efectivă a analizei și construcția cuburilor de date se realizează prin intermediul interfeței vizuale, nefiind necesare cunoștințe de programare. Având în vedere acest considerent, această soluție este indicată nivelelor de management. De asemenea, sunt incluse capacității de export în diferite formate și funcții de integrare cu celelalte aplicații oferite de Crystal Decisions.
8.9. Crystal Enterprise
În ultimii ani tot mai multe aplicații au migrat pe Web, devenind în acest mod accesibile utilizatorilor prin intermediul unui simplu browser. Această modalitate de rulare a aplicațiilor asigură o multitudine de avantaje, dintre acestea distingându-se, ca element definitoriu, posibilitatea de accesare a programelor pe orice platformă. Astfel, aplicațiile vor fi accesibile fără probleme pe platformele Windows, MAC OS sau Linux, fără a fi necesar ca pentru rularea acestora să fie realizate modificări sau recompilate sursele. Din altă perspectivă, avându-se în vedere că pe calculatoarele client nu este necesară decât existența unui browser de Web (element prezent astăzi pe aproape orice sistem de calcul), va deveni inutilă instalarea elementelor specifice pe fiecare stație client.
Crystal Enterprise permite publicarea rapoartelor Crystal Report și Crystal Analyses prin intermediul unui portal de Web, oferind totodată și o suită de instrumente destinate administrării site-urilor dezvoltate. Crystal Enterprise lucrează împreună cu un server de Web (Internet Information Services), iar pe parte de client se poate utiliza un browser Web Internet Explorer sau Netscape.
Figura 8.10. Accesarea prin intermediul portalului Web a rapoartelor Crystal Report și Analysis.
Elementul central al portalului realizat prin intermediul soluției Crystal Enterprise îl constituie instrumentul ePortfolio. Prin intermediul acestui instrument aveți posibilitatea de a accesa și previzualiza rapoartele accesibile prin intermediul portalului Web. Suplimentar, rapoartele pot fi organizate pe mai multe categorii prin intermediul folderelor, fiind implementat și un motor de căutare după numele raportului sau descrierea acestuia.
De asemenea, mai este accesibilă și consola de configurare. Prin intermediul instrument ePortfolio accesibil tot prin intermediul browserului Web se pot crea utilizatori și aloca drepturi de accesare pentru anumite rapoarte. Consola de configurare permite realizarea rapoartelor care vor fi accesibile prin intermediul portalului de Web.
8.9.1. Crystal Enterprise – concept și arhitectură
Crystal Enterprise este o platformă flexibilă menită să distribuie rapoarte interactive și complexe către angajații companiilor, folosind o interfață Web. Ea poate fi folosită pentru a livra rapoartele săptămânale ale salariilor, oferte personalizate către clienți sau pentru a integra informații critice în portalurile corporațiilor, toate acestea putându-se accesa prin intermediul rețelei locale sau din orice locație via Internet. Livrând rapoarte și analize, Crystal Enterprise oferă o soluție pentru creșterea productivității angajaților și reducerea costurilor administrative.
Crystal Enterprise este un sistem bazat pe mai multe nivele. Fiecare componentă este responsabilă de un anumit proces, permițând ca ele să fie grupate logic în funcție de acțiunea pe care o realizează. Arhitectura Crystal Enterprise este formată din patru nivele: nivelul client, nivelul logic, nivelul de procesare și nivelul datelor. Pentru a oferi flexibilitate, componentele care realizează acțiunile respective pot fi instalate pe o singură mașină sau pot fi împărțite pe mai multe mașini.
Figura 8.11. ilustrează modul în care fiecare componentă se integrează in arhitectura multi-nivel.
Figura 8.11. – Arhitectura Crystal Enterprise.
Serverele specifice acestei soluții rulează ca servicii pe mașinile Windows. Aceste servicii pot fi distribuite vertical, pentru a pune în valoare hardware-ul pe care rulează, sau orizontal, pentru a beneficia de avantajele oferite de existența mai multor calculatoare în interiorul rețelei locale. Aceasta înseamnă că serviciile pot rula pe o singură mașină sau pot fi distribuite să ruleze pe mașini separate. Din punct de vedere arhitectural, Crystal Enterprise include nu mai puțin de zece componente:
Nivelul Iogicii de sistem – este responsabil cu administrarea întregului sistem Crystal Enterprise. Aici sunt stocate informațiile de securitate, sunt trimise cererile către servere și sunt memorate instanțele rapoartelor;
Web Component Server (WCS) este legătura dintre serverul Web și restul componentelor Crystal Enterprise. Prin intermediul acestei componente sunt procesate cererile trimise de clienți din browser-ul Web;
Web Connector. Crystal Enterprise folosește această componentă pentru a se afla în comunicare cu diferitele servere web. Dacă în sistem există mai multe mașini pe care sunt instalate componente WCS, atunci Web Connector va realiza automat echilibrarea nivelului cererilor între aceste mașini, adică orice nouă cerere va fi redirecționată către mașina cu cele mai puține cereri în acel moment;
File Repository Servers. Fiecare implementare Crystal Enterprise conține un server de Input și un server de Output, iar în cazul sistemelor de mare amploare sunt menținute mai multe astfel de servere. Input File Repository Server va administra toate rapoartele publicate de utilizatori (folosind Crystal Publishing Wizard, Crystal Management Console, Crystal Import Wizard sau Crystal Reports), pe când Output File Repository Server va administra toate instanțele generate de Job Server ;
Componenta Events are rolul de a monitoriza toate evenimentele legate de fișierele gestionate folosindu-se această soluție;
Componenta Cache procesează toate cererile de vizualizare transmise de WCS. După ce primește cererea, ea va verifica existența paginilor necesare în memoria cache. Dacă paginile există, le va întoarce ca rezultat al cererii primite, în caz contrar va trimite cererea către Page Server și va aștepta să primească paginile respective pentru a răspunde la cererea primită. Prin integrarea acestei tehnologii, Crystal Enterprise evită să acceseze baza de date de fiecare dată când primește o cerere. Dacă sunt rulate mai multe componente Page Server pentru un singur server de cache, acesta va realiza automat echilibrarea către celelalte servere, trimițând cererea către cel mai liber server din momentul respectiv;
Nivelul de procesare se conectează bazele de date, realizează interogările și generează rapoartele. Acesta este singurul nivel din cadrul Crystal Enterprise care interacționează direct cu bazele de date;
Job Server procesează rapoartele la cererea APS și generează instanțele acestora (instanțele sunt rapoartele populate cu datele extrase din baza de date);
Page Server răspunde cererilor de pagini, procesând rapoartele generate de job Server, trimițând înapoi pagini în format EPF (Encapsulated Page Format). Aceste pagini conțin informațiile de formatare care definesc modul de afișare a raportului. Serverul de pagini primește datele de la baza de date sau de la ultima instanță a raportului, în conformitate cu cererea primită. Acest server interacționează direct cu Cache Server-ul, astfel încât paginile EPF care sunt ținute în cache sunt utilizate ori de câte ori este posibil, iar paginile noi sunt generate imediat ce sunt cerute de browser;
Report Application Server (RAS) dispune de funcții similare cu Page Server. Ambele sunt “responsabile” cu procesarea rapoartelor și generarea paginilor EPF. RAS însă are un sistem propriu de verificare, astfel încât nu interacționează cu Cache Server-ul. Tot el implementează funcția care permite realizarea unor rapoarte ad-hoc. Utilizatorii pot modifica și crea noi rapoarte direct din browser-ul web, fără a avea instalat un software de raportare.
8.9.2. Automated Process Scheduler (APS)
APS menține o bază de date cu informațiile specifice sistemului Crystal Enterprise, astfel încât celelalte componente pot accesa această sursa de informații pentru necesitățile specifice. Datele memorate conțin detalii despre utilizatori și grupuri de utilizatori, nivele de securitate și servere, permițând îndeplinirea tuturor celor trei atribuții pe care APS le are:
Menținerea securității. Prin păstrarea unei baze de date cu utilizatorii și drepturile acestora, APS acceptă sau respinge accesul acestora la diferitele obiecte din sistem. Tot aici sunt incluse și datele despre politica de licențiere din cadrul Crystal Enterprise;
Administrarea obiectelor APS menține informațiile despre locația rapoartelor și despre ierarhia directoarelor. Comunicând cu componenta Job Server, APS este capabil să asigure că rularea programată a rapoartelor este realizată la momentul oportun;
Administrarea serverelor (componentelor). Luând contact cu celelalte servere, APS menține o listă cu starea fiecărei componente în parte. WCS accesează această listă pentru a identifica serverul către care trebuie să redirecționeze cererea pe care o procesează.
Dacă Microsoft Desktop Engine (MSDE) sau SQL Server sunt deja instalate, programul de configurare va folosi una din ele pentru a-și crea baza de date. În situațiile în care nici una dintre cele două componente nu este disponibilă, va fi instalată și configurată propria bază de date MSDE. Este de menționat că soluția dedicată gestionării informațiilor poate fi lesne transferată ulterior către un alt server de baze de date.
8.9.3. Nivelul client al soluției Crystal Enterprise
Aceasta este singura secțiune Crystal Enterprise în care utilizatorii și administratorii pot interacționa prin partea legată de browser a nivelului client. De aici se pot accesa cele două componente: ePortfolio și Crystal Management Console.
ePortfolio este o interfață web personificabilă prin intermediul căreia utilizatorii pot vizualiza, programa și publica rapoarte. Fiecare cerere Crystal Enterprise pe care o realizează utilizatorii va fi redirecționată de serverul web către Web Connector, care o trimite mai departe către Web Component Server. Pentru a putea utiliza ePortfolio este necesar un browser Web (Microsoft Internet Explorer sau Netscape).
Când este accesat ePortfolio, utilizatorul va fi logat in mod automat ca Guest, putând vizualiza obiectele din directoarele publice. Dacă se dorește vizualizarea unor rapoarte proprii, va fi necesar un nume de utilizator și o parolă validă pentru folderele care conțin respectivele rapoarte. Crystal Enterprise, prin facilitățile încorporate, permite stabilirea unui nivel de securitate ridicat, oferind posibilitatea de a asigna un set complet de drepturi diverselor categorii de utilizatori din cadrul organizației.
Dacă serverul web este configurat astfel încât să suporte dispozitive mobile, se pot accesa rapoartele cu aceste echipamente folosindu-se soluția ePortfolio Mobile.
Odată logat în sistemul Crystal Enterprise, utilizatorul poate vizualiza rapoartele asupra cărora sunt asignate drepturi, iar în situațiile în care este instalată și componenta RAS (Report Aplication Server) se pot modifica rapoartele existente sau se pot crea rapoarte noi bazate pe cele deja existente.
8.9.4. Configurarea gamei de servere
Crystal Management Console (CMC) permite administrarea întregului sistem. Prin CMC se stabilesc setările de autentificare și securitate, se adaugă utilizatorii și grupurile de utilizatori. Acest instrument permite administrarea completă a serverelor și grupurilor de servere pe care este disponibilă soluția Crystal Enterprise. Important de subliniat este că acest instrument este disponibil sub forma unei aplicații web, înlesnind în acest mod realizarea la distanță a operațiunilor de administrare și configurare.
Spre deosebire de ePortfolio, CMC solicită introducerea unui nume de utilizator și a unei parole valide. Asemănător cu ePortfolio, CMC dispune de o interfață personalizabilă.
CCM (Crystal Configuration Manager) este o altă “unealtă” de administrare a serverelor, care facilitează configurarea componentelor Crystal Enterprise. Acest instrument dispune de funcții care permit pornirea sau oprirea serverelor Crystal Enterprise. De asemenea, prin ea se pot efectua setări avansate privind portul care va fi utilizat de Crystal Enterprise, baza de date care va fi utilizată de aplicație și configurările complexe specifice clusterelor de servere.
8.9.5. Instrumente accesorii pentru publicarea și managementul rapoartelor
Crystal Publishing Wizard este o aplicație Windows instalată local, care permite administratorilor și utilizatorilor să adauge rapoarte la Crystal Enterprise. Stabilirea drepturilor de publicare se face din Crystal Enterprise, prin atribuirea de drepturi la directoarele în care sunt stocate rapoartele.
Publicarea este procesul de adăugare a obiectelor, cum ar fi rapoartele Crystal, la mediul Crystal Enterprise, făcând astfel disponibile aceste obiecte pentru utilizatorii autorizați. Obiectele pot fi rapoarte individuale create cu Crystal Reports, analize dezvoltate cu Crystal Analysis sau directoare conținând obiecte multiple.
Crystal Import Wizard este poate cea mai reprezentativă aplicație locală care îndrumă procesul de importare a utilizatorilor, grupurilor, rapoartelor și directoarelor. Se pot importa informații din următoarele produse:Info 7, Info 7.5, Crystal Enterprise 8 și Crystal Enterprise 8.5. Funcțiile oferite de Crystal Import Wizard variază, după produsul din care se realizează importul informațiilor. În general, Crystal Import Wizard importă setările specifice fiecărui obiect, și nu setările globale ale sistemului. Astfel, "numărul minim de caractere" necesar unei parole nu este importat, deoarece este o setare sistem, dar setarea "utilizatorul trebuie să schimbe parola la următoarea logare" va fi importată, deoarece este o setare a unui obiect de tip utilizator. Crystal Import Wizard se poate dovedi un instrument eficient pentru realizarea operațiunilor de migrare între diverse versiuni ale acestei soluții, determinând o reducere substanțială a timpului și a resurselor care vor fi consumate pentru acest proces.
8.9.6. Modul de autentificare Crystal Enterprise
Având în vedere orientarea către Web a soluției Crystal Enterprise, este importantă asigurarea unui nivel sporit de securitate în ceea ce privește accesarea diverselor resurse ale sistemului informatic. Crystal Enterprise încorporează instrumente care asigură siguranța exploatării soluției și implementarea unor nivele multiple de acces la rapoartele distribuite.
Prima autentificare a sistemului se realizează în momentul în care utilizatorul încearcă să acceseze sistemul. Acesta trebuie să introducă un nume de utilizator și o parolă validă și să specifice un tip de autentificare. Acest tip poate fi: Enterprise, Windows NT sau LDAP, în funcție de setările realizate în Crystal Management Console (CMC). Browser-ul utilizatorului trimite aceste informații către server folosind protocolul HTTP. Serverul va trimite informațiile primite către Web Component Server (WCS) prin intermediul Web Connector-ului.
Dacă este selectat modul de autentificare Enterprise, plug-in-ul de autentificare va căuta în baza de date a utilizatorilor pentru a regăsi aceste informații și va anunța Automated Process Scheduler (APS) rezultatul procesării. Dacă se specifică autentificare Windows NT sau LDAP, vor fi folosite plug-in-urile de autentificare corespunzătoare. Acestea vor verifica informațiile utilizatorului în bazele de date externe (folosite în autentificarea Windows NT și LDAP) și vor anunța APS privind rezultatul operațiunilor.
În cazul unei autentificări corecte, APS oferă drepturile necesare utilizatorului să realizeze următoarele acțiuni:
APS memorează informațiile despre utilizator într-o variabilă sesiune;
WCS memorează informațiile utilizatorului într-o variabilă a sesiunii. Atâta timp cât sesiunea este deschisă, aceste informații sunt menținute pentru a permite Crystal Enterprise să răspundă la cererile utilizatorului
WCS trimite un certificat către Browser-ul utilizatorului, care va fi menținut de browser sub forma unui element de tip cookie. Până în momentul expirării logării, acest cookie va deține informațiile codate specifice respectivului utilizator.
Toți acești pași contribuie la securitatea Crystal Enterprise, deoarece informațiile sunt stocate pentru a fi folosite în cea de-a doua autentificare a sistemului. Cea de-a doua autentificare va avea loc în momentul în care utilizatorul va încerca să realizeze acțiuni asupra rapoartelor (vizualizare, rulare, modificare) sau să modifice setările în Crystal Management Console.
Când utilizatorul încearcă să acceseze un obiect, browser-ul trimite cererea către WCS. Înainte de a filtra cererea, acesta va realiza o serie de acțiuni.
în prima etapă componenta WCS verifică dacă există un certificat valid;
dacă nu există acest certificat sau el a devenit invalid, va fi reinițializat procesul de autentificare;
ulterior se va verifica existența unei sesiuni interne care să corespundă utilizatorului. În situațiile în care variabila de sesiune a expirat, va fi reinițializată autentificarea utilizatorului;
la final, după ce a fost validat procesul de autentificare, WCS va trimite cererea către serverul care este răspunzător de procesarea acesteia.
Crystal Enterprise poate fi configurat pentru a lucra cu diverse tipuri de firewall-uri. Dacă Connector și WCS sunt instalate pe aceeași mașină, nu vor fi stabilite setări suplimentare, deoarece firewall-ul nu va interveni atunci când două componente comunică între ele. În caz contrar, este necesară efectuarea câtorva setări suplimentare care vor contribui la realizarea conexiunii între cele două componente.
Singura componentă Crystal Enterprise care oferă servicii clienților este Web Connector, care va trebui instalat pe serverul web. Când primește o cerere de la un client, acesta efectuează o cerere TCP/IP către WCS pe un anumit port (implicit 6401). WCS răspunde în mod dinamic cererii, alegând un port aleator și continuând comunicarea pe acest al doilea port. Toate aceste proceduri folosite de Crystal Enterprise, permit asigurarea unui nivel ridicat de securitate și siguranță în exploatare.
8.9.7. Elemente privind dezvoltarea aplicațiilor prin intermediul suportului obiectelor Crystal Report
Prin intermediul claselor de obiecte și a librăriilor disponibile se pot crea aplicații care să acceseze rapoartele Crystal Report. Acest suport este disponibil pentru o paletă vastă de medii de dezvoltare, printre acestea numărându-se Delphi, Visual Basic sau Visual C++. De asemenea, este oferit suportul pentru integrarea rapoartelor Crystal în mediul de dezvoltare Visual Studio .Net. Folosindu-se funcțiile Crystal Report în mediul Visual Studio.Net, se pot realiza aplicații complexe de baze de date, existând și posibilitatea de distribuție a rapoartelor prin intermediul unor servicii Web sau a scripturilor ASP.Net rulate pe parte de server.
În mediul Visual Studio vor fi necesară realizarea următoarelor operațiuni succesive:
În prealabil, se creează un nou proiect Visual Basic de tipul Standard Exe. Proiectul realizat va include o formă în cadrul căreia se vor insera obiectele care permit vizualizarea rapoartelor;
Pentru a putea accesa librăriile și obiectele Crystal Report este necesar ca ele să fie incluse în proiectul Visual Basic obținut. Această operațiune se realizează prin intermediul meniului Project, opțiunea References, setându-se următoarele controale: Crystal Report Viewer Control și Crystal Reports Active X Designer Runtime Library;
După efectuarea operațiunii precedente, controlul Viewer Control va fi accesibil în toolbar-ul în care sunt prezentate controalele care pot fi integrate în aplicație. În acest mod, controlul de vizualizare a rapoartelor poate fi integrat simplu în cadrul formelor aplicațiilor;
În cadrul modulului de cod sursă este necesară adăugarea în cadrul declarațiilor generale a următoarelor instrucțiuni:
Option Explicit
Dim app As New Application
Dim rpt As Report
Pentru ca raportul să fie inițializat după ce forma aplicației a fost deschisă, va fi necesară adăugarea următorului cod la evenimentul From_load;
Private Sub Form_Load()
Set rpt = app.openreport("c:\report2.rpt", 0)
CRViewer1.ReportSource = rpt
CRViewer1.ViewReport
End Sub
În final se poate rula aplicația prin intermediul tastei F5 sau se poate crea fișierul executabil prin intermediul opțiunii Make Exe din meniul File.
8.10. Componenta de business intelligence
În cadrul acestui subcapitol vor fi trecute în revistă soluțiile de business intelligence care stau la baza componentei omonime din soluția SIAD de grup. Astfel, ne vom concentra pe suportul accesibil în cadrul Microsoft SQL Server 2000 și destinat analizei datelor prin intermediul mijloacelor OLAP și Data Mining. De asemenea, vom expune și alte soluții din categoria BI de la Microsoft, care simplifică substanțial procesul de luare a deciziilor, fiind disponibile informații privind modul de realizare al unei aplicații care exploatează aceste tehnologii.
8.10.1. Arhitectura componentei de business intelligence în contextul sistemului informațional al companiei.
Arhitectura aplicației propuse ca studiu de caz în cadrul acestei teze de doctorat presupune existența a trei componente fundamentale:
a. Baza de date – constituie elementul fundamental al analizei. Aceste elemente prezintă o structură relațională și o arhitectură client-server, fiind în cele mai multe cazuri rezultatul integrării unui sistem ERP/CRM în cadrul firmei. Sistemele din această categorie sunt orientate pe tranzacții, posibilitățile de analiză fiind limitate ca o consecință a arhitecturii funcționale a sistemului. Sistemele relaționale nu pot realiza în mod eficient procesul de analiză, fiind necesară transformarea acestora într-un model adecvat capabil să răspundă cerințelor. De asemenea, sistemele operaționale nu pot accesa datele disponibile din mai multe surse informaționale interne și externe ale companiei;
b. Transformarea datelor și crearea depozitului de date – Având în vedere neajunsurile sistemelor operaționale, pentru desfășurarea optimă a analizei va fi absolut necesară realizarea unui proces de transformare a datelor. Pentru aceasta se poate folosi Data Transformation Services (DTS) din SQL Server 2000, cu ajutorul căruia va fi posibilă conectarea la orice sursă de date și extragerea informației, iar în final se pot genera cuburile de analiză.
Datele preluate și transformate sunt salvate într-un depozit de date care poate conține structuri de date relaționale sau multidimensionale. Putem considera depozitul de date ca o agregare a tuturor informațiilor din sursele de date inițiale. Pe baza informațiilor din depozitele de date se pot genera atât cuburile pentru analiza multidimensională, cât și subseturi specifice de date dedicate unor subiecte specifice (Data Marts);
c. Utilizatorii soluției se vor conecta folosind browserul Web și vor extrage subseturi de date pe care le vor analiza local. Ei vor mai putea de asemenea să creeze și să particularizeze interogări care să corespundă cerințelor.
8.10.2. OLAP și SQL
În esență sistemele bazate pe tehnologia OLAP presupun existența unui sistem de baze de date capabil să execute interogări mai complexe decât cele din bazele de date obișnuite realizate pe baza opțiunilor standard incluse în operatorul Select. Aceste operațiuni se realizează prin structurarea multidimensională a datelor și includerea unor noi clauze în cadrul instrucțiunile SQL cum ar fi Rollup sau Cube.
Sistemele care suportă OLAP prezintă tehnici de indexare specializate care permit rularea în timp real a interogărilor. Gradul de complexitate ridicată a interogărilor multidimensionale a determinat necesitatea realizării unor arhitecturi specializate a bazelor de date, pentru a facilita desfășurarea rapidă a acestor operațiuni.
Modelul conceptual al datelor supuse analizelor prin intermediul tehnologiei OLAP este reprezentat printr-un “cub” de informație. Acest „cub” prezintă informațiile incluse în bazele de date relaționale prin două elemente esențiale:
Dimensiunile – care reprezintă categoriile descriptive după care se realizează totalizarea și gruparea datelor;
Valorile – reprezentând datele asupra cărora se realizează operațiunile de însumare, medie, minim, maxim sau orice altă operațiune statistică sau matematică permisă de sistemul de gestiune a bazelor de date.
În terminologia OLAP mai este definit și termenul de ierarhie, care reprezintă nivelele de detaliere pentru o dimensiune de date.
Exemplul tipic de analiză multidimensională îl constituie o bază de date a vânzărilor. Astfel, în cadrul unei asemenea baze de date organizarea informațiilor pentru realizarea interogărilor prin intermediul OLAP presupune existența celor două elemente: dimensiunile – reprezentate în funcție de necesitățile de analiză pe structură geografică (regiune, județ, oraș, client) sau pe structura produselor vândute (model, caracteristici, data vânzării); valorile fiind reprezentate de vânzările cantitative și valorice (cifra de afaceri) asupra cărora se vor aplica funcțiile statistico-matematice de consolidare a datelor (sum, average, min, max etc.).
În cadrul studiului de caz dezvoltat în continuare vom realiza o analiză a structurii vânzărilor pe modele de produse. Ne propunem în acest sens construirea unui tabel care să includă informațiile privind vânzările de automobile dintr-o reprezentanță (această reprezentanță vânzând două mărci de automobile într-o gamă variată de culori). Astfel, în funcție de aceste considerente, am inclus în tabel următoarele dimensiuni: Model – reprezentând modelul de automobil vândut, An – reprezentând anul vânzării și Culoare – reprezentând culoarea modelului vândut. Atributul Vânzări conține numărul de exemplare vândute din fiecare model, reprezentând câmpul asupra căruia se aplică funcțiile de consolidare a datelor.
8.10.3. Arhitectura OLAP și etapele urmate în realizarea analizelor multidimensionale
Un sistem care suportă tehnologia OLAP este organizat într-o arhitectură client-server și prezintă un sistem multi-utilizator. Aceste caracteristici sunt esențiale pentru această tehnologie, fiind înscrise ca reguli fundamentale în manifestul OLAP al lui E.F. Codd din 1993.
Arhitectura unui sistem de gestiune a bazelor de date cu suport OLAP presupune existența pe parte de server a două componente software esențiale, reprezentate de:
Serverul de baze de date – având responsabilități în realizarea interogărilor SQL standard și în pregătirea setului de înregistrări pentru analiza multidimensională. Serverul de baze de date va executa în acest mod instrucțiunile standard Select și gruparea datelor (operatorul group by);
Serverul OLAP – care primește datele furnizate de sistemul de baze de date relaționale și aplică asupra acestora funcțiile OLAP Rollup sau Cube.
Pe parte de client al bazei de date relaționale și a serverului OLAP conexiunea se poate realiza utilizându-se fie clientul pivot table, fie instrumentele tradiționale de conexiune la sursele de date reprezentate de accesul universal și tehnologia OLE DB.
Pentru realizarea unei analize multidimensionale se vor efectua următoarele operațiuni:
Aplicarea funcțiilor matematice și de consolidare pentru elementele de la baza ierarhiei de elemente;
Gruparea datelor prin intermediul operatorului group by pentru fiecare dimensiune a bazei de date;
Realizarea tabelelor încrucișate (cross–tab), care vor include reprezentarea datelor în structură bidimensională;
Unirea reprezentărilor bidimensionale și obținerea rezultatelor în forma multidimensională.
8.10.4. Principalele funcții OLAP
Principalele funcții definite în cadrul tehnologiei OLAP sunt Rollup și Cube. Ambele funcții se adaugă ca parametru suplimentar la o instrucțiune standard SQL Select și includ mai multe nivele de grupare. Pentru utilizarea posibilităților de calcul ale tehnologiei OLAP se adaugă la sfârșitul instrucțiunii SQL comenzile With Rollup sau With Cube.
Funcția Rollup adaugă la setul rezultat în urma executării unei operațiuni Select standard grade de totalizare pentru fiecare nivel de grupare stabilit prin intermediul instrucțiunii group by. Gradele de totalizare sunt prezentate începând cu nivelul cel mai de jos al ierarhiei și continuând cu nivelele superioare ale acesteia. Astfel în cazul exemplului nostru vor fi incluse nivele de totalizare pentru culoarea autoturismelor, anul vânzării și modelul automobilului. În plus va fi prezent și un al patrulea grad de totalizare, reprezentând vânzările totale de automobile. În continuare expunem instrucțiunea SQL –Rollup:
select model, an, culoare, sum(vanzari) as exemplare_vandute
from auto group by model,an,culoare
with rollup;
Prin intermediul instrucțiunii Rollup nu au putut fi determinate toate posibilitățile de consolidare a datelor pentru diferitele combinații de dimensiuni. Instrucțiunea rollup sintetizează complet datele numai la nivelul dimensiunii Model. Astfel, în urma rulării acestei interogări nu se poate preciza câte mașini de o anumită culoare, indiferent de model, s-au vândut în reprezentanță. În acest sens, pentru realizarea unei analize multidimensionale în adevăratul sens al cuvântului, prin intermediul căreia să rezulte toate posibilitățile de combinație între diferite dimensiuni este necesar să utilizăm instrucțiunea Cube. În continuare prezentăm instrucțiunea SQL aferentă:
select model, an, culoare, sum(vanzari) as exemplare_vandute
from auto group by model,an,culoare
with cube;
În locul funcției sum se pot utiliza și alte funcții de sinteză a datelor, cum ar fi mediile (funcția AVG), funcțiile de minim și respectiv maxim. Iată instrucțiunea SQL în care am înlocuit funcția de însumare cu cea de medie:
select model, an, culoare, avg(vanzari) as medii_vandute
from auto group by model,an,culoare
with cube;
Instrucțiunea va genera, în locul gradelor de totalizare, valorile medii ale vânzărilor aferente fiecărui criteriu de grupare.
Pentru a prezenta rapoartele într-o formă mai clară, înlocuind valorile NULL cu etichete text care vor reprezenta gradele de totalizare, am realizat următoarea instrucțiune SQL cu un grad de complexitate ceva mai ridicat:
SELECT CASE WHEN (GROUPING(model) = 1) THEN 'Grad de total model'
model
END AS model,
CASE WHEN (GROUPING(an) = 1) THEN 'Grad de total an'
an
END AS an,
CASE WHEN (GROUPING(culoare) = 1) THEN 'Grad de total culoare'
culoare
END AS culoare,
SUM(vanzari) AS QtySum
FROM auto
GROUP BY model, an, culoare WITH ;
În cadrul acestei instrucțiuni am inclus funcția OLAP Grouping, prin intermediul căreia verificăm dacă înregistrarea din tabelul rezultat este una totalizatoare. Astfel în situația în care ne aflăm pe o linie de total funcția Grouping va returna valoarea 1, iar în situația în care ne aflăm pe o linie intermediară se va returna valoarea 0. Prin intermediul instrucțiunii Case se verifică dacă a fost returnată valoarea 1 de către instrucțiunea Grouping și se afișează eticheta text cu gradul de total. În situația în care valoarea returnată este 0, se trece pe latura Else a instrucțiuni Case, afișându-se valoarea înregistrată în cadrul respectivului câmp.
8.11. Componenta de colaborare și comunicare
SharePoint Portal Server permite conectarea utilizatorilor și a echipelor din cadrul organizațiilor, oferind posibilitatea de comunicare și acces la informații prin intermediul unui portal Web. Integrarea unui mediu colaborativ, având la bază această soluție, poate contribui la eficientizarea proceselor de business, determinând îmbunătățirea modului de lucru în echipă și reducerea timpului necesar pentru luarea deciziilor. SharePoint Portal Server face parte din noul Microsoft Office System, în acest sens este de menționat puternica integrare cu programele care compun acest sistem de aplicații. Astfel, în cadrul suitei Office 2003 sunt disponibile instrumente care simplifică lucrul în echipă și partajarea documentelor prin intermediul acestui portal.
Tehnologia SharePoint permite accesul în mod unitar la diverse sisteme informatice și aplicații. Astfel, prin intermediul acestui portal este oferit accesul la o gamă variată de surse de informații: documente realizate prin intermediul aplicațiilor incluse în cadrul Microsoft Office System, rapoarte rezultate din soluțiile de business intelligence sau sisteme pentru managementul de proiect. De asemenea, este posibilă utilizarea informațiilor din cadrul soluțiilor de tip ERP (Enterprise Resource Planning) și CRM (Customer Relationship Management), fiind disponibile funcții care permit integrarea rapidă cu soluții de acest tip dezvoltate de diverse companii (SAP, PeopleSoft, Siebel). Pentru a asigura un acces eficient la paleta vastă de surse de informații, versiunea 2003 integrează o tehnologie avansată de căutare, care facilitează regăsirea și organizarea documentelor accesibile prin intermediul acestei aplicații.
SharePoint Portal Server permite configurarea simplă a portalului și dispune de mijloace eficiente pentru dezvoltarea unor secțiuni specializate. Elementele de tip Web Part simplifică modul de administrare și particularizare a portalului, existând posibilitatea de a realiza aceste operațiuni prin intermediul browser-ului Web sau de a folosi instrumentele integrate în Microsoft FrontPage 2003. De asemenea, mediul Visual Studio. Net 2003 poate fi folosit pentru dezvoltarea propriilor Web Part-uri, fiind asigurată în acest mod o flexibilitate deosebită în utilizarea acestei tehnologii și adaptarea soluției SharePoint la cerințele diverselor organizații.
8.11.1. Funcțiile componentei de colaborare
Componenta de colaborare asigură cooperarea participanților la procesul decizional de grup, integrând mijloace pentru informarea eficientă a acestora. În continuare sunt trecute în revistă funcțiile de bază ale unui sistem de acest tip:
Existența unei componente de tip portal Web care permite comunicarea informațiilor între participanții la decizii.
Posibilitatea de partajare a documentelor și lucru în echipă la proiecte complexe.
Disponibilitatea datelor oferite de componenta de business intelligence și vizualizarea acestora prin intermediul portalului Web.
În funcție de anvergura echipei care participă la procesele decizionale, poate fi luată decizia implementării uneia din următoarele soluții:
Windows SharePoint Services 2.0. – este soluție de bază care poate fi folosită în grupurile cu un număr restrâns de utilizatori.
Windows SharePoint Portal Server 2003 – este dedicată comunităților mari de utilizatori, putând fi integrată în mediile Enterprise și asigurând un nivel ridicat de disponibilitate a soluției.
În cadrul soluției SIAD de grup propusă prin această teză de doctorat, pentru personalizarea soluției de tip portal și adaptarea cerințelor specifice, au fost realizate mai multe elemente de tip WebParts. Pentru dezvoltarea acestor elemente a fost folosit mediul Visual Studio .NET și add-on-ul dedicat dezvoltării unor proiecte de acest tip. În cadrul figurii 8.16 este prezentată structura clasei de obiecte care permite construcția unor astfel de elemente.
Figura 8.16. Clasa de obiecte dedicată construcției elementelor de tip WebParts.
Legat de elementele de tip WebPart pot fi semnalate următoarele elemente constructive:
Componentele de tip WebPart au fost realizate folosind tehnologia ASP.NET și limbajul VB.NET.
Pentru conectarea la sursele de date a fost folosită colecția de obiecte ADO.NET și funcțiile de acces la sursele de date SQL Server și Analysis Services.
Vehicularea datelor între componenta server și cea client a fost realizată prin intermediul limbajului XML.
8.12. Data Mining (D.M.)
Tehnologia Data Mining, denumită și descoperirea cunoștințelor în bazele de date (Knowledge Discovery în Databases – KDD), este cea mai recentă tehnologie de analiză a datelor, asociată, alături de OLAP, cu conceptul de magazie de date.
În principal se consideră că rădăcinile DM le constituie statistica matematică și pachetele software folosite în științele sociale și în dezvoltarea inteligenței artificiale.
8.12.1. Data Mininng – elemente fundamentale
Într-o întreprindere se acumulează de-a lungul timpului foarte multe date. Păstrate de multă vreme în fișiere, ele pot conține informații și cunoștințe ascunse, care pot servi la bunul mers al întreprinderii, dar, luate ca atare, nu au mare utilitate dacă nu sunt însoțite de mecanisme care să permită explorarea lor și înțelegerea fenomenelor care au guvernat funcționarea surselor de date.
Tehnologiile de analiză a datelor prezentate mai înainte (EIS, OLAP) pot fi văzute ca jucând rolul unor ajutoare în activitatea de verificare a ipotezelor formulate de utilizatori (manageri sau analiști) privind relațiile care există între diferitele date acumulate. Cheia succesului constă în intuiția utilizatorului de a formula cele mai adecvate interogări inițiale și în capacitatea lui de a continua rafinarea analizei pe baza informațiilor primite de la sistemul informatic. Contribuția principală a acestuia constă în facilitarea procesului de analiză. Aceasta realizează fie prin înlesnirea activității de formulare a interogărilor și de obținere a unor rapoarte care permiteau o vizualizare sugestivă (în cazul EIS), fie prin obținerea rapidă a unor răspunsuri prin explorarea multidimensională a unor ierarhii de date agregate, însoțită eventual de prelucrări statistice (în cazul OLAP).
Succesul unei astfel de abordări poate fi afectat de capacitatea limitată a utilizatorului de a intui fenomenele și de îndemânarea sa de a folosi toate posibilitățile oferite de instrumentul informatic. Eficacitatea procesului poate scădea dramatic în cazurile complexe, în care utilizatorul are de-a face cu milioane de situații, fiecare descrisă prin sute de înregistrări.
În cazul DM, sistemul informatic are ca misiune investigarea exhaustivă a datelor pentru a scoate la lumină clasificări, asocieri sau alte modele ale datelor, în timp ce analistului (sau managerului) îi revine sarcina de a decide ce să facă apoi cu aceste rezultate.
8.12.2. Data Mining – definiții
Definiții referitoare la data mining există în mai multe domenii de aplicare a acestui concept. În continuare vor fi precizate elemente privind definițiile generale și cele restrânse, aplicabile la un domeniu specific. Data mining este procesul de descoperire de corelații semnificative, de șabloane și tendințe pornindu-se de la selectarea dintr-un volum mare de informații stocate în depozite de date și folosindu-se diverse tehnici statistice și matematice. Această definiție accentuază conceptul de descoperire și nu se limitează la simpla testare a ipotezelor. Metodologiile includ modele de cunoaștere însoțite de metode statistice și matematice. Tehnologiile utilizate disting conceptul de data mining de rapoartele tradiționalele de business. Tehnologiile de cunoaștere a modelelor extind data mining dincolo de limitele tradiționale ale analizei statistice.
Definițiile restrânse pun accent pe metodele automate și euristice de identificare a informațiilor din seturile de date. Aceste definiții ale data mining restrâng procesul la căutarea automată și la metode de descoperire aplicate asupra bazelor de date cu mari dimensiuni. De asemenea, utilizarea metodelor euristice în data mining constituie un factor distinctiv al acestei tehnologii.
8.12.3. Funcțiile specifice procesului de date mining
Principalele funcții realizate de DM sunt:
a. Gruparea ("clustering"), care este, de cele mai multe ori, prima etapă în analiza bazată pe mineritul datelor. Ea constă în identificarea grupurilor de înregistrări înrudite care pot constitui punctul de plecare pentru explorarea în continuare a unor alte relații;
b. Clasificarea, care este cea mai răspândită tehnică de analiză a datelor, folosește un set de exemple în scopul realizării unui model pentru aranjarea în clase a mulțimii de înregistrări;
c. Capacități de interogare și vizualizare eficientă a rezultatelor analizei – obținerea rezultatelor într-o formă avantajoasă pentru management și posibilitatea de direcționare a analizei către anumite domenii de interes.
În ceea ce privește posibilitățile de utilizare a DM, se pot enumera o serie de aplicații: clasificarea clienților în categorii, stabilirea prețurilor și poziționarea produselor pe piață, descoperirea de clienți potențiali și păstrarea celor existenți, predicția și prevenirea situațiilor de faliment, determinarea nivelului de siguranță al portofoliului de comenzi și a măsurilor adecvate care trebuie să fie luate etc.
Toate aceste aplicații se caracterizează prin aceea că datele se prezintă sub formă numerică sau prin șiruri de simboluri ordonate într-un mod consistent (de obicei, tabele cu rânduri și coloane în baze de date relaționale sau în foi electronice de calcul tabelar). Aceasta permite înțelegerea de către utilizator a semanticii și structurii datelor, în timp ce tehnologiei DM îi revine rolul de a descoperi șabloane prin explorarea exhaustivă a bazei de date. În ultima vreme se constată o nouă direcție promițătoare de dezvoltare, și anume cea denumită "mineritul textelor" din documente cu format liber.
Mineritul datelor este o tehnologie "în creștere", care pare să fie pe punctul de a deveni o "tehnologie cheie", furnizoare de avantaj competitiv. Există o serie de prototipuri și chiar produse comerciale propuse atât de firme mici și inovatoare, cât și de marii producători (de exemplu, Inteligent Miner al firmei , lansat în 1998). Simptomul cel mai semnificativ care poate fi observat este tendința multor giganți ai pieței tehnologiei informației (Microsoft, Oracle, , NCR, Yahoo, Amazon etc.) de a achiziționa produse și firme inovatoare din domeniul DM/KDD
8.12.4. Funcțiile unui sistem DM
Funcția principală a DM este de a extrage modele de cunoștințe din date. Pentru aceasta, DM utilizează o varietate de algoritmi din statistică, recunoașterea formelor, clasificare, logică fuzzy, machine learning, algoritmi genetici, rețele neuronale, vizualizarea datelor, etc. Varietatea de algoritmi poate fi grupată în principalele componente ale DM. Iată care sunt componentele fundamentale ale unei aplicații destinate acestui proces:
modelul – care se reprezintă printr-o funcție într-un spațiu unidimensional sau multidimensional (un ansamblu de funcții). El poate fi reprezentat fie ca o funcție liniară de parametri, fie ca o funcție de probabilitate. Obținerea modelului se realizează prin diferiți algoritmi, cum ar fi cei de clasificare și clusterizare;
criteriile de preferință – care pot fi de natură diferită, unele dintre acestea bazându-se pe ordonare, altele pe interpolare sau pe cea mai bună aproximare;
algoritmi de selecție – care conduc la selectarea a trei elemente importante care apar în DM, și anume: modelul, care se selectează din baza de modele, datele, care se selectează din baza de date și criteriile de preferințe, care se creează din baza de criterii;
stabilirea abaterilor – care constă în algoritmi de determinare a deviației și stabilității; o categorie specifică de astfel de algoritmi sunt cei statistici, prin care se stabilesc abaterile modelului fată de ideal.
8.12.5. Domenii de aplicativitate a tehnologiilor data mining
Creșterea volumului de date pentru care este necesară analiza informațiilor a determinat dezvoltarea unor mijloace speciale capabile, să răspundă acestor cerințe. Data Mining și OLAP sunt tehnologii capabile să răspundă cerințelor momentului. Domeniile de aplicare ale acestor două tehnologii sunt diverse, ele fiind dedicate domeniului economic sau diverselor altor ramuri ale științei.
Astfel, observatorul astronomic nr. 2 de la Palomar (SUA), a efectuat timp de șase ani mai mult de 3000 de fotografii la rezoluția de 16 biti/pixel, fiecare fotografie având o dimensiune 23.040 x 23.040 pixeli. S-au urmărit 2 miliarde de obiecte cerești, fiecăruia fiindu-i măsurate 40 de atribute, stabilite de astronomi. În felul acesta a rezultat o bază de date de 3 Tb. Problema fundamentală era de a clasifica aceste obiecte în corpuri cerești și galaxii. Acest lucru evident nu era posibil să se realizeze manual, așa că s-a elaborat un instrument special, numit Sky Image Cataloging and Analysis Tool (SKI-CAT). SKI-CAT folosea tehnologii speciale de Data Mining pentru analizarea și catalogarea diverselor galaxii și corpuri stelare.
În domeniul economic, având în vedere utilizarea tot mai accentuată a sistemelor informatice pentru derularea tranzacțiilor financiare, s-a produs o acumulare importantă de informații, care a fost necesar să fie analizate. Folosirea Internetului pentru realizarea operațiunilor comerciale a determinat eliminarea barierelor de orice natură din desfășurarea comerțului. De asemenea, mijloacele electronice au permis o fluidizare și accelerare a fluxurilor financiare. Având în vedere aceste considerente, a fost necesară crearea unor mijloace capabile să analizeze un volum mare de date, să sintetizeze informațiile și să asiste procesul decizional. Cele două tehnologii care fac obiectului acestei teze, combinate cu soluții informatice tradiționale, sunt capabile să ofere răspuns acestor nevoi.
Glosar de termeni utilizați în cadrul lucrării
În continuare sunt prezentate definițiile unora dintre termenii utilizați în cadrul acestui curs, a căror cunoaștere este esențială pentru înțelegerea procesului politicilor publice.
• Politici publice: În sens larg, politicile publice se referă la ansamblul acțiunilor care au ca obiect probleme de interes public (servicii publice, investiții publice etc.). În cadrul acestui curs, prin politici publice se înțelege un ansamblu de activități specifice, integrate într-un proces inițiat și desfășurat de administrația publică, în colaborare cu reprezentanți ai societății civile, prin care sunt rezolvate, cu ajutorul instrumentelor legislative, probleme de interes public.
Precizare: Sensul termenului de „politici publice” nu trebuie confundat cu cel al termenului „politic”. Politicile publice se referă strict la programe concrete de măsuri și nu la o ideologie politică. Chiar dacă direcția strategică ar putea fi dată de o ideologie politică, măsurile tehnice prin care această strategie este pusă în aplicare țin de politicile publice (de exemplu, dacă o măsură de creștere a pensiilor sociale se înscrie într-o strategie politică de tip social-democrat, modul concret în care această măsură este formulată și implementată ține de domeniul politicilor publice).
• Problemă de politici publice: O problemă devine o problemă de politici publice atunci când rezolvarea ei întră în competența unor autorități publice în măsură să identifice și să asigure cadrul juridic necesar implementării unei anumite soluții.
• Procesul politicilor publice: Procesul politicilor publice cuprinde totalitatea etapelor care, odată parcurse, au ca rezultat final rezolvarea unei probleme de interes public.
• Etapele procesului politicilor publice: Etapele procesului politicilor publice reprezintă diferite stadii concretizate în activități prin care trece o problemă de politici publice din momentul în care ea este semnalată din interiorul sau din afara sistemului administrației publice și până la rezolvarea acesteia. Împărțirea în etape are rolul de a ordona și a sistematiza procesul politicilor publice, pentru creșterea capacității de coordonare a acestuia.
• Program de politici publice: Un program de politici publice este un set de măsuri înscrise într-o inițiativă coerentă a Guvernului care vizează realizarea unui obiectiv major și care nu poate fi atins printr-o singură măsură (sau printr-un set restrâns de măsuri) de politici publice.
• Proceduri de elaborare a politicilor publice: Procedurile de elaborare cuprind un set de metode și tehnici utilizate în cadrul procesului politicilor publice. Aceste proceduri au rolul de a eficientiza activitatea din cadrul instituțiilor guvernamentale, în vederea asigurării coerenței actului guvernării.
• Agenda publică: Agenda publică conține un set de probleme aflate la un moment dat în discuție publică (mass media, grupuri de presiune, organizații internaționale etc.) care, în opinia unui public interesat, trebuie să devină obiect al acțiunii guvernamentale.
• Agenda instituției: Agenda instituției se referă la acele probleme care au fost alese de către o instituție guvernamentală spre a fi rezolvate prin intermediul unor măsuri specifice, în conformitate cu prioritățile stabilite prin Programul de Guvernare, dar și cu cele identificate la nivel politic pe parcursul actului de guvernare.
• Adrese IP (Internet Protocol adress): Un număr pe 32 de biți (4 octeți) care identifică orice calculator conectat la Internet sau din orice altă rețea care se bazezază pe protocolul TCP/IP. O adresă IP este alcătuită din valorile numerice ale celor patru octeți separate prin puncte. A se vedea și TCP/IP, octet, bit.
• AVI (Audio Video Interleaved): Fișier multimedia care conține secvențe audio și video.
• Baze de date: Modalitate structurată și eficientă de stocare a datelor, oferind posibilitatea de stocare, căutare și indexare a informației din baza de date.
• Bit (Binary digiT): Reprezintă cea mai redusă unitate de informație cu care poate lucra calculatorul. Un bit exprimă o cifră binară (0 sau 1) și este reprezentat fizic printr-un nivel de tensiune înalt sau jos pe un circuit electronic sau printr-o mică porțiune de pe un suport magnetic, megnetizată într-unul dintre cele două moduri.
• Cameră fotografică digitală: Dispozitiv de realizare a fotografiilor care salvează imaginile în format digital. Camerele digitale nu mai utilizează filmul, salvarea fotografiilor realizându-se în unul din formatele grafice digitale (JPEG, BMP etc.), pe dispozitive speciale de stocare (memorii, CD-uri etc.). A se vedea și JPEG, BMP.
• CGI (Common Gateway Interface): Specificație ce definește modul de comunicație între serverul de Web și resursele informaționale existente pe acest server (baze de date sau alte programe). A se vedea și baze de date, server Web.
• Cloud Computing: Reprezintă un ansamblu distribuit de servicii de calcul, aplicații, acces la informații și stocare de date, fără ca utilizatorul să aibă nevoie să cunoască amplasarea și configurația fizică a sistemelor care furnizează aceste servicii.
• Consorțiu WWW: Consorțiul WWW este format din instituții comerciale și educaționale și are ca principal obiectiv standardizarea și asigurarea uniformității la nivelul întregului serviciu Web.
• Country cod Top Level Domain (ccTLD): Șir de două caractere inclus într-un nume de domeniu pentru a identifica țara de proveniență. (US – Statele Unite ale a Americii, RO – România etc.). A se vedea și Top Level Domain".
• CSS (Cascading Style Sheet): Specificație HTML elaborată de consorțiul WWW care permite dezvoltatorilor să atașeze foi de stil paginilor Web. Foile de stil includ specificații de formatare a textului și a altor elemente incluse în documentele HTML. A se vedea și: HTML, cosorțiul WWW.
• DHTML (Dynamic HTML): DHTML se bazează pe limbajul standard HTML, interactivitatea și dinamismul efectelor realizate fiind o rezultantă a combinării cu scripurile JavaScript . Efectele DHTML vor fi declanșate odată cu producerea unui anumit eveniment (deschiderea paginii Web, click etc.). A se vedea și: HTML, Javascript.
• Dial-up: Conexiune la Internet ce utilizează rețeaua telefonică publică pentru transmiterea datelor între utilizator și furnizorul de servicii Internet (ISP). A se vedea și: ISP.
• Director Web: Site care colectează adrese Web și scurte descrieri ale site-urilor, acestea fiind clasificate într-o structură arborescentă, pe domenii specifice.
• Drag&drop (a trage și a plasa): Executarea diverselor operații în interfața grafică a unei aplicații prin tragerea diverselor elemente accesibile în documentele realizate (pagini Web sau ale documente).
• DSL (Digital Subscribe Line): Modalitate de conectare la Internet, având ca principal avantaj viteza deosebit de mare de transmisie și de recepționare a datelor.
• E-mail: Schimb de mesaje sau fișiere într-o rețea de comunicații.
• Extensiile pentru server Frontpage: Extensii ale aplicației FrontPage integrate pe un server Web. Aceste elemente oferă posibilitatea de rulare a unor pagini Web cu un grad de complexitate ridicat (exemplu formularele Web). A se vedea și: server Web.
• Fax-modem: Dispozitiv specializat care permite unui calculator să transmită informații prin intermediul unei linii telefonice obișnuite.
• File Transfer Protocol (FTP): Protocol specializat care vă permite descărcarea sau transmiterea fișierelor prin intermediul Internet-ului.
• Firewall: Soluții însărcinate cu monitorizarea comunicațiilor realizate prin conexiunea la Internet, avertizând sau blocând accesul în cazurile în care cineva intenționează să acceseze datele de pe calculator.
• Flash: Tehnologie ce permite realizarea unor animații interactive spectaculoase. Pentru rularea acestor elemente este necesar să descărcați un plug-in pentru browser-ul Web utilizat, accesibil gratuit pe site-ul www.macromedia.com.
• Fotografie digitală: Imagine stocată într-unul din formatele grafice digitale.
• Găzduire Web: Găzduirea unui site pe un server Web dedicat. A se vedea și: server Web.
• GIF (Graphic Interchange Format): Format grafic elaborat de firma Compuserve. O imagine GIF conține până la 256 de culori, permițând realizarea animațiilor și stabilirea transparenței pentru anumite culori din imagine.
• HTML (Hyper Text Markup Language): Limbajul universal al Internetului, utilizat pentru definirea paginilor Web.
• HTTP (HyperText Transfer Protocol): Protocol de transmitere a paginilor HTML prin intermediul serviciului Web.
• Hypermedia: Termen similar cu cel de hypertext și care dorește să sublinieze îngemănarea în documentele disponibile prin Intermediul serviciului World Wide Web a elementelor multimedia. A se vedea și multimedia, hypertext, World Wide Web.
• Hypertext: Informația disponibilă prin intermediul serviciului World Wide Web și care permite realizarea de legături între diversele documente care compun hypertextul. De asemenea, acesta facilitează parcurgerea într-un mod nesecvențial a informației și căutarea acesteia. A se vedea și hypermedia, World Wide Web.
• Internet: Internet-ul reprezintă ansamblul mondial de rețele care utilizează protocolul TCP/IP pentru a comunica între ele. Internet-ul are la bază linii de comunicație de mare viteză, care leagă mii de calculatoare și rețele cu caracter comercial, guvernamental, educațional, etc.Pentru Internet se mai folosește și termenul prescurtat de NET. A se vedea și rețea de calculatoare, TCP/IP.
• Internet Explorer: Brower Web, dezvoltat de Microsoft, utilizat pe scară largă și fiind integrat în sistmul de operare Windows. A se vedea și: sistem de operare.
• Internet Information Services: Server de Web disponibil pe sistemele de operare de tip Windows. A se vedea și: sisteme de operare, server Web.
• ISDN (Integrated Service Digital Network): Modalitate avansată de conectare la Internet, bazată pe rețeaua telefonică clasică, ce oferă viteze acceptabile de transmisie și recepționare a datelor. De asemenea, este oferită posibilitatea de utilizare concomitentă a conexiunii la Internet, a convorbirilor telefonice sau a transmisiei de Fax-uri.
• ISP (Internet Service Provider): Firma care oferă servicii de acces la Internet. Suplimentar, mai sunt oferite servicii cum ar fi găzduirea de site-uri Web sau servicii de poștă electronică.
• Java: Limbaj de programare orientat pe obiecte, dezvoltat de Sun Microsystems, aplicațiile scrise în acest limbaj putând fi rulate pe orice platformă.
• JPEG (Joint Photografic Experts Group): Standard de stocare a imaginilor în formă comprimată, capabil să afișeze 16,7 milioane de nuanțe de culori.
• kb (kilobit): Unitate de date ce reprezintă 1024 de biți (2 10). A se vedea și bit.
• kbs (kllobit pe secundă): "Viteză de transfer a datelor măsurată în multipli de 1024 de biți. A se vedea și: bit, kilobit.
• LAN (Local Area Network): Grup de calculatoare sau alte dispozitive conectate în cadrul unei rețele aflată pe o suprafață limitată.
• Mb (megabit): Unitate de date ce reprezintă 1,048,576 de biți (2 10). A se vedea și: bit, kilobit.
• META: Etichetă specială specifică limbajului HTML ce permite introducerea unor informații suplimentare în paginile Web. A se vedea și HTML.
• Mhz (Megahertz): Măsură a frecvenței unui procesor sau a altui dispozitiv ce se măsoară într-un milion de cicluri pe secundă.
• MIDI: Format digital pentru păstrarea muzicii digitale.
• Multimedia: O combinație de informație în format text, sunete, imagini, animații, filme și alte elemete de grafică. Toată aceste elemente sunt disponibile prin intermediul calculatoarelor și a Internet-ului. A se vedea și hypertext și hypermedia.
• Netscape Messenger: Client de e-mail integrat în suita de aplicații ce însoțește browser-ul Netscape navigator. A se vedea și: e-mail, Netscape Navigator, Outlook.
• Netscape Navigator: Browser Web care prezintă o arie mare de utilizare. A se vedea și: Internet Explorer, Opera.
• Nume de domeniu: Adresă de tipul www.organizatie.tip ce identifică proprietarul respectivei adrese.
• Octet: Unitate de date formată din 8 biți. A se vedea și bit.
• Opera: Browser Web ce a căpătat în ultimii ani o apreciere tot mai mare în rândul utilizatorilor. A se vedea și: Internet Explorer, Netscape Navigator".
• Outlook: Client de e-mail integrat pe sistemele de operare Windows. A se vedea și: e-mail, Netscape Messenger, sisteme de operare.
• PaintBrush: Utilitar de editare a fișierelor grafice ce dispune de un set de facilități limitat, integrat în cadrul Windows.
• PCI (Peripheral Component Interconect): Specificație realizată de compania Intel care descrie un sistem de magistrală locală ce poate include până la zece plăci de extensie compatibile cu acest standard.
• Pixel: Cel mai mic element de afișare sau tipărire ce poate fi folosit de computer în formarea elementelor grafice.
• PNG (Portable Network Graphics): Format de fișiere pentru imaginile bitmap, conceput ca un “urmaș” a formatului GIF și care elimină restricțiile acestui format. Ca o consecință a lipsei de compatibilitate cu browserele mai vechi, formatul PNG este utilizat mai rar.
• PPP (Point to Point Protocol): Protocol referitor la legătura de date, elaborat de Internet Engineering Task Force pentru conexiunile prin apel telefonic între client și firma ISP. Oferă o mai bună securitate în ceea ce privește securitatea datelor comparativ cu protocolul SLIP. A se vedea și: ISP, SLIP.
• RAM: RAM (Random Access Memory) este utilizată pentru rularea aplicațiilor.
• Rețea de calculatoare: Grup de calculatoare și dispozitive accesorii, conectate prin intermediul unor sisteme de comunicații. Pentru comunicarea între calculatoare se pot folosi cablurile, fibra optică, undele radio sau rețelele de telefonie. O rețea poate implica o comunicare permanentă (prin cabluri) sau una temporară (prin telefon).Termenul consacrat în limba engleză și utilizat destul de frecvent și în România este de Network.
• SaaS (Software as a Service): Model de licențiere și distribuție a aplicațiilor software bazat pe abonament.
• Servere Web: Server Web dedicat publicării aplicațiilor.
• Sistem de operare: Un sistem de operare, prescurtat SO (engleză Operating system, prescurtat OS), reprezintă un produs de tip software care este parte componentă a unui sistem, echipament sau aparat computerizat și care se ocupă de gestionarea și coordonarea activităților acestuia.
• SLIP (Serial Line Internet Protocol): Protocol referitor la legătura de date pentru conexiunile prin apel telefonic între client și firma ISP.
• TCP/IP (Transmision Control Protocol/ Internet Protocol): Protocolul dezvoltat de Ministerul Apărării al Statelor Unite, pentru comunicarea între diverse calculatoare și rețele. El a stat la baza rețelei ARPANET a aceluiași minister, iar ulterior, odată cu extinderea acestei rețele la nivel global, a devenit protocolul utilizat de Internet. A se vedea și rețea de calculatoare.
• Top Level Domain (TLD): Categoria generală de nume de domenii în Internet care include terminațiile COM, EDU, ORG și NET. A se vedea și ccTLD.
• VRML (Virtual Reality Modeling Language): Limbaj de descriere a scenelor, care permite crearea unor imagini grafice tridimensionale și interactive, similare cu cele din unele jocuri video. Pentru vizualizarea acestora este necesar un browser specializat sau un plug-in pentru browser-ul dumneavoastră Web.
• World Wide Web (prescurtat WWW sau Web): Reprezintă ansamblul documentelor hypertext și hypermedia disponibile pe toate serverele Web existente pe glob. A se vedea și hypertext, hypermedia.
Bibliografie
Aamodt, A., and Plaza, E. (1996). Case-Based Reasoning: Foundational Issues, Methodological Variations and System Approaches, AI communications 7 (1), 39-59.
Agosta, L. (2000). From data to insight: the critical path to data mining, a short history of data mining. PC/AI, Sept/Oct, 16-21.
Airinei, D. (1995). Problemes concernant la generalisation des systems experts dans les activites financieres et comptables, The Proceedings of the 2-nd International Symposium of Economic Informatics, May, 1995, pg. 409-412.
Alexander J., Hollis B. (2002). Developing Web applications with Visual Basic .NET and ASP.NET, John Wiley and Sons.
Alter, S. (1977). A taxonomy of Decision Support Systems. Sloan Management Review, 19 (1), 39-56.
Alter, S. (1980). Decision Support Systems; Current Practices and Continuing Challenges. Reading, MA: Addison-Wesley Publishing Co., appeared in DSS News, June 17, 2001, Vol. 2, No. 13
Ambler, S. (1997). Architecture-Driven Modeling, Miller Freeman Software Development Journal, Dec. 1997.
Andone, I. (1994). Sisteme Expert – Principii și dezvoltarea aplicațiilor de gestiune, Iași: A92.
Backus, M. (2001). E-Governance and Developing Countries, Introduction and examples, Research Report, No. 3, April 2001.
Bannister, F. and Walsh, N. (2002). The virtual public servant: Ireland's public services broker. Information Policy: The International Journal of Government & Democracy in the Information Age, 7 (2/3) pp115.
Bedi, K., Singh, P.J. & Srivastava, S. (2001) Government net: new governance opportunities for India. New Delhi: Sage.
Bozeman, B. și Scott, P. (1996). Bureaucratic Red Tape and Formalization: Untangling Conceptual Knots, American Review of Public Administration, vol. 26, nr. 1, pp. 1-18.
Bozeman, B. (1993). A Theory of Government Red Tape, Journal of Public Administration Research and Theory, vol. 3, nr. 3, pp. 273-303.
Bădescu A., Dobre I., Modelarea deciziilor economico-financiare. Ed. Conphys, Rm. Vâlcea, 2001.
Ballim, A. (1992). ViewFinder: A Framework for Representing, Ascribing and Maintaining nested Beliefs of Interacting Agents. Ph.D. Thesis No. 2560, Université de Genève, Switzerland.
Band, W. A. (1994). Touchstones: Ten New Ideas Revolutionizing Business. NY: John Wiley & Sons, Inc.
Becour J.C. (1996). L'estimation des risques de l'entreprise. Paris: C.N.A.M.
Bougnoux, D. (1993). Since de l'information et de la communications. Paris: Larrouse.
Bird J., Stull J. (1983). Business Communications Strategies and Solutions, NY: McGraw Hill.
Birdwell R., Cornes O., Goode C. (2001). Begining ASP.NET using VB.NET, Wrox Press.
Blaug M. (1992). Economic theory in retrospect, București: Editura Didactică și Pedagogică.
Bonczek R.H., Holspple C.W., Whinston A.B. (1981). Foundation of Decision Support Systems, NY: Academic Press.
Codd, E.F., Codd S.B., Salley C.T. (1993) Providing OLAP to User-Analysts: An IT Mandate, ComputerWorld, 26 July 1993. Accesat in Septembrie 2014 la adresa http://www.minet.uni-jena.de/dbis/lehre/ss2005/sem_dwh/lit/Cod93.pdf
Cojocaru S. (2009). Tehnologii de baze de date și soluții pentru asistarea deciziilor. București: Editura Infomega.
Connell, J. (2002). Coding Techniques for Microsoft Visual Basic.NET. Redmond: Microsoft Press.
Connell, J., Morrison J. (2002). Programming VB.NET – a guide for experienced programmers, Berkeley, CA: Apress.
Chapell, D. (2002). Understanding .Net, Boston, MA: Addisson Wesley.
Clift, S. (2003). E-Governance to E-Democracy: Progess in Australia and New Zealand toward Information- Age Democracy. Accesat pe data de 20 noiembrie 2014 la adresa: http://www.publicus.net/articles/edempublicnetwork.html.
DeHart-Davis, L. și Pandey, S.K. (2005). Red Tape and Public Employees: Does Perceived Rule Dysfunction Alienate Managers?. Journal of Public Administration Research and Theory, vol. 15, nr. 1, pp. 133-148.
DeHart-Davis, L., (2008). Green Tape: A Theory of Effective Organizational Rules. Journal of Public Administration Research and Theory, vol. 19, nr. 2, pp. 361-384.
Dye, T. (1992). Understanding Public Policy (7th ed.), Englewood Cliffs, NJ: Prentice Hall.
De Sanctis, Galupe B. (1995) Group Decisions Systems: a new frontier. NY: 1995.
Drucker P. (1992). The new society of organization. Harward Business Review no. 70, Boston, MA.
Drucker P. (1994). The theory of business – Haward Business Review no. 82, Boston, MA.
Dumitrescu M. (1995). Introducere în management și management general, Oradea: EuroUnion.
Fraga, E. (2002). Trends in e-Government: How to Plan, Design, and Measure e-Government. Government Management Information Sciences (GMIS) Conference, June 17, Santa Fe, New Mexico, U.S.A.
Fayyad, U.M., Piatetski-Shapiro, G., Smyth, P., Uthurusamy R. (1996) Advances in Knowledge Discovery and Data Mining, AAAI/MIT Press.
Fayyad U., Uthutasamy, R. (1996) Data Mining and Knowledge Discovering in Databases, Comm. of ACM, November 1996, vol.39, nr.11, p.25-26.
Filip, F.G. (2002). Decizia Asistată de calculator. București: Editura Tehnică.
Gallaugher, J.M., and Ramanathan, S.C., " The Critical Choice of Client/Server Architecture: Two-Tier vs. Three-Tier Systems ", Information Systems Management, Spring 1996, pp. 7-13.
Goodsell, C.T. (2000). Red Tape and a Theory of Bureaucratic Rules. Public Administration Review, vol. 60, nr. 4, pp. 373-375.
Grupul BDASEIG (2002). Baze de date fundamente teoretice și practice. București: Editura Infomega.
Grupul de e-Sănătate, Societatea Națională de Medicina Familiei (Dr. Sandra Alexiu, Dr. Sergiu Chirilă, Dr. Dan Doru Pletea, Dr. Ciprian Vornicu, Dr. Raluca Zoițanu). (2014). Dezvoltarea și implementarea Dosarului Electronic de Sănătate (DES) în România, Document de poziție. Accesat in Septembrie 2014 la adresa: www.snmf.ro
Hammer M., Campy J. (1998). Reenginering the corporation: A manifesto for Business Revolutions. NY: Harper Business.
Hanson W. (2000). Principles of Internet Marketing, Ohio: South Western College Publishing.
Herminaux G. (1995). Conducerea proceselor de organizare. București: Ed. Tehnică.
Honour, E., Kaplan, A. (2001). Oracle 8: Secrete, București: Teora.
Humphrey, P. (1996). Introduction. In P. Humphery, L. Bannon, A. Mc. Cosh, P. Migliarese, J. Ch. Pomerol (Eds.), Implementing Systems for Supporting Management Decisions: Concepts, Methods and Experiences. London: Chapman & Hall.
Henriaux G., Noye D. (1995). Ameliorarea calității proceselor. București: Editura Tehnică.
Holmes, D. (2001) eGov: eBusiness Strategies for Government. London, U.K.: Nicholas Brealey.
Howard, M. (2001) E-Government across the globe: How will "e" change government? Government Finance Review, vol. 17, Issue 4.
Irani, Z.; Al-Sebie, M.; Elliman, T. (2006) Transaction Stage of e-Government Systems: Identification of Its Location and Importance, System Sciences. HICSS Proceedings of the 39th Annual Hawaii International Conference, Volume 4, Issue, 04-07;
Ishikawa, K. (1982) Guide to Quality Control, Second revised english Edition, Tokyo: Asian Productivity Organization.
Juran, Joseph M.(2000). Planificarea calității. București: Teora.
Jensen, Michael C., and William H. Mackling (1976). Theory of the Firm: Managing Behavior, Agency Cost, and Ownership Structure, Journal of Financial Economics, Volume 3.
Kalakota, R., Robinson, M. (2001) e-Business 2.0. Roadmap for success, Boston, MA: Addison-Wesley.
Kaufman, F. (1966). Data systems that cross company boundaries. Harvard Business Review, 44(1), 141–155
Keen, P.G.W., M.S. Scott-Norton (1978). Decision Support Systems: An Organizational Perspective. Reading, MA: Addison-Wesley.
Kirkpatrick, K. (1993). Here comes the payoff from PC. In R.H. Sprague Jr., H.J. Watson (Eds.), Decision Support Systems. Putting Theory into Practice. Prentice Hall, Englewood Cliffs, New Jersey.
Klein M.; Methlie L.B (1995). Knowledge – Based Decision Support Systems with Applications in Business, NY: John Wiley&Sons.
Klein, M., A. Manteau (1983). OPTRANS: a tool for implementation of decision support centers. În H.G. Sol (Ed.), Processes and Tools for Decision Support. North Holland, Amsterdam.
Kubr M. (1992). Management Consulting – Manualul consultantului în management. București: Ed. Amcor.
Kusiak, A. (1990). Intelligent Management Systems. Englewood : Prentice Hall.
Keohane, R. O. and Nye, J. S.(2000) Governance in a Globalization World. In Nye, J. S. and Donahue, J.D. (editors), Washington, D.C.: Brookings Institution Press.
Kettl, D. F. (2002) The Transformation of Governance, John Hopkins University Press, U.S.A.
Leitner, C. (2003) eGovernment in Europe: The State of Affairs, European Institute of Public Administration, Maastricht, the Netherlands.
Lehnisch J.P. (1990) Creation d'Entreprise, les cles du succes, Paris: les Editions d'organisation.
Liberty, J. (2002). Programming C# Second Edition. O'Reilly.
Luthans, F. (1983). Organizatiol Behaviour. NY: McGraw Hill.
Lucey, T. (1991). Management Information Systems, 6th Edition, London, UK: DP Publications Ltd.
Maguire, J. (2000). The Electronic vision, IBM solutions for Public Safety and Justice, 1999/2000, pp 4-7
McFadzen E.S. (1996) New Way of thinking: An Evalution of K – Goupware and Creative Problem Solving, Doctoral Dissertations, Hanley Management College, Brunel University, Oxford.
META Group Application Development Strategies (1995) Data Mining for Data Warehouses: Uncovering Hidden Patterns, 7/13/95
Metcalfe, Robert M. (1996) Packet Communication, in ‘Computer Classics Revisited’, ed. P. Salus.
Miroiu A, Zulean, M., Radoi, M. (2002) Politici publice. București: Ed. Politeia.
Miroiu, A. (2001) Introducere în analiza politicilor publice. București: Ed. Paideia.
Năstase, F. Năstase, P. (2002). Tehnologia aplicațiilor Web (XML-DOM-ASP). București: Editura Economică.
Niculescu, M. (2000). Diagnostic global strategic. București: Editura Economică.
Nicolescu O. et all. (1998) Sistemul decizional al organizației . București: Editura Economică.
Nitchi, S.I., Racovitan, D. coordonatori (1995) Bazele prelucrării informațiilor și tehnologie informatională, Deva: Ed. Intelcredo, 1996.
Okot-Uma, R.W. (2000) Electronic Governance: Re-inventing Good Governance. London, U.K.: Commonwealth Secretariat;
O'Brien, E. (1993) Decision Support and Expert Systems. NY: Macmillan Publishing Company.
Oracle Corporation (1999). Analytic Functions for Oracle 8i, White Paper.
Paulson L.C. (1993) M.L. for the Working Programmer. Cambridge: Cambridge University Press.
Pearl J. (1984). Heuristics. Intelligent Search Strategies for computer problem solving. Reading, Ma: Addison-Wesley.
Prosise, J. (2003). Programming Microsoft .NET. Microsoft Press.
Profiroiu, M., Iorga, E. (2009) Manual de politici publice. București: Editura Economică.
Perogord Michel (1997). Etapele calității: Demersuri și instrumente. București: Editura Tehnică.
Riley, T.B. (2003) E-government vs. E-governance: Examining the Difference in a Changing Public Sector Climate, The Commonwealth Secretariat and Government Telecommunications and Information Services, Public Works and Government Services, Canada;
Sharma, S.K. (2004). Assessing E-government Implementations, Electronic Government Journal, 1(2), 2004, pp. 198-212;
Sharma, S. K. (2006) An E-Government Services Framework, Encyclopedia of Commerce, E-Government and Mobile Commerce, Mehdi Khosrow-Pour, Information Resources Management Association, Idea Group Reference, USA, pp. 373-378. 2006;
Smith, P. (2001). Client/Server Computing – Sams Publishing.
Sharma, S. K. and Gupta, J. N. D. (2003) Building Blocks of an E-government – A Framework, Journal of Electronic Commerce in Organizations, (1:4), 2003, pp. 34-48;
Sheridan, W., and Riley, T.B. (2006) Commonwealth Centre for e-Governance, e-Gov Monitor, Monday, 3 July, 2006;
Raybaud J.C. (1998). Analyse financiere. Paris: Ed. Nathan.
Richter J. (2002). Applied Microsoft .NET Framework. Microsoft Press.
Ridgeway M. (2002). NET Wireless Programming, Sybex, SUA.
Russel S. , Norvin P. (1995). Artificial Intelligence. A modern Approach. Englewood Cliffs, New Jersey: Prentice Hall.
Scott J. (2000). Decisions Support Systems -Organizational Knowledge and the Intranet, London, UK: Nicholas Brealey Publishing.
Shappiro J., Visual Basic .NET Developer's HeadStart, Osborne/McGraw Hill, 2001.
Sinha, R. – Client/server computing – Communications of the ACM – 1992.
Stanciu, V. (2001). Proiectarea sistemelor informatice. București: Editura Dual Tech.
Tamaș, I., Popa G., Berbec F., Vrîncianu M., Glăvan N. (2001). Sisteme de gestiune a bazelor de date – Visual FoxPro. București: Editura CISON.
Taylor R.G. (1998). Model of Computation and Formal Language. Oxford University Press.
Taylor, D. (1995). Business Engineering with Object Technology, NY: John Wiley & Sons.
Thagard, P. (1999) Introduction to Congnitive Since, Cambridge, MIT Press.
Thai, T., Lam, H. (2002) .NET Framework Essentials. O'Reilly.
Thearling, K. (1995) From Data Mining to Data Base Marketing, White Paper, 95/02, October 1995, Data Inteligent Group, Pilot Software, http://www.santafe.edu/~kurt/wp9502.html
Thibaut J.C. (1989). Le diagnostic d'entreprise. Paris: Les Editions d'Organisations.
Troelsen A. (2002). Visual Basic .NET and the .Net Platforms: An advanced Guide. Apress.
Webb J. (2002) Developing Web Applications with Microsoft Visual Basic .NET and Microsoft C#, Microsoft Press, USA.
Winter, R. (2000) SQL-99´s New OLAP Functions, Intelligent Enterprise, Jan., 20, 2000.
Wysoki, R.K., DeMichiell R.L., (1997) Managing Information Across the Enterprises. NY: ed. John Willey.
Weimer, L. D., Vinning, R.A. (2004) Analiza politicilor publice- concepte si practica, editia a III-a. București: Ed. Arc, Bucuresti.
Zaharie D., Albescu F., Bojan I., Invancenco V., Vasilescu C. (2002) Sisteme Informatice pentru asistarea deciziilor. București: Editura Dual Tech.
Zaharie D., Roșca I. (2002). Proiectarea obiectuală a sistemelor informatice. București: Editura Dual Tech.
Zemke, F., Hulkarni, K., Witkowski, A., Lyle, B. (1999) Introduction to OLAP functions, ISO/ IEC JTC1/SC32 WG3:YGJ, ANSI NCITS H2-99-154, Apr. 1999.
***
Secretariatul General Al Guvernului, Direcția De Politici Publice. Ghid privind elaborarea, implementarea și evaluarea politicilor publice la nivel central, 2004, http://www.mcsi.ro/Minister/Despre-MCSI/Unitatea-de-Politici-Publice/Documente-suport/ghid, (consultat 10 septembrie 2014);
Secretariatul General Al Guvernului, Direcția De Politici Publice. Manual pentru elaborarea propunerii de politici publice, 2006, (consultat 10 septembrie 2014) http://www.minind.ro/politici_publice/Manual_elaborare_propunere_politici _publice_.pdf;
Guvernul României. Ministerul Comunicațiilor Și Tehnologiei Informației, Ghid Privind Realizarea Paginilor Web Pentru Administrația Publică Centrală Și Locală Din România, 2008, (consultat 10 septembrie 2014) http://www.fonduri-ue.ro/res/filepicker_users/cd25a597fd-62/Documente_Suport/Studii/2_Studii_POSCCE/8_MCTI_Ghid_Website_2008.pdf
Ministerul pentru societatea informațională, Manual de metode folosite în planificarea politicilor publice și evaluarea impactului, 2006, http://www.mcsi.ro/Minister/Despre-MCSI/Unitatea-de-Politici-Publice/Documente-suport, (consultat 10 septembrie 2014);
Manual de metode folosite în planificarea politicilor publice și evaluarea impactului, MCSI, 2006, http://www.mcsi.ro/Minister/Despre-MCSI/Unitatea-de-Politici-Publice/Documente-suport/manual-de-metode-in-planificarea-pp-si-evaluarea-i, (consultat 10 septembrie 2014);
Cum sa formulezi corect recomandari de politica publica: Ghid practic destinat organizatiilor neguvernamentale, Drd. Bondar, F., Iorga, E. , Bucuresti 2009, Institutul pentru Politici Publice, http://www.ipp.ro/library/Ghid%20Politici%20Publice_ONG%20_2_.pdf, (consultat 10 septembrie 2014);
Ministerul Comunicațiilor și Societății Informaționale (MCSI) – Strategia guvernamentală de dezvoltare a comunicațiilor electronice în bandă largă în România pentru perioada 2009 – 2015, www.mcesi.ro, (consultat 10 septembrie 2014);
UN Global E-government Readiness Report. From E-government to E-inclusion, UNPAN/2005/14, United Nations publication, United Nations, 2005.Anderson, J., Public policy making (2nd ed.), Princeton, NJ, Houghton Mifflin, 1994;
Strategia Națională privind Agenda Digitală pentru România, Octombrie 2014, http://www.mcsi.ro/
Strategia de e-Sănătate a Ministerului Sănătății, (consultat 10 septembrie 2014) www.ms.ro/documente/256_588_Anexa%20strategie%20e-sanatate.doc
Digital Agenda for Europe – http://ec.europa.eu/digital-agenda/en/our-goals/pillar-i-digital-single-market (consultat 10 septembrie 2014).
***
Hotărârea Guvernului nr. 1361 din 26.09.2006 cu privire la Conținutul instrumentului de prezentare și motivare a proiectelor de acte normative supuse aprobării Guvernului publicată în M.O. nr. 843 din 12.10.2006;
Hotărârea Guvernului nr. 1485 din 19.11.2008 pentru modificarea art. 3 din Hotărârea Guvernului nr. 405/2007 privind funcționarea Secretariatului General al Guvernului publicată în M.O. nr. 794 din 26.11.2008;
Hotărârea Guvernului nr. 158 din 13.02.2008 pentru aprobarea Componentei de programare bugetară din cadrul Metodologiei privind sistemul de planificare strategică pe termen mediu al instituțiilor administrației publice de la nivel central publicată în M.O. nr. 134 din 21.02.2008;
Hotărârea Guvernului nr. 1623 din 23.12.2003 privind înființarea Consiliului Superior pentru Reforma Administrației Publice, Coordonarea Politicilor Publice și Ajustare Structurală publicată în M.O. nr. 53 din 22.01.2004;
Hotărârea Guvernului nr. 1807 din 13.12.2006 pentru aprobarea Componentei de management din cadrul Metodologiei privind sistemul de planificare strategică pe termen mediu al instituțiilor administrației publice de la nivel central publicată în M.O. nr. 1024 din 22.12.2006;
Hotărârea Guvernului nr. 561 din 10.05.2009 pentru aprobarea Regulamentului privind procedurile, la nivelul Guvernului, pentru elaborarea, avizarea și prezentarea proiectelor de documente de politici publice, a proiectelor de acte normative, precum și a altor documente, în vederea adoptării și aprobării publicată în M.O. nr. 319 din 14.05.2009;
Hotărârea Guvernului nr. 750 din 14.07.2005 privind constituirea comisiilor interministeriale permanente publicată în M.O. nr. 676 din 28.07.2005;
Hotărârea Guvernului nr. 775 din 14.07.2005 pentru aprobarea Regulamentului privind procedurile de elaborare, monitorizare și evaluare a politicilor publice la nivel central publicată în M.O. nr. 685 din 29.07.2005;
Hotărârea Guvernului nr. 870 din 28.06.2006 privind aprobarea Strategiei pentru îmbunătățirea sistemului de elaborare, coordonare și planificare a politicilor publice la nivelul administrației publice centrale publicată în M.O. nr. 637 din 24.07.2006.
Legea nr. 161/19.04.2003 privind unele măsuri pentru asigurarea transparenței în exercitarea demnităților publice, a funcțiilor publice și în mediul de afaceri, prevenirea și sancționarea corupției publicată în M.O. nr. 279 din 21.04.2003.
***
http://msdn.microsoft.com
www.microsoft.com/technet
www.uky.edu/businesseconomics
www.idc.com
www.idg.com
www.asp.net
www.mysqlphp.as.ro
www.technologyevaluation.com
www.intelligententerprise.com
www.santafe.edu/~kurt/wp9502.html
http://www.pilotsw.com/r_and_t/whatpaper/datamine/
http://www.vpi.edu/~vanepa2/
www.almaden.ibm.com/cgi-bin/stss/data-mi
http://www.byte.com/art9510/sec8/sec8.html
http://www.cs.su.oz.au/~thierry/ckdd.htm
http://www.e-guvernare.ro/
https://e-estonia.com/
http://ec.europa.eu/regional_policy/sources/docgener/guides/cost/guide2008_en.pdf 6
http://ec.europa.eu/regional_policy/sources/docgener/guides/cost/guide02_en.pdf
http://ec.europa.eu/romania/news/16122010_servicii_publice_ro.htm1
http://www.youtube.com/results?search_query=+Behavioral+economics+and+public+policy+I
http://www.youtube.com/watch?v=TOkhvy8NRyk
http://www.leanblog.ro/wp/instrumente-lean/instrumente-lean/instrumente-de-analiza/diagrama-cauza-efect/
www.accedio.ro
HCi. “Pareto Analysis”, http://www.hci.com.au/hcisite2/toolkit/paretos.htm
MindTools. “Pareto Analysis: Selecting the Most Important Changes to Make.” http://www.mindtools.com/pages/article/newTED_01.htm
http://www.leanblog.ro/wp/instrumente-lean/instrumente-lean/instrumente-de-analiza/diagrama-pareto/
Bibliografie
Aamodt, A., and Plaza, E. (1996). Case-Based Reasoning: Foundational Issues, Methodological Variations and System Approaches, AI communications 7 (1), 39-59.
Agosta, L. (2000). From data to insight: the critical path to data mining, a short history of data mining. PC/AI, Sept/Oct, 16-21.
Airinei, D. (1995). Problemes concernant la generalisation des systems experts dans les activites financieres et comptables, The Proceedings of the 2-nd International Symposium of Economic Informatics, May, 1995, pg. 409-412.
Alexander J., Hollis B. (2002). Developing Web applications with Visual Basic .NET and ASP.NET, John Wiley and Sons.
Alter, S. (1977). A taxonomy of Decision Support Systems. Sloan Management Review, 19 (1), 39-56.
Alter, S. (1980). Decision Support Systems; Current Practices and Continuing Challenges. Reading, MA: Addison-Wesley Publishing Co., appeared in DSS News, June 17, 2001, Vol. 2, No. 13
Ambler, S. (1997). Architecture-Driven Modeling, Miller Freeman Software Development Journal, Dec. 1997.
Andone, I. (1994). Sisteme Expert – Principii și dezvoltarea aplicațiilor de gestiune, Iași: A92.
Backus, M. (2001). E-Governance and Developing Countries, Introduction and examples, Research Report, No. 3, April 2001.
Bannister, F. and Walsh, N. (2002). The virtual public servant: Ireland's public services broker. Information Policy: The International Journal of Government & Democracy in the Information Age, 7 (2/3) pp115.
Bedi, K., Singh, P.J. & Srivastava, S. (2001) Government net: new governance opportunities for India. New Delhi: Sage.
Bozeman, B. și Scott, P. (1996). Bureaucratic Red Tape and Formalization: Untangling Conceptual Knots, American Review of Public Administration, vol. 26, nr. 1, pp. 1-18.
Bozeman, B. (1993). A Theory of Government Red Tape, Journal of Public Administration Research and Theory, vol. 3, nr. 3, pp. 273-303.
Bădescu A., Dobre I., Modelarea deciziilor economico-financiare. Ed. Conphys, Rm. Vâlcea, 2001.
Ballim, A. (1992). ViewFinder: A Framework for Representing, Ascribing and Maintaining nested Beliefs of Interacting Agents. Ph.D. Thesis No. 2560, Université de Genève, Switzerland.
Band, W. A. (1994). Touchstones: Ten New Ideas Revolutionizing Business. NY: John Wiley & Sons, Inc.
Becour J.C. (1996). L'estimation des risques de l'entreprise. Paris: C.N.A.M.
Bougnoux, D. (1993). Since de l'information et de la communications. Paris: Larrouse.
Bird J., Stull J. (1983). Business Communications Strategies and Solutions, NY: McGraw Hill.
Birdwell R., Cornes O., Goode C. (2001). Begining ASP.NET using VB.NET, Wrox Press.
Blaug M. (1992). Economic theory in retrospect, București: Editura Didactică și Pedagogică.
Bonczek R.H., Holspple C.W., Whinston A.B. (1981). Foundation of Decision Support Systems, NY: Academic Press.
Codd, E.F., Codd S.B., Salley C.T. (1993) Providing OLAP to User-Analysts: An IT Mandate, ComputerWorld, 26 July 1993. Accesat in Septembrie 2014 la adresa http://www.minet.uni-jena.de/dbis/lehre/ss2005/sem_dwh/lit/Cod93.pdf
Cojocaru S. (2009). Tehnologii de baze de date și soluții pentru asistarea deciziilor. București: Editura Infomega.
Connell, J. (2002). Coding Techniques for Microsoft Visual Basic.NET. Redmond: Microsoft Press.
Connell, J., Morrison J. (2002). Programming VB.NET – a guide for experienced programmers, Berkeley, CA: Apress.
Chapell, D. (2002). Understanding .Net, Boston, MA: Addisson Wesley.
Clift, S. (2003). E-Governance to E-Democracy: Progess in Australia and New Zealand toward Information- Age Democracy. Accesat pe data de 20 noiembrie 2014 la adresa: http://www.publicus.net/articles/edempublicnetwork.html.
DeHart-Davis, L. și Pandey, S.K. (2005). Red Tape and Public Employees: Does Perceived Rule Dysfunction Alienate Managers?. Journal of Public Administration Research and Theory, vol. 15, nr. 1, pp. 133-148.
DeHart-Davis, L., (2008). Green Tape: A Theory of Effective Organizational Rules. Journal of Public Administration Research and Theory, vol. 19, nr. 2, pp. 361-384.
Dye, T. (1992). Understanding Public Policy (7th ed.), Englewood Cliffs, NJ: Prentice Hall.
De Sanctis, Galupe B. (1995) Group Decisions Systems: a new frontier. NY: 1995.
Drucker P. (1992). The new society of organization. Harward Business Review no. 70, Boston, MA.
Drucker P. (1994). The theory of business – Haward Business Review no. 82, Boston, MA.
Dumitrescu M. (1995). Introducere în management și management general, Oradea: EuroUnion.
Fraga, E. (2002). Trends in e-Government: How to Plan, Design, and Measure e-Government. Government Management Information Sciences (GMIS) Conference, June 17, Santa Fe, New Mexico, U.S.A.
Fayyad, U.M., Piatetski-Shapiro, G., Smyth, P., Uthurusamy R. (1996) Advances in Knowledge Discovery and Data Mining, AAAI/MIT Press.
Fayyad U., Uthutasamy, R. (1996) Data Mining and Knowledge Discovering in Databases, Comm. of ACM, November 1996, vol.39, nr.11, p.25-26.
Filip, F.G. (2002). Decizia Asistată de calculator. București: Editura Tehnică.
Gallaugher, J.M., and Ramanathan, S.C., " The Critical Choice of Client/Server Architecture: Two-Tier vs. Three-Tier Systems ", Information Systems Management, Spring 1996, pp. 7-13.
Goodsell, C.T. (2000). Red Tape and a Theory of Bureaucratic Rules. Public Administration Review, vol. 60, nr. 4, pp. 373-375.
Grupul BDASEIG (2002). Baze de date fundamente teoretice și practice. București: Editura Infomega.
Grupul de e-Sănătate, Societatea Națională de Medicina Familiei (Dr. Sandra Alexiu, Dr. Sergiu Chirilă, Dr. Dan Doru Pletea, Dr. Ciprian Vornicu, Dr. Raluca Zoițanu). (2014). Dezvoltarea și implementarea Dosarului Electronic de Sănătate (DES) în România, Document de poziție. Accesat in Septembrie 2014 la adresa: www.snmf.ro
Hammer M., Campy J. (1998). Reenginering the corporation: A manifesto for Business Revolutions. NY: Harper Business.
Hanson W. (2000). Principles of Internet Marketing, Ohio: South Western College Publishing.
Herminaux G. (1995). Conducerea proceselor de organizare. București: Ed. Tehnică.
Honour, E., Kaplan, A. (2001). Oracle 8: Secrete, București: Teora.
Humphrey, P. (1996). Introduction. In P. Humphery, L. Bannon, A. Mc. Cosh, P. Migliarese, J. Ch. Pomerol (Eds.), Implementing Systems for Supporting Management Decisions: Concepts, Methods and Experiences. London: Chapman & Hall.
Henriaux G., Noye D. (1995). Ameliorarea calității proceselor. București: Editura Tehnică.
Holmes, D. (2001) eGov: eBusiness Strategies for Government. London, U.K.: Nicholas Brealey.
Howard, M. (2001) E-Government across the globe: How will "e" change government? Government Finance Review, vol. 17, Issue 4.
Irani, Z.; Al-Sebie, M.; Elliman, T. (2006) Transaction Stage of e-Government Systems: Identification of Its Location and Importance, System Sciences. HICSS Proceedings of the 39th Annual Hawaii International Conference, Volume 4, Issue, 04-07;
Ishikawa, K. (1982) Guide to Quality Control, Second revised english Edition, Tokyo: Asian Productivity Organization.
Juran, Joseph M.(2000). Planificarea calității. București: Teora.
Jensen, Michael C., and William H. Mackling (1976). Theory of the Firm: Managing Behavior, Agency Cost, and Ownership Structure, Journal of Financial Economics, Volume 3.
Kalakota, R., Robinson, M. (2001) e-Business 2.0. Roadmap for success, Boston, MA: Addison-Wesley.
Kaufman, F. (1966). Data systems that cross company boundaries. Harvard Business Review, 44(1), 141–155
Keen, P.G.W., M.S. Scott-Norton (1978). Decision Support Systems: An Organizational Perspective. Reading, MA: Addison-Wesley.
Kirkpatrick, K. (1993). Here comes the payoff from PC. In R.H. Sprague Jr., H.J. Watson (Eds.), Decision Support Systems. Putting Theory into Practice. Prentice Hall, Englewood Cliffs, New Jersey.
Klein M.; Methlie L.B (1995). Knowledge – Based Decision Support Systems with Applications in Business, NY: John Wiley&Sons.
Klein, M., A. Manteau (1983). OPTRANS: a tool for implementation of decision support centers. În H.G. Sol (Ed.), Processes and Tools for Decision Support. North Holland, Amsterdam.
Kubr M. (1992). Management Consulting – Manualul consultantului în management. București: Ed. Amcor.
Kusiak, A. (1990). Intelligent Management Systems. Englewood : Prentice Hall.
Keohane, R. O. and Nye, J. S.(2000) Governance in a Globalization World. In Nye, J. S. and Donahue, J.D. (editors), Washington, D.C.: Brookings Institution Press.
Kettl, D. F. (2002) The Transformation of Governance, John Hopkins University Press, U.S.A.
Leitner, C. (2003) eGovernment in Europe: The State of Affairs, European Institute of Public Administration, Maastricht, the Netherlands.
Lehnisch J.P. (1990) Creation d'Entreprise, les cles du succes, Paris: les Editions d'organisation.
Liberty, J. (2002). Programming C# Second Edition. O'Reilly.
Luthans, F. (1983). Organizatiol Behaviour. NY: McGraw Hill.
Lucey, T. (1991). Management Information Systems, 6th Edition, London, UK: DP Publications Ltd.
Maguire, J. (2000). The Electronic vision, IBM solutions for Public Safety and Justice, 1999/2000, pp 4-7
McFadzen E.S. (1996) New Way of thinking: An Evalution of K – Goupware and Creative Problem Solving, Doctoral Dissertations, Hanley Management College, Brunel University, Oxford.
META Group Application Development Strategies (1995) Data Mining for Data Warehouses: Uncovering Hidden Patterns, 7/13/95
Metcalfe, Robert M. (1996) Packet Communication, in ‘Computer Classics Revisited’, ed. P. Salus.
Miroiu A, Zulean, M., Radoi, M. (2002) Politici publice. București: Ed. Politeia.
Miroiu, A. (2001) Introducere în analiza politicilor publice. București: Ed. Paideia.
Năstase, F. Năstase, P. (2002). Tehnologia aplicațiilor Web (XML-DOM-ASP). București: Editura Economică.
Niculescu, M. (2000). Diagnostic global strategic. București: Editura Economică.
Nicolescu O. et all. (1998) Sistemul decizional al organizației . București: Editura Economică.
Nitchi, S.I., Racovitan, D. coordonatori (1995) Bazele prelucrării informațiilor și tehnologie informatională, Deva: Ed. Intelcredo, 1996.
Okot-Uma, R.W. (2000) Electronic Governance: Re-inventing Good Governance. London, U.K.: Commonwealth Secretariat;
O'Brien, E. (1993) Decision Support and Expert Systems. NY: Macmillan Publishing Company.
Oracle Corporation (1999). Analytic Functions for Oracle 8i, White Paper.
Paulson L.C. (1993) M.L. for the Working Programmer. Cambridge: Cambridge University Press.
Pearl J. (1984). Heuristics. Intelligent Search Strategies for computer problem solving. Reading, Ma: Addison-Wesley.
Prosise, J. (2003). Programming Microsoft .NET. Microsoft Press.
Profiroiu, M., Iorga, E. (2009) Manual de politici publice. București: Editura Economică.
Perogord Michel (1997). Etapele calității: Demersuri și instrumente. București: Editura Tehnică.
Riley, T.B. (2003) E-government vs. E-governance: Examining the Difference in a Changing Public Sector Climate, The Commonwealth Secretariat and Government Telecommunications and Information Services, Public Works and Government Services, Canada;
Sharma, S.K. (2004). Assessing E-government Implementations, Electronic Government Journal, 1(2), 2004, pp. 198-212;
Sharma, S. K. (2006) An E-Government Services Framework, Encyclopedia of Commerce, E-Government and Mobile Commerce, Mehdi Khosrow-Pour, Information Resources Management Association, Idea Group Reference, USA, pp. 373-378. 2006;
Smith, P. (2001). Client/Server Computing – Sams Publishing.
Sharma, S. K. and Gupta, J. N. D. (2003) Building Blocks of an E-government – A Framework, Journal of Electronic Commerce in Organizations, (1:4), 2003, pp. 34-48;
Sheridan, W., and Riley, T.B. (2006) Commonwealth Centre for e-Governance, e-Gov Monitor, Monday, 3 July, 2006;
Raybaud J.C. (1998). Analyse financiere. Paris: Ed. Nathan.
Richter J. (2002). Applied Microsoft .NET Framework. Microsoft Press.
Ridgeway M. (2002). NET Wireless Programming, Sybex, SUA.
Russel S. , Norvin P. (1995). Artificial Intelligence. A modern Approach. Englewood Cliffs, New Jersey: Prentice Hall.
Scott J. (2000). Decisions Support Systems -Organizational Knowledge and the Intranet, London, UK: Nicholas Brealey Publishing.
Shappiro J., Visual Basic .NET Developer's HeadStart, Osborne/McGraw Hill, 2001.
Sinha, R. – Client/server computing – Communications of the ACM – 1992.
Stanciu, V. (2001). Proiectarea sistemelor informatice. București: Editura Dual Tech.
Tamaș, I., Popa G., Berbec F., Vrîncianu M., Glăvan N. (2001). Sisteme de gestiune a bazelor de date – Visual FoxPro. București: Editura CISON.
Taylor R.G. (1998). Model of Computation and Formal Language. Oxford University Press.
Taylor, D. (1995). Business Engineering with Object Technology, NY: John Wiley & Sons.
Thagard, P. (1999) Introduction to Congnitive Since, Cambridge, MIT Press.
Thai, T., Lam, H. (2002) .NET Framework Essentials. O'Reilly.
Thearling, K. (1995) From Data Mining to Data Base Marketing, White Paper, 95/02, October 1995, Data Inteligent Group, Pilot Software, http://www.santafe.edu/~kurt/wp9502.html
Thibaut J.C. (1989). Le diagnostic d'entreprise. Paris: Les Editions d'Organisations.
Troelsen A. (2002). Visual Basic .NET and the .Net Platforms: An advanced Guide. Apress.
Webb J. (2002) Developing Web Applications with Microsoft Visual Basic .NET and Microsoft C#, Microsoft Press, USA.
Winter, R. (2000) SQL-99´s New OLAP Functions, Intelligent Enterprise, Jan., 20, 2000.
Wysoki, R.K., DeMichiell R.L., (1997) Managing Information Across the Enterprises. NY: ed. John Willey.
Weimer, L. D., Vinning, R.A. (2004) Analiza politicilor publice- concepte si practica, editia a III-a. București: Ed. Arc, Bucuresti.
Zaharie D., Albescu F., Bojan I., Invancenco V., Vasilescu C. (2002) Sisteme Informatice pentru asistarea deciziilor. București: Editura Dual Tech.
Zaharie D., Roșca I. (2002). Proiectarea obiectuală a sistemelor informatice. București: Editura Dual Tech.
Zemke, F., Hulkarni, K., Witkowski, A., Lyle, B. (1999) Introduction to OLAP functions, ISO/ IEC JTC1/SC32 WG3:YGJ, ANSI NCITS H2-99-154, Apr. 1999.
***
Secretariatul General Al Guvernului, Direcția De Politici Publice. Ghid privind elaborarea, implementarea și evaluarea politicilor publice la nivel central, 2004, http://www.mcsi.ro/Minister/Despre-MCSI/Unitatea-de-Politici-Publice/Documente-suport/ghid, (consultat 10 septembrie 2014);
Secretariatul General Al Guvernului, Direcția De Politici Publice. Manual pentru elaborarea propunerii de politici publice, 2006, (consultat 10 septembrie 2014) http://www.minind.ro/politici_publice/Manual_elaborare_propunere_politici _publice_.pdf;
Guvernul României. Ministerul Comunicațiilor Și Tehnologiei Informației, Ghid Privind Realizarea Paginilor Web Pentru Administrația Publică Centrală Și Locală Din România, 2008, (consultat 10 septembrie 2014) http://www.fonduri-ue.ro/res/filepicker_users/cd25a597fd-62/Documente_Suport/Studii/2_Studii_POSCCE/8_MCTI_Ghid_Website_2008.pdf
Ministerul pentru societatea informațională, Manual de metode folosite în planificarea politicilor publice și evaluarea impactului, 2006, http://www.mcsi.ro/Minister/Despre-MCSI/Unitatea-de-Politici-Publice/Documente-suport, (consultat 10 septembrie 2014);
Manual de metode folosite în planificarea politicilor publice și evaluarea impactului, MCSI, 2006, http://www.mcsi.ro/Minister/Despre-MCSI/Unitatea-de-Politici-Publice/Documente-suport/manual-de-metode-in-planificarea-pp-si-evaluarea-i, (consultat 10 septembrie 2014);
Cum sa formulezi corect recomandari de politica publica: Ghid practic destinat organizatiilor neguvernamentale, Drd. Bondar, F., Iorga, E. , Bucuresti 2009, Institutul pentru Politici Publice, http://www.ipp.ro/library/Ghid%20Politici%20Publice_ONG%20_2_.pdf, (consultat 10 septembrie 2014);
Ministerul Comunicațiilor și Societății Informaționale (MCSI) – Strategia guvernamentală de dezvoltare a comunicațiilor electronice în bandă largă în România pentru perioada 2009 – 2015, www.mcesi.ro, (consultat 10 septembrie 2014);
UN Global E-government Readiness Report. From E-government to E-inclusion, UNPAN/2005/14, United Nations publication, United Nations, 2005.Anderson, J., Public policy making (2nd ed.), Princeton, NJ, Houghton Mifflin, 1994;
Strategia Națională privind Agenda Digitală pentru România, Octombrie 2014, http://www.mcsi.ro/
Strategia de e-Sănătate a Ministerului Sănătății, (consultat 10 septembrie 2014) www.ms.ro/documente/256_588_Anexa%20strategie%20e-sanatate.doc
Digital Agenda for Europe – http://ec.europa.eu/digital-agenda/en/our-goals/pillar-i-digital-single-market (consultat 10 septembrie 2014).
***
Hotărârea Guvernului nr. 1361 din 26.09.2006 cu privire la Conținutul instrumentului de prezentare și motivare a proiectelor de acte normative supuse aprobării Guvernului publicată în M.O. nr. 843 din 12.10.2006;
Hotărârea Guvernului nr. 1485 din 19.11.2008 pentru modificarea art. 3 din Hotărârea Guvernului nr. 405/2007 privind funcționarea Secretariatului General al Guvernului publicată în M.O. nr. 794 din 26.11.2008;
Hotărârea Guvernului nr. 158 din 13.02.2008 pentru aprobarea Componentei de programare bugetară din cadrul Metodologiei privind sistemul de planificare strategică pe termen mediu al instituțiilor administrației publice de la nivel central publicată în M.O. nr. 134 din 21.02.2008;
Hotărârea Guvernului nr. 1623 din 23.12.2003 privind înființarea Consiliului Superior pentru Reforma Administrației Publice, Coordonarea Politicilor Publice și Ajustare Structurală publicată în M.O. nr. 53 din 22.01.2004;
Hotărârea Guvernului nr. 1807 din 13.12.2006 pentru aprobarea Componentei de management din cadrul Metodologiei privind sistemul de planificare strategică pe termen mediu al instituțiilor administrației publice de la nivel central publicată în M.O. nr. 1024 din 22.12.2006;
Hotărârea Guvernului nr. 561 din 10.05.2009 pentru aprobarea Regulamentului privind procedurile, la nivelul Guvernului, pentru elaborarea, avizarea și prezentarea proiectelor de documente de politici publice, a proiectelor de acte normative, precum și a altor documente, în vederea adoptării și aprobării publicată în M.O. nr. 319 din 14.05.2009;
Hotărârea Guvernului nr. 750 din 14.07.2005 privind constituirea comisiilor interministeriale permanente publicată în M.O. nr. 676 din 28.07.2005;
Hotărârea Guvernului nr. 775 din 14.07.2005 pentru aprobarea Regulamentului privind procedurile de elaborare, monitorizare și evaluare a politicilor publice la nivel central publicată în M.O. nr. 685 din 29.07.2005;
Hotărârea Guvernului nr. 870 din 28.06.2006 privind aprobarea Strategiei pentru îmbunătățirea sistemului de elaborare, coordonare și planificare a politicilor publice la nivelul administrației publice centrale publicată în M.O. nr. 637 din 24.07.2006.
Legea nr. 161/19.04.2003 privind unele măsuri pentru asigurarea transparenței în exercitarea demnităților publice, a funcțiilor publice și în mediul de afaceri, prevenirea și sancționarea corupției publicată în M.O. nr. 279 din 21.04.2003.
***
http://msdn.microsoft.com
www.microsoft.com/technet
www.uky.edu/businesseconomics
www.idc.com
www.idg.com
www.asp.net
www.mysqlphp.as.ro
www.technologyevaluation.com
www.intelligententerprise.com
www.santafe.edu/~kurt/wp9502.html
http://www.pilotsw.com/r_and_t/whatpaper/datamine/
http://www.vpi.edu/~vanepa2/
www.almaden.ibm.com/cgi-bin/stss/data-mi
http://www.byte.com/art9510/sec8/sec8.html
http://www.cs.su.oz.au/~thierry/ckdd.htm
http://www.e-guvernare.ro/
https://e-estonia.com/
http://ec.europa.eu/regional_policy/sources/docgener/guides/cost/guide2008_en.pdf 6
http://ec.europa.eu/regional_policy/sources/docgener/guides/cost/guide02_en.pdf
http://ec.europa.eu/romania/news/16122010_servicii_publice_ro.htm1
http://www.youtube.com/results?search_query=+Behavioral+economics+and+public+policy+I
http://www.youtube.com/watch?v=TOkhvy8NRyk
http://www.leanblog.ro/wp/instrumente-lean/instrumente-lean/instrumente-de-analiza/diagrama-cauza-efect/
www.accedio.ro
HCi. “Pareto Analysis”, http://www.hci.com.au/hcisite2/toolkit/paretos.htm
MindTools. “Pareto Analysis: Selecting the Most Important Changes to Make.” http://www.mindtools.com/pages/article/newTED_01.htm
http://www.leanblog.ro/wp/instrumente-lean/instrumente-lean/instrumente-de-analiza/diagrama-pareto/
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Utilizarea Tehnologiilor Informatiei Si Comunicatiilor In Administratia Publica (ID: 130187)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
