retele sociale digitale ubicue

64
Universitatea „Alexandru Ioan Cuza” Facultatea de Informatică Reţele Sociale Digitale Ubicue Coordonator: Lect. Dr. Corneliu Sabin Buraga Absolvent: Mihai Alexandru Serea Iaşi, 2005 1

Upload: mihai-alexandru-serea

Post on 05-Dec-2014

8.793 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Retele Sociale Digitale Ubicue

Universitatea „Alexandru Ioan Cuza” Facultatea de Informatică

Reţele Sociale Digitale Ubicue

Coordonator: Lect. Dr. Corneliu Sabin Buraga Absolvent: Mihai Alexandru Serea

Iaşi, 2005

1

Page 2: Retele Sociale Digitale Ubicue

Cuprins Cuprins..................................................................................... 2 1. Introducere ........................................................................... 4

1.1 Istoric.......................................................................... 6 1.1.1 Reţele de Calculatoare ................................................. 6

1.1.1.1 Internet ........................................................... 8 1.1.1.2 World Wide Web.................................................10 1.1.1.3 Web Semantic....................................................11 1.1.1.4 Web of Trust .....................................................12

1.2 Tehnologii Web ..............................................................13 1.2.1 Markup ....................................................................13 1.2.2 Aplicaţii Web .............................................................14 1.2.3 Servicii Web ..............................................................15

1.3 Colaborare Digitală..........................................................16 1.3.1 Poştă Electronică ........................................................16 1.3.2 Mesagerie Instantă ......................................................17 1.3.3 Comunităţi On-line ......................................................18 1.3.4 Reţele Sociale Digitale..................................................18

2. .NET Framework – Prezent şi Viitor ...............................................20 2.1. Rezumat.......................................................................21

2.1.1. CLR (Common Language Runtime)....................................22 2.1.1.1. CTS (Common Type System)...................................23

2.1.2. Class Library .............................................................24 2.1.3. Dezvoltare Aplicaţii Client .............................................24 2.1.4. Dezvoltare Aplicaţii Server.............................................25

2.1.4.1. ASP.NET vs. ASP .................................................26 2.2. Inovaţii ale .NET Framework 2.0 ..........................................28

2.2.1. Îmbunătăţiri şi Modificări ..............................................28 2.2.2. Compatibilitate ..........................................................36

2.3. Instrumente pentru Dezvoltare...............................................37 2.3.1. Visual Studio 2005 „Whidbey” ........................................37 2.3.2. Team System .............................................................37

2.4. Spre „Longhorn” – Viitorul .NET...........................................38 2.4.1. „WinFS” – Semantică pentru Desktop ................................38 2.4.2. „Avalon” – Un Nou Sistem de Prezentare Grafică ..................38 2.4.3. „Indigo” – Viitorul Serviciilor Web ....................................39

3. Reţele Sociale Digitale Ubicue.....................................................40 3.1. Introducere ...................................................................41 3.2. Propunere.....................................................................42

3.2.1. Beneficii...................................................................43 3.2.2. Problematică .............................................................51

4. Sistemul MobiNET – O Nouă Abordare ............................................52 4.1. Rezumat.......................................................................53 4.2. Utilizatori .....................................................................53

2 2

Page 3: Retele Sociale Digitale Ubicue

4.3. Arhitectura Soluţiei .........................................................53 4.3.1. Servicii Web - MobiNETService ........................................54 4.3.2. Aplicaţii ...................................................................55

4.3.2.1. Aplicaţie Web - MobiNET.......................................56 4.3.2.2. Aplicaţie Desktop - MobiNETWinApp.........................57 4.3.2.3. Aplicaţie Pocket PC - MobiNETPPCApp ......................58

4.4. Inovaţii ........................................................................59 5. Concluzii...............................................................................60 Direcţii Viitoare de Cercetare .........................................................62 Referinţe ..................................................................................63 Glosar ......................................................................................64

3 3

Page 4: Retele Sociale Digitale Ubicue

1. Introducere

4 4

Page 5: Retele Sociale Digitale Ubicue

Introducere

În urmă cu ceva timp a fost lansată o teorie, mai mult sau mai puţin controversată, conform căreia numărul mediu de „grade de separaţie” între doi locuitori ai planetei este şase. Cum se traduce această ipoteză? Dacă am considera că fiecare persoană reprezintă un nod într-un graf, iar muchiile reprezintă relaţiile dintre persoane, această teorie s-ar putea traduce prin faptul că, „lungimea” medie a drumului dintre două noduri este şase, astfel, parcurgând, în medie, o distanţă de şase relaţii, putem ajunge de la o persoană, la oricare alta. Lucrarea de faţă nu îşi propune demonstrarea sau infirmarea acestei teorii, în schimb constatăm faptul că, de la lansarea acesteia, tot mai multe „entităţi” sunt interesate de „explorarea” acestui „graf” imaginar, consecinţă directă fiind faptul că, în momentul actual se înregistrează o continuă creştere a popularităţii fenomenului reţelelor sociale digitale. Multitudinea aplicaţiilor Web care abordează acest subiect şi numărul mare de utilizatori oferă un semnal evident asupra dorinţei umane de „conectare”, de atestare a apartenenţei la o comunitate şi de dezvoltare a acestei comunităţi, iar locul cel mai potrivit pentru dezvoltarea acestui fenomen este, categoric, Internet-ul.

În domeniul tehnologiilor informaţionale, categoric, Internet-ul reprezintă „entitatea” cu cea mai mare popularitate şi cea mai rapidă evoluţie. Acest „succes” al Internet-ului se datorează, în mare parte, posibilităţilor nelimitate de comunicare şi accesare a datelor şi informaţiilor diverse, oferite utilizatorilor. În evoluţia sa, Internet-ul se îndreaptă către un nou salt major, urmărind îmbunătăţirea experienţei utilizării produselor şi serviciilor disponibile. Acest salt ne va aduce în pragul unei noi ere, în care modelarea datelor va ţine cont de sintaxă, de semantică şi de pragmatică - era Web-ului semantic.

Această lucrare îşi propune descrierea următoarei generaţii de tehnologii .NET şi conexe, ca tehnologii care impun standardele dezvoltării viitoare a Internet-ului şi a spaţiului Web, precum şi realizarea unui studiu de caz, cu ajutorul unei aplicaţii ce reprezintă concretizarea unei noi abordări a subiectului interacţiunii persoană-calculator, din perspectiva îmbunătăţirii interacţiunii persoană-persoană, în contextul reţelelor sociale digitale şi al Web-ului semantic.

Primul capitol al lucrării conţine o introducere în istoricul dezvoltării „erei informaţionale”, cu accent asupra Internet-ului şi a spaţiului Web, incluzînd evoluţia mediilor, a tehnologiilor Web şi a aplicaţiilor destinate acestei infrastructuri, şi se încheie cu o parcurgere descriptivă succintă a conceptului „reţelelor sociale digitale”.

Următorul capitol conţine o descriere a arhitrecturii .NET Framework, mai exact, a modelului platformei, descris abstract, a îmbunătăţirilor aduse de versiunea 2.0, aflată în stadiul Beta 2 la momentul realizării prezentei lucrări, a instrumentelor destinate dezvoltării aplicaţiilor .NET şi a tehnologiilor bazate pe .NET Framework 2.0 specifice următoarei generaţii de sisteme de operare din familia Microsoft® Windows® nume de cod „Longhorn”.

Capitolul trei detaliază aspectele cheie ale noţiunii de „reţea socială digitală ubicuă” în contextul tehnologiilor .NET şi al Web-ului semantic, constituind partea cea mai importantă a lucrării de faţă, iar capitolul patru exemplifică afirmaţiile prezentei lucrări, printr-o suită de aplicaţii şi servicii având ca scop crearea şi menţinerea unei „reţele sociale digitale ubicue”, reunite sub denumirea MobiNET.

5 5

Page 6: Retele Sociale Digitale Ubicue

Introducere

1.1 Istoric În prezent, definiţia „erei informaţionale” este sinonimă cu termenul,

conceptul şi obiectul Internet, însă, din punct de vedere istoric, formularea corectă ar putea fi: „la început a fost cablul”. În 1831 Joseph Henry descoperă electromagnetul şi foloseşte proprietăţile acestuia pentru a transmite un impuls electric la distanţă, via cablu. Inspirat de invenţia lui Henry, Samuel Morse (1791-1872), pictor profesionist, recunoscut pentru talentul portretistic şi om de ştiinţă amator, dezvoltă prototipul telegrafului (1835), folosit pentru a transmite pattern-uri de impulsuri electrice la distanţă, via cablu, iar câţiva ani mai târziu face public alfabetul de semnale intermitente lungi sau scurte, numite linii, respectiv puncte, cunoscut sub numele de „codul Morse”. La 24 mai 1844, este transmis primul mesaj telegrafic între Baltimore, Maryland şi Washington D.C. având textul „Ce a creat Dumnezeu” (eng. „What has God wrought”), printr-un fir metalic cu lungimea de 37 mile. „Prin metodele electricităţii, lumea întreagă a devenit un mare nerv, vibrând la mii de mile într-un minuscul punct al timpului … Globul este vast… asemeni unei scoarţe cerebrale… pline de inteligenţă.” Aceste cuvinte vizionare aparţin marelui poet Nathaniel Hawthorne şi au fost scrise în 1851, ca urmare a impresiei puternice provocate de observarea funcţionării telegrafului. În 1858 s-a stabilit prima legătură de comunicaţii instantanee transatlantice via cablu („cablul atlantic”). Deşi din punct de vedere social, acest eveniment a fost privit ca unul de importanţă majoră, comparat mai tărziu cu aselenizarea, din punct de vedere tehnic „cablul Atlantic” a reprezentat un eşec, conexiunea fiind activă doar câteva zile. Următoarele seturi de cabluri (1866) au fost puse în funcţiune cu succes, rămânând în uz pentru aproape un secol.

1.1.1 Reţele de Calculatoare În anii ’60 reţelele de calculatoare erau sinonime cu termenul de

mainframe, iar diferenţa dintre LAN (Local Area Network) şi WAN (Wide Area Network) nu exista. Mainframe-urile erau conectate la serii de terminale „limitate” (eng. dumb terminals) prin intermediul conectorilor seriali (RS-232 sau alte interfeţe electrice). Pentru conectarea unui terminal aflat într-un oraş, la un mainframe aflat în alt oraş, se foloseau modem-uri care utilizau conexiunile analogice existente ale PSTN (Public Switched Telephone Network). Calitatea serviciilor PSTN s-a îmbunătăţit mult începând cu introducerea în 1962 a PCM (Pulse Code Modulation), folosit la convertirea semnalelor vocale analogice în secvenţe digitale de biţi. Tot în 1962 este produs primul aparat telefonic ce utilizează „tonul” (eng. tone) pentru transmiterea semnalelor vocale, determinând dezvoltarea standardului DS-0 (Digital Signal Zero) , standard de transmisie a datelor pe canale de 64 kilobiţi pe secundă (Kbps), care va sta la baza întregului sistem de telefonie digitală. O dezvoltare ulterioară numită generic „bancă de canale”, combină 20 de canale DS-0 folosind TDM (Time-Division Multiplexing) pentru a forma un singur canal de legătură cu capacitatea de transmitere a 1,544 megabiţi pe secundă (Mbps),

6 6

Page 7: Retele Sociale Digitale Ubicue

Introducere

denumit standard DS-1 sau T1. În Europa sunt combinate 30 de legături DS-0 pentru a forma E1.

Lansarea primului satelit destinat comunicaţiilor (Telstar), are loc în 1962, dar latenţa mare a legăturilor satelit faţă de cea a cablurilor telefonice, face ca această tehnologie să nu fie adoptată imediat în domeniul reţelelor de calculatoare.

Anul 1969 va aduce lansarea primului document RFC (Request For Comments), care descria specificaţiile NCP (Network Control Protocol), primul protocol de transfer folosit de ARPANET. Procesul de specificare informală prin RFC va deveni principala metodă de control a direcţiei de dezvoltare a Internet-ului, fiind folosit şi astăzi.

În acelaşi an, Bell Laboratories dezvoltă sistemul de operare UNIX, un sistem multi-aplicaţie, multi-utilizator, capabil de interacţiune reţea, care va deveni sistemul de operare favorit al mediilor academice cu interes în dezvoltarea computaţională.

Anii ’60 au fost, de asemenea, responsabili pentru dezvoltarea unor standarde folosite şi acum, printre care codul codul ASCII de reprezentare a caracterelor folosind secvenţe de biţi lansat de ASCII (American Standard Code for Information Interchange) în 1963 şi standardizat formal de ANSI (American National Standards Institute) în 1968.

De importanţă majoră pentru dezvoltarea reţelelor de calculatoare, a tehnologiilor LAN şi implicit a Internet-ului, a fost introducerea începând cu anii ’70 a Ethernet-ului. Proiectul iniţial denumit X-wire a fost creat în laboratoarele de cercetare de la Palo Alto, California ale Xerox Corp. (1973). X-wire avea capacitatea de transfer de 2,94 megabiţi pe secundă (Mbps) şi nu a fost intenţionat lansării comerciale, deşi o serie de staţii de lucru Xerox Palo Alto folosite pentru procesarea documentelor text au fost conectate folosind X-wire în interiorul Casei Albe, în timpul administraţiei Carter. De asemenea, câteva centre de cercetare au fost dotate cu staţii de lucru Xerox Palo Alto, Rick Rashid, preşedinte al Microsoft Research şi SVP al Microsoft Corp. amintindu-şi cu plăcere despre experimentele incipiente ale dezvoltării primului „joc” care utiliza capacităţile de conectare la reţea prin X-wire, în timpul ce lucra pentru dezvoltarea sistemului X-Window.

În 1979 Digital Equipment Corp. (DEC), Intel Corp. şi Xerox Corp. formează consorţiul DIX, responsabil pentru dezvoltarea specificaţiilor pentru standardul Ethernet de 10 Mbps denumit public thicknet, datorită utilizării cablului coaxial gros ca mediu pentru realizarea conexiunii.

În domeniul protocoalelor specializate, anii ’70 au introdus prin RFC specificaţiile pentru Telnet (1972), FTP (1973), iar în 1974 a fost publicată prima specificaţie pentru TCP (Transmission Control Protocol), urmând ca formalizarea arhitecturii de bază a TCP/IP să fie publicată în 1978.

Proiectul 802 al IEEE îşi propunea unificarea tehnologiei LAN într-un singur standard coerent. Acest lucru s-a dovedit a fi imposibil, iar proiectul 802 a fost divizat într-o serie de grupuri de lucru separate. Noul indicativ al proiectului pentru standardizarea Ethernet-ului va fi 802.3. Primul standard al grupului 802.3 a fost 10Base5, standard aproape identic cu thicknet-ul dezvoltat de DIX. În 1982 standardul 802.3 a fost extins pentru a include 10Base2 care folosea cablu coaxial subţire ca mediu de transmisie (eng. pop. thinnet). De-a lungul anilor ’80 principala metodă de implementare a reţelelor Ethernet va folosi standardele 10Base5, respectiv 10Base2.

7 7

Page 8: Retele Sociale Digitale Ubicue

Introducere

În paralel, o companie numită SynOptics Communications, dezvoltă un „produs” numit LattisNet destinat transmiterii Ethernet-ului de 10Mbps folosind cablu twisted-pair, în topologii de tip stea, având în centru un dispozitiv de regenerare a semnalului numit hub sau repetitor. Datorită folosirii acestui tip de cablu, implementarea reţelelor care utilizau LattisNet reprezenta o soluţie mai puţin costisitoare, iar topologia de tip stea simplifica problema cablării reţelelor destinate clădirilor cu mai multe etaje. Succesul comercial al LattisNet conduce la standardizarea 802.3 a acestui tip de Ethernet sub denumirea 10BaseT (1990).

Un alt eveniment de importanţă majoră petrecut la începutul anilor ’90, este standardizarea 802.3 sub denumirea 10BaseFL, a conexiunilor Ethernet, utilizând ca suport fibra optică, dezvoltată de Corning încă din 1970 şi introdusă în domeniul comercial al reţelelor de calculatoare începând cu 1984.

O altă realizare importantă este reprezentată de introducerea în 1977 a conceptului de reţea „fără fir” (eng. wireless), prin realizarea unui experiment având ca scop crearea unui serviciu radio de comutare de pachete reţea, acest proiect fiind cunoscut ulterior sub denumirea PRNET (Packet Radio Network). Tehnologia CDMA (Code Division Multiple Access), folosită în prezent pentru realizarea reţelelor de telefonie mobilă de generaţia a treia (3G), este succesor direct al tehnologiilor folosite iniţial în cadrul proiectului PRNET.

Odată cu introducerea în 1983 a suportului pentru TCP/IP, standardul de facto al comunicării între sisteme informatice, în versiunea 4.2 a BSD (Berkley Software Distribution), distribuţia UNIX aparţinând Berkley University of California, se crează premisele pentru dezvoltarea pe scară largă a reţelelor de calculatoare şi implicit, a Internet-ului.

1.1.1.1 Internet După lansarea satelitului Sputnik de către Uniunea Sovietică (1957),

preşedintele Statelor Unite ale Americii, Dwight D. Eisenhower crează ARPA (Advanced Research Project Agency), agenţia pentru proiecte de cercetare avansată. Agenţia reunea cei mai străluciţi oameni de ştiinţă ai Americii şi nu numai, aceştia dezvoltând primul satelit american în doar 18 luni. Câţiva ani mai târziu ARPA a început să-şi concentreze eforturile către domenii cu aplicaţii în reţelele de calculatoare şi tehnologiile de comunicaţii.

În 1962, Dr. J.C.R. Licklider este numit preşedinte al diviziei ARPA responsabilă de dezvoltarea şi aplicarea tehnologiei computerelor în domeniul militar. Acesta consideră ca metodă optimă pentru dezvoltarea rapidă a tehnologiei rezilierea contractelor cu reprezentanţi ai sectorului privat şi antrenarea universităţilor în proiect, punând astfel fundaţiile pentru viitoarea ARPANET. În 1969, UCLA propune ARPA înfiinţarea NMC, un centru de măsurători de reţea (Network Measurement Center). Ca urmare, UCLA primeşte de la BBN (Bolt, Beranek and Newman) o unitate IMP (Interface Message Processor) bazată pe un sistem Honeywell DDP 516, ulterior conectată printr-o interfaţă de 50 Kbps la alte două universităţi – Stanford Research Institute (SRI), respectiv UC Santa Barbara (UCSB), într-o reţea totalizând patru noduri, incluzând şi University of Utah, Salt Lake City. Mai târziu, Leonard Kleinrock, profesor strălucit al UCLA, pionier în comunicaţii digitale, împreună cu un mic grup de studenţi va încerca să se conecteze la computer-ul de la Stanford şi să trimită cuvântul „login”, confirmarea de primire a fiecărei litere fiind realizată

8 8

Page 9: Retele Sociale Digitale Ubicue

Introducere

simultan prin convorbire telefonică. Planul era fără precedent, însă la tastarea literei ‚g’ sistemul de la UCLA şi-a terminat „abrupt” execuţia. În Figura 1 este reprezentată arhitectura acestui prim set format din patru noduri, care urma să devină ARPANET, precursorul Internet-ului.

Figura 1. UCLA, SRI, UCSB şi UTAH, prima reţea publică, ulterior cunoscută ca ARPANET.

În 1971, Larry Roberts de la ARPA decide prezentarea ARPANET la conferinţa internaţională a comunicaţiilor computerizate (ICCC) ce urma să aibă loc în octombrie anul următor. După un an de pregătiri, un comutator de pachete (eng. packet switch) şi un procesor de interfeţe terminal (eng. terminal interface processor, TIP) sunt montate la subsolul hotelului Hilton din Washington iar publicului prezent i se permite folosirea directă a ARPANET pentru „rularea aplicaţiilor din toată America...”. În ciuda scepticismului specialiştilor de la AT&T, prezentarea decurge perfect, acest moment rămânând în istorie ca prima atestare publică a Internet-ului. În Figura 2 putem observa o hartă originală a ARPANET datând din aprilie 1971, care a aparţinut lui Bob Bell, operator suport pentru DEC PDP-10 (DEC Field Service).

9 9

Page 10: Retele Sociale Digitale Ubicue

Introducere

Figura 2. Aprilie 1971, arhitectura ARPANET, conform DEC, furnizor al echipamentelor PDP-10.

În 1973, ARPANET devine un proiect internaţional prin adăugarea de „noduri” la University College of London, Marea Britanie şi la Royal Radar Establishment, Norvegia.

1.1.1.2 World Wide Web În 1945 Vannevar Bush, directorul Biroului pentru Cercetare şi

Dezvoltare Ştiinţifică al Statelor Unite, scrie un articol în Atlantic Monthly, intitulat „Cum am putea gândi...” (eng. „As we may think...”), descriind MEMEX, un dispozitiv foto-electro-mecanic ipotetic, folosit pentru a crea legăţuri între microfişe şi naviga pe baza acestora.

În 1968, Douglas Engelbart (Stanford Reaserch Institute) demonstrează oNLineSystem (NLS), sistem ce permitea navigarea (eng. browsing) şi editarea de hypertext, precum şi trimiterea de e-mail-uri. În procesul de dezvoltare al NLS, Engelbart inventează mouse-ul.

Pe parcursul a şase luni (iunie-decembrie 1980), în timp ce lucra pe post de consultant pentru CERN (fr. Centre Europeen de Recherche Nucléaire), Tim Berners-Lee, scrie un program de calculator numit „Enquire” (după romanul victorian „Enquire Within Upon Everything”), program care permite crearea de legături între noduri arbitrare. Modelul conceput de Berners-Lee „ataşa” fiecărui nod un nume, un tip şi o listă de legătury bidirecţionale, cu tip. „Enquire” rula pe maşini Norsk Data, sub Sintran-III.

În 1989, acelaşi Tim Berners-Lee, scrie lucrarea „Gestiunea Informaţiei: O Propunere” (eng. Information Management: A Proposal), aceasta fiind circulată în cadrul CERN pentru comentarii. Anul următor, în mai, continuă (re)circularea „propunerii”, iar în septembrie, Mike Sendal, superiorul lui Berners-Lee, aprobă achiziţionarea unui sistem NeXT, pentru a-i permite acestuia dezvoltarea „sistemului global pentru hypertext”. În octombrie Berners-Lee începe dezvoltarea unui navigator/editor de hypertext cu interfaţă grafică WYSIWYG (What You See Is What You Get), folosind NeXTStep ca mediu de dezvoltare. Aplicaţia dezvoltată va primi numele WorldWideWeb

10 10

Page 11: Retele Sociale Digitale Ubicue

Introducere

(alternativele includeau: Information Mesh, Mine of Information, Information Mine etc). La sfârşitul lunii octombrie, propunerea va fi reformulată, avându-l drept coautor pe Robert Cailliau (ECP), iar în noiembrie este lansat primul server Web, nxoc01.cern.ch (mai târziu, info.cern.ch), folosind aplicaţia server „httpd”.

Tot în noiembrie este lansată prima pagină Web, primul sit Web, la adresa http://nxoc01.cern.ch/hypertext/WWW/TheProject.html, însă din păcate, adresa URL a sitului istoric nu mai este suportată de CERN. În decembrie proiectul WorldWideWeb poate fi demonstrat.

În februarie 1993, NCSA (National Association for Supercomputing Applications), University of Illinois, Urbana-Champaign, lansează prima versiune alfa a navigatorului „Mosaic for X” (mai târziu, Netscape Navigator), dezvoltat de Marc Andreessen, urmând ca în septembrie să aibă loc lansarea versiunii finale pentru principalele platforme (e.g. X, PC/Windows, Macintosh).

În decembrie 1993 WWW primeşte premiul IMA, John Markov scrie o pagină şi jumătate despre Mosaic şi WWW în The New York Times (US), The Guardian (UK) publică o pagină despre WWW, iar Robert Cailliau primeşte permisiunea de a organiza prima conferinţă având ca temă WWW-ul la CERN.

Explozia este uluitoare: numărul de accesări a sit-ului info.cern.ch creşte de 1000 de ori din 1991 până în 1994, iar numărul de situri înregistrate, de la aproximativ 10.000 în 1994, până la 25.675.581 la sfârşitul anului 2000.

La 1 octombrie 1994, Berners-Lee înfiinţează consorţiul World Wide Web (W3C) cu sprijinul Massachusetts Institute of Technology (MIT). Consorţiul este compus din reprezentanţi ai diverselor companii, iar principala activitate se concentrează asupra definirii şi implementării de standarde şi recomandări, în scopul îmbunătăţirii calităţii serviciilor disponibile în spaţiul Web.

1.1.1.3 Web Semantic Conceptul de Web semantic se confundă cu conceptul Web-ului originar,

acesta găsindu-şi „rădăcinile” în chiar „propunerea” lui Berners-Lee (1989). Cu toate acestea, prima menţiune a termenului ”Web semantic” are loc cu ocazia primei conferinţe internaţionale asupra WWW-ului organizată la sediul CERN (Geneva, 1994), conferinţă suprasolicitată (800 se înscriu, 400 sunt acceptaţi), denumită popular „Woodstock of the Web”.

Conform W3C, „Web-ul semantic este un efort colaborativ pentru furnizarea unei platforme unificate care să permită distribuirea şi reutilizarea datelor dincolo de graniţele aplicaţiei, ale organizaţiei sau ale comunităţii”, iar conform însuşi creatorului spaţiului Web, Tim Berners-Lee, „Web-ul semantic reprezintă o extindere a Web-ului curent în care un înţeles bine definit este ataşat informaţiei, permiţând o mai bună cooperare între oameni şi maşini”. O viziune aplicabilă asupra conceptului „pânzei semantice” este aceea de „modalitate eficientă de reprezentare a datelor în spaţiul Web”.

Scopul urmărit este acela de a face posibilă publicarea datelor într-o formă inteligibilă de către orice aplicaţie care doreşte utilizarea respectivelor informaţii (implicit, orice platformă, inclusiv dispozitive mobile), precum şi posibilitatea ataşării de logici de inferenţă, astfel încât, aplicaţiile să poată genera noi „cunoştinţe”, pe baza celor acumulate deja. Acestea reprezintă cele două faze ale dezvoltării Web-ului semantic. (Tim Berners-Lee).

În februarie 2004, eforturile de standardizare aparţinând primei faze sunt finalmente concretizate, sub forma a două recomandări W3C, care asigură

11 11

Page 12: Retele Sociale Digitale Ubicue

Introducere

fundamentul dezvoltării Web-ului semantic, mai exact, RDF (Resource Description Framework) şi OWL (Web Ontology Language).

RDF este un format generic de reprezentare unificată a informaţiilor asociate resurselor, care utilizează triple de URI-uri (Uniform Resource Identifier). RDF are asociată o serializare XML (RDF XML), recomandare a W3C, aceasta constituind formatul standard de schimb de informaţii în cadrul Web-ului semantic.

OWL este un limbaj destinat aplicaţiilor care procesează informaţii la nivel de conţinut, facilitând o mai bună interpretabilitate automatizată a conţinutului Web, decât XML sau RDF, prin furnizarea unor elemente adiţionale de vocabular şi prin introducerea unei semantici formale. Conceptual, OWL reprezintă un limbaj de descriere formalizată a terminologiei folosită uzual în documentele Web, utilizând ontologii. O ontologie defineşte termenii folosiţi pentru a descrie şi reprezenta o arie a cunoaşterii, cum ar fi cunoştinţele specifice unui domeniu, ale unui subdomeniu sau ale unui subiect anume.

Deşi prima etapă s-a încheiat cu succes, odată cu finalizarea recomandărilor pentru RDF şi OWL, trebuie menţionat faptul că, în momentul actual, Web-ul semantic rămâne un deziderat, stiva de standarde şi recomandări ale W3C fiind insuficientă aplicării pe scară largă a modelului, un impediment fiind şi latenţa procesului de acceptare şi utilizare a recomandărilor existente. Cu toate acestea, există aplicaţii care beneficiază deja de implementări aparţinând domeniului semantic, un exemplu fiind cele şase use-case-uri dezvoltate chiar de grupul de interes dedicat Web-ului semantic, din cadrul W3C. Alte exemple includ Boeing Co., care a început deja explorarea aplicabilităţii soluţiilor semantice pentru integrarea informaţiilor şi a aplicaţiilor, în scopul interoperabilităţii şi al managementului cunoştinţelor (eng. knowledge management) şi Adobe Systems Inc. care a inclus în produsele sale suport pentru XMP (eXtensible Metadata Platform), o aplicaţie a RDF care are rolul de a asocia informaţii contextuale şi de conţinut fişierelor utilizate. Recent, Adobe Systems Inc., dezvoltator al formatului PDF (Portable Document Format) a achiziţionat pachetul majoritar de acţiuni al Macromedia Inc., dezvoltator al formatului SWF (Shockwave Flash), şi a anunţat demararea proiectului pentru dezvoltarea unui „super-format” hypermedia care va încorpora şi tehnologii semantice pentru identificarea datelor în funcţie de conţinut.

1.1.1.4 Web of Trust Web-ul „de încredere” reprezintă o viziune de dezvoltare şi

implementare a Web-ului semantic, în care metodele de reprezentare ale datelor şi logicile de inferenţă ataşate permit identificarea şi filtrarea sursei informaţiilor, verificarea credibilităţii sursei, eliminarea informaţiilor false sau a informaţiilor inconsistente, care conduc la contradicţii insolvabile etc. Inovaţiile tehnologice disponibile la momentul actual în domeniul semnăturilor digitale şi al identităţii virtuale oferă un semnal pozitiv vis-a-vis de posibilitatea implementării unui Web of Trust, dar cel mai important pas va fi definirea standardelor care vor sta la baza acestei arhitecturi.

12 12

Page 13: Retele Sociale Digitale Ubicue

Introducere

1.2 Tehnologii Web Prin noţiunea de „tehnologii Web” vom descrie tehnologiile care au stat

la baza dezvoltării spaţiului Web, responsabile pentru funcţionalitatea aplicaţiilor WWW. Principalele categorii de tehnologii pot fi structurate pe trei nivele: markup, aplicaţii Web, respectiv servicii Web.

1.2.1 Markup Tehnologia HTML (Hypertext Markup Language) reprezintă o constantă

pe parcursul istoriei spaţiului WWW. Prima pagină Web şi primul sit Web au fost scrise de Berners-Lee folosind navigatorul/editorul WorldWideWeb pentru a genera codul HTML (WWW era un editor WYSIWYG), iar la momentul actual, majoritatea siturilor includ pagini scrise integral sau parţial folosind HTML. Acest limbaj este un subset al SGML constând într-un set de tag-uri care permite descrierea markup a aspectului (eng. layout) şi a conţinutului paginii Web. Cea mai recentă recomandare a W3C pentru HTML a are indicativul 4.01. HTML a fost înlocuit de XHTML, subset al XML care include tag-urile şi atributele HTML 4.01, recomandare a W3C începând cu 26 ianuarie 2000. Exemplu de cod HTML:

<html> <head>

<title lang="en">HTML</title> </head> <body>

<p style="font-family: Tahoma; font-weight: bold"> Pagină <i>HTML</i></p>

</body> </html>

În Figura 3 se poate observa rezultatul codului de mai sus.

Figura 3. Rezultat vizualizat folosind navigatorul Internet Explorer®.

13 13

Page 14: Retele Sociale Digitale Ubicue

Introducere

1.2.2 Aplicaţii Web Aplicaţiile Web au apărut ca urmare a incrementării necesităţilor de

utilizare a spaţiului WWW, introducând noţiunea de pagină Web activă. Principalul scenariu implică diferite nivele de procesare centralizată a datelor legate de utilizator, în contextul dat de activităţile organizaţiei care menţine situl respectiv. Folosind un navigator Web, utilizatorul accesează o pagină conţinând un formular (eng. form), introduce datele necesare şi accesează butonul sau link-ul comenzii server. Datele sunt trimise către server, unde are loc procesarea, iar la finalizarea operaţiunilor efectuate răspunsul este serializat HTML şi transmis către client pentru vizualizare prin intermediul navigatorului.

Figura 4 descrie sub formă de diagramă, principiul general al funcţionării aplicaţiilor Web.

Figura 4. Arhitectura aplicaţiilor Web.

Istoric, prima generaţie de tehnologii Web destinată aplicaţiilor Web,

standard de-facto al interacţiunii programatice a clienţilor cu server-ul Web, este reprezentată de CGI (Common Gateway Interface). Prin CGI se pot produce răspunsuri HTTP folosind orice limbaj de programare disponibil pe server, interpretat (e.g., Perl, Python etc), sau compilat (e.g., C, C++). Cu toate că modelul CGI nu este deloc ineficient din punct de vedere al calităţii şi performanţei aplicaţiei dezvoltate, prezintă deficienţe majore în ceea ce priveşte eficienţa productivităţii dezvoltării. În acest context, cele mai importante tehnologii de actualitate sunt PHP (PHP: Hypertext Preprocessor), Microsoft® ASP (Active Server Pages), Sun Java2 Enterprise Edition şi Microsoft® ASP.NET.

Se disting două categorii de aplicaţii Web, aplicaţiile scriptate sau interpretate (e.g., PHP, ASP etc) şi aplicaţiile compilate (e.g., Java2, ASP.NET etc), cu avantaje de performanţă pentru categoria aplicaţiilor compilate.

Un alt element important al aplicaţiilor Web sunt scripturile client. Acestea constituie cod program, inclus în codul HTML trimis clientului care va fi executat prin interpretare de către navigator sau de către un plug-in al

14 14

Page 15: Retele Sociale Digitale Ubicue

Introducere

acestuia. În general, scripturile client sunt utile pentru reducerea numărului de bucle cerere-răspuns între client şi server prin distribuirea către client a responsabilităţii realizării unor operaţiuni simple de procesare, în general auxiliare (e.g., validarea input-ului etc). Cel mai folosit limbaj de scripting client este JavaScript® (JScript), o alternativă fiind VBScript.

1.2.3 Servicii Web Serviciile Web reprezintă o particularizare a aplicaţiilor Web. Principala diferenţă este dată de faptul că serviciile Web nu sunt destinate direct utilizatorilor umani, ci sunt destinate „consumării” sau exploatării, de către alte aplicaţii, fie Web, fie Internet-enabled (aplicaţii pentru Desktop, care derivă funcţionalitate din posibilitatea conectării la Internet). De asemenea, un serviciu Web poate fi consumat de alte servicii Web pentru a asigura un plus de funcţionalitate şi integrare. Serviciile Web sunt deci componente care oferă capacitate de procesare adiţională, aplicaţiilor consumator. Această diferenţă conceptuală induce un set de diferenţe arhitecturale, dintre care, cea mai evidentă este absenţa (sau rudimentaritatea) interfeţei utilizator. O altă caracteristică de bază a serviciilor Web derivă din necesitatea de interoperabilitate (capacitatea de colaborare între componente, aplicaţii şi sisteme eterogene). Pentru a adresa această necesitate serviciile Web trebuie să deţină abilitatea de a comunica folosind standarde ale industriei precum SOAP (Simple Object Access Protocol, explicitare depreciată) şi WSDL (Web Services Description Language), ambele recomandări ale consorţiului Web. În Figura 5 se poate observa o descriere schematică a interacţiunii serviciilor Web cu aplicaţiile consumator şi, de asemenea, cu alte servicii Web.

Figura 5. Interacţiunea serviciilor Web cu aplicaţiile consumator, respectiv alte servicii.

SOAP reprezintă un standard ce utilizează paradigma XML-RPC pentru a transporta mesaje serializate XML într-o manieră extensibilă, utilizabil

15 15

Page 16: Retele Sociale Digitale Ubicue

Introducere

indiferent de infrastructura conexiunii (protocoale de reţea etc) şi independent de modelul programatic utilizat de aplicaţie (limbaj de programare etc).

WSDL reprezintă o modalitate standardizată de descriere a serviciilor Web, a funcţiilor pe care le implementează şi a tipurilor de date vehiculate, bazată pe sintaxa XML (XML Schema), care permite aplicaţiilor exploatarea acestora. Conceptual, WSDL constituie o modalitate de specificare a sintacticii serviciilor Web, nu a semanticii acestora.

O aplicaţie a serviciilor Web, destinată serviciilor Web şi aplicaţiilor consumator, este UDDI (Universal Description Discovery and Integration), reprezentând un registru universal al listei de servicii Web disponibile (descrise folosind WSDL), iniţiativă în dezvoltare sprijinită de IBM Corp., Microsoft Corp. etc.

Deşi nu implementează implicit funcţionalitate semantică, serviciile Web, reprezintă infrastructura de bază pentru dezvoltarea Web-ului semantic, permiţând interacţiunea coerentă a colecţiilor de sisteme eterogene, pentru realizarea unui scop funcţional augmentat, în beneficiul utilizatorului uman.

Tehnologiile destinate dezvoltării de servicii Web sunt multiple cu exemple de la IBM Corp. (IBM Web Services Toolkit), Apache Org. (Apache SOAP) sau Borland Software Corp. (Borland JBuilder Web Services), însă cele mai importante tehnologii, care oferă perspectivă asupra direcţiilor viitoare de dezvoltare aparţin Sun Microsystems Inc. (Java2 Enterprise Edition), respectiv Microsoft Corp. (.NET Framework Web Services).

1.3 Colaborare Digitală Evoluţia reţelelor de calculatoare şi a Internet-ului a permis apariţia

unui nou tip de comunicare interpersonală având ca principală interfaţă calculatorul personal. Poşta electronică a fost prima manifestare în acest sens, urmată la scurt timp de apariţia aplicaţiilor de mesagerie instantă, asigurând infrastructura pentru dezvoltarea comunităţilor on-line. La momentul actual, adoptarea pe scară largă a stilului de viaţă digital încurajează evoluţia fenomenului către o nouă etapă, cea a „reţelelor sociale digitale”.

1.3.1 Poşta Electronică Poşta electronică (e-mail) a apărut şi s-a dezvoltat concomitent cu

sistemele informatice, iniţial fiind gândită ca o aplicaţie de mesagerie între utilizatorii aceluiaşi sistem de calcul. Ulterior, acest sistem a fost adaptat pentru a exploata posibilitatea de conectare la reţea a calculatoarelor, permiţând transmiterea mesajelor între utilizatori ai sistemelor de calcul diferite.

Prima aplicaţie e-mail care utiliza conectivitatea la reţea a fost dezvoltată în 1971 folosind ARPANET, de către Ray Tomlinson (BBN Technologies), în timp ce lucra pentru Cambridge. Programul intitulat SNDMSG a fost scris pentru platforma TENEX, un sistem de operare de tip timesharing dezvoltat de BBN pentru DEC PDP-10. SNDMSG reprezenta combinarea altor două aplicaţii, prima dintre acestea fiind destinată mesageriei intra-computer,

16 16

Page 17: Retele Sociale Digitale Ubicue

Introducere

iar cea dea doua reprezentând un program de filesharing numit CPYNET. Primul mesaj a fost trimis de Tomlinson către el însuşi pe alt calculator, iar conţinutul mesajului este necunoscut (posibil „qwertyuiop” sau „testing 1-2-3”). Cel de-al doilea mesaj, expediat către ceilalţi utilizatori ai reţelei, a beneficiat de un conţinut mai interesant, în care Tomlinson explica utilizarea SNDMSG prin sufixarea numelui utilizatorului cu „@hostname”, standard de adresare folosit şi astăzi.

Lansarea comercială a serviciului de e-mail a avut loc în 1988, când Vinton Cerf, om de ştiinţă afiliat DARPA (în 1972 ARPA devine DARPA), coautor al specificaţiei TCP/IP, aranjează conectarea MCI Mail la NSFNET (National Science Foundation Network) prin CNRI (Corporation for the National Research Initiative), în scop experimental, aceasta constituind prima utilizare comercială a Internet-ului. În 1989 CompuServe este conectat la NSFNET prin reţeaua University of Ohio, iar e-mail-ul devine accesibil publicului larg.

Cu toate acestea, adevătata explozie a tehnologiei e-mail va avea loc la 5 iunie 1996, momentul lansării HoTMaiL, sit Web care oferea servicii gratuite de e-mail, creaţie a lui Sabeer Bhatia. Se introduce astfel conceptul de Web-mail. Potenţialii competitori observă popularitatea perpetuu ascendentă a fenomenului şi decid să intervină. Astfel, aproape orice portal Web modern oferă acces gratuit utilizatorilor la o adresă de e-mail, calitatea serviciilor este îmbunătăţită constant, iar cantitatea spaţiului de stocare oferit utilizatorilor se află într-o continuă creştere, culminând în 2005 cu atingerea cotei de 2,2 gigaocteţi (GB) pentru utilizatorii Gmail, viziunea Google asupra e-mail-ului.

Ca indicator al popularităţii acestui gen de comunicare interpersonală se estimează faptul că, în medie, 50% din timpul petrecut on-line de un utilizator are legătură directă sau indirectă cu e-mail-ul.

1.3.2 Mesagerie Instantă Nevoia de comunicare rapidă între utilizatorii aflaţi on-line va da

naştere unui nou sistem de transmisie a mesajelor, numit „mesagerie instantă” (eng. instant messaging, IM). Tentativele de realizare a unui asemenea sistem datează tot din perioada ARPANET, însă primul eveniment de importanţă majoră pentru acest fenomen va fi lansarea în noiembrie 1996 de către Mirabilis, a serviciului ICQ (I Seek You), serviciu public de mesagerie instantă. Anterior furnizorul american de servicii Internet, AOL (America On Line) oferea un serviciu similar abonaţilor săi, însă lansarea ICQ oferă acest tip de serviciu oricărui utilizator al Internet-ului lansând o explozie a acestei metode de interacţiune digitală. Ca şi în cazul serviciilor de Web mail popularitatea mesageriei instante a condus la implementarea mai multor astfel de sisteme, astăzi cele mai importante fiind AIM (AOL), MSN Messenger (Microsoft Network, MSN) şi Yahoo! Messenger (Yahoo!). Un aspect problematic este acela că fiecare dintre sistemele existente utilizează un format de comunicaţii proprietar care nu permite interoperabilitatea cu alte sisteme similare. Există aplicaţii client care implementează mai multe formate de mesagerie instantă (e.g., Trillian, Kopete etc), simulând astfel un grad de interoperabilitate. De asemenea, există o iniţiativă de implementare a unui standard bazat pe XML cunoscut ca XMPP (eXtensible Messaging and Presence Protocol), popular cunoscut ca Jabber. Jabber simplifică natura aplicaţiilor client, transferând responsabilitatea interoperabilităţii către server, însă această abordare nu

17 17

Page 18: Retele Sociale Digitale Ubicue

Introducere

reprezintă o soluţie viabilă în contextul interoperabilităţii caracterictice viziunii Web-ului semantic.

1.3.3 Comunităţi On-line O comunitate reprezintă un set de persoane sau agenţi, într-un sens mai

abstract, care prezintă un element comun, specific. În particular, o comunitate reprezintă un grup de persoane aflate într-o formă de interacţiune.

Comunităţile virtuale (on-line), reprezintă o transpunere digitală a unei comunităţi, în acest caz elementul comun fiind, în general, un interes comun, iar principala formă de interacţiune între membrii acestui tip de comunitate fiind asigurată de schimbul de informaţii. Dezvoltarea Internet-ului, a poştei electronice şi a sistemelor de mesagerie instantă asigură infrastructura ideală pentru acest tip de comunitate, iar avantajul principal este eliminarea graniţelor spaţiale care facilitează colaborarea.

1.3.4 Reţele Sociale Digitale O „reţea socială” constituie o reprezentare a relaţiilor dintre indivizi,

indicând natura legăturilor dintre aceştia (e.g., familie, coleg, cunoştinţă etc). Termenul de „reţea socială” a fost introdus în 1945 de J. A. Barnes, într-un studiu ce trata natura relaţiilor interumane.

Deşi prezenta lucrare nu are ca scop detalierea acestui aspect, vom menţiona faptul că analiza reţelelor sociale, cunoscută sub denumirea de „teorie a reţelelor” (eng. network theory), s-a impus ca tehnică de bază în ştiinţele sociale moderne, demonstrând dinamica reţelelor sociale pe mai multe nivele, de la cel familial, la cel organizaţional şi respectiv, naţional. Dinamica reţelelor sociale joacă un rol important în determinarea manierelor de rezolvare a problemelor, de conducere a organizaţiilor, cu implicaţii directe asupra gradului în care indivizii unei asemenea reţele au succes în realizarea obiectivelor propuse.

Pentru a reprezenta reţelele sociale digitale putem considera un graf, ale cărui noduri corespund actorilor, indivizilor aparţinând reţelei, arcele reprezentând relaţiile existente între indivizi. Opţional, arcele pot fi etichetate pentru a reprezenta natura relaţiei existentă între nodurile grafului, respectiv între indivizii implicaţi. Studiul reţelelor sociale relevă faptul că „forma” reţelei sociale, este direct responsabilă de determinarea utilităţii acesteia pentru indivizii implicaţi. Astfel, reţelele compacte, cu legături „scurte” şi puternic redundante, sunt mai puţin utile membrilor acestora, iar reţelele sociale „largi”, cu multiple legături „slabe” (conexiuni către indivizi din exteriorul centrului reţelei), permit introducerea unui grad sporit de idei, inovaţii şi oportunităţi, în benficiul tuturor membrilor acestora. Cu alte cuvinte, un grup apropiat de indivizi puternic conectaţi intr-o reţea socială compactă deja împărtăşesc majoritatea cunoştinţelor (eng. common knowledge) şi, implicit, a oportunităţilor disponibile. În paralel, un grup de indivizi cu multiple conexiuni slabe către alte reţele sociale are acces la o masă mai mare de informaţii şi cunoştinţe disponibile în cadrul tuturor reţelelor sociale cu care se află în contact (eng. shared knowledge). Din perspectiva individului, este mai profitabilă exploatarea unei cantităţi mai mici de conexiuni cu reţele diferite, decât exploatarea unei cantităţi mari de conexiuni cu aceeaşi reţea. Un aspect important în extinderea reţelelor sociale

18 18

Page 19: Retele Sociale Digitale Ubicue

Introducere

sunt indivizii cu conexiuni la multiple reţele sociale, aceştia intermediind interacţiunea reţelelor din care fac parte, facilitând crearea de noi conexiuni.

Revenind, aspectul „reţelelor sociale digitale” care face obiectul prezentei lucrări se referă la o categorie de aplicaţii care utilizează Internet-ul pentru a realiza o conectare interactivă între prieteni, cunoştinţe, parteneri de afaceri sau alte categorii de indivizi. În capitolul trei al prezentei lucrări se vor detalia principiile unui nou tip de aplicaţie a „reţelelor sociale” în lumea digitală, prin introducerea conceptului de „reţea socială digitală ubicuă”.

19 19

Page 20: Retele Sociale Digitale Ubicue

20

2. .NET Framework

Prezent şi Viitor

20

Page 21: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

2.1 Rezumat

Apărută oficial în 2002, .NET Framework se află acum în pragul lansării celei dea treia versiuni finale, având indicativul 2.0.

Pe scurt, .NET Framework este o parte integrantă a sistemelor de operare din familia Windows® care permite dezvoltarea şi rularea noilor generaţii de aplicaţii şi servicii Web bazate pe XML (XML Web Services).

Obiectivele principale ale acestei platforme sunt acelea de a oferi un mediu consistent pentru programarea orientată obiect fie că acel cod este destinat execuţiei locale, distribuţiei prin intermediul Internet-ului sau execuţiei la distanţă (eng. remote execution), de a permite execuţia codului cu minimizarea eforturilor de implementare (eng. deployment) şi cu eliminarea conflictelor între versiuni, de a asigura execuţia „în siguranţă” a aplicaţiilor, inclusiv a acelor aplicaţii create de terţe entităţi (eng. third-parties), de a elimina problemele legate de performanţă prezente în cazul aplicaţiilor interpretate sau de tip script şi de a realiza comunicarea între aplicaţii pe baza standardelor industriei de specialitate, asigurand posibilitatea de interoperabilitate cu aplicaţii dezvoltate folosind alte tehnologii.

Principalele două componente ale .NET Framework sunt runtime-ul CLR (Common Language Runtime) şi biblioteca de clase .NET (eng. class library).

CLR-ul reprezintă fundamentul platformei .NET, putând fi privit ca un agent care gestionează execuţia codului, asigurând serviciile fundamentale necesare (eng. core services) precum gestiunea memoriei, a firelor de execuţie (eng. thread) şi a execuţiei la distanţă (eng. remoting). Simultan CLR-ul impune adoptarea unor politici de siguranţă a tipurilor (eng. type-safety) şi a altor „restricţii” la nivel de cod executabil pentru a asigura un mediu robust şi de încredere (eng. trustworthy environment).

De altfel, conceptul de management al codului este un principiu fundamental al .NET Framework, motiv pentru care codul nativ .NET este cunoscut sub denumirea de cod gestionat, iar codul care se execută „în exteriorul” platformei, sub denumirea de cod negestionat (eng. managed code vs. unmanaged code).

Cea de-a doua componentă de bază a platformei .NET este biblioteca de clase .NET – o colecţie de tipuri reutilizabile orientate obiect care pot fi folosite pentru dezvoltarea tuturor aplicaţiilor .NET, de la aplicaţii tradiţionale ce folosesc linia de comandă sau interfaţa grafică a sistemului de operare (eng. GUI) până la aplicaţii care folosesc cele mai noi tehnologii, precum ASP.NET WebForms sau ASP.NET XML Web Services.

Un alt aspect care trebuie luat în considerare este reprezentat de capacitatea runtime-ului .NET de a fi găzduit (eng. hosted) de o aplicaţie sau componentă unmanaged. Procesul de execuţie unmamaged încarcă CLR-ul în propriul proces şi poate astfel iniţia execuţia de cod managed. Se crează astfel un mediu de execuţie care poate exploata soluţii eterogene, compuse din aplicaţii unmanaged si din cod nativ .NET.

Un exemplu de aplicaţie unmanaged care acţionează ca host pentru runtime-ul .NET în scenarii foarte frecvente este Internet Explorer®. Acesta „găzduieşte” CLR-ul sub forma unei extensii MIME, permiţand vizualizarea componentelor managed incluse în documentele HTML.

21 21

Page 22: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

Acest model de execuţie face posibilă existenţa noţiunii de „cod mobil” intr-un mod similar cu cel oferit de tehnologia ActiveX®, dar cu imbunătăţiri semnificative la nivel de siguranţă a execuţiei, într-un mediu „parţial de încredere” (eng. semi-trusted).

Figura 6 ilustrează relaţiile dintre CLR, .NET class library, aplicaţii şi sistemul de operare, totodată exemplificând abilitatea de interacţiune a codului unmanaged cu codul .NET, scopul final fiind acela de a realiza un nou sistem interoperabil, fiabil şi robust.

Figura 6. Integrarea .NET Famework în sistemul de operare şi interacţiunea dintre aplicaţii.

2.1.1 CLR (Common Language Runtime) CLR-ul gestionează memoria, firele de execuţie, execuţia codului,

verificarea nivelului de siguranţă al codului, compilarea şi alte servicii ale sistemului. Aceste funcţionalităţi sunt intrinseci codului managed care rulează „peste” CLR.

La nivel de securitate, componentele managed primesc diverse grade de încredere (eng. degrees of trust), depinzând de un număr de factori, printre care şi originea codului (e.g., Internet, reţea enterprise, sistem local etc). Rezultă de aici faptul că o componentă managed poate sau poate să nu fie capabilă să realizeze anumite operaţiuni (e.g., acces la sistemul de fişiere, acces la registry etc) chiar dacă aplicaţia din care face parte este activă.

Runtime-ul „impune” anumite politici de securitate la nivel de acces al codului executat.

22 22

Page 23: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

Exemplul clasic este cel al executabilului inclus (eng. embedded) intr-o pagină Web care deţine permisiunile necesare renderizării unei animaţii, dar care nu poate accesa date personale, cu caracter privat, despre utilizatorul sistemului, despre sistem sau despre reţea.

Funcţionalităţile .NET privind siguranţa permit deci software-ului „legitim”, accesibil via Internet implementarea unui set bogat de funcţii, eliminând riscul ca aceste funcţii să poată fi folosite în scopuri negative (eng. mallicious purposes).

2.1.1.1 CTS (Common Type System) De asemenea, runtime-ul .NET impune caracterul robust al codului prin

implementarea unei infrastructuri de verificare strictă a codului şi a tipurilor utilizate (eng. type-and-code-verification infrastructure) numită common type system (CTS). CTS-ul impune codului managed anumite proprietăţi de auto-descriere (eng. self-describing code). Diversele compilatoare Microsoft® sau ale unor terţe entităţi generează cod managed conform cu specificaţiile CTS-ului. Acest fapt se traduce prin posibilitatea codului managed de a consuma tipuri (clase) şi instanţe (obiecte) managed, impunând simultan mai multe grade de siguranţă şi de fidelitate a tipurilor (eng. type fidelity, type safety).

Revenind la funcţionalităţile CLR-ului, mediul managed asigurat de

runtime elimină multe probleme comune ale software-ului (eng. common software issues). De exemplu, prin capacitatea de manipulare automată a dispunerii obiectelor şi a referinţelor la acestea (eng. object layout, object reference) se rezolvă două dintre cele mai comune defecte ale aplicaţiilor – „scurgerile” de memorie şi referinţele invalide (eng. memory leaks, invalid memory references).

Un alt aspect foarte important al .NET Framework asigurat de CLR este reprezentat de accelerarea productivităţii dezvoltării prin posibilitatea utilizării „oricărui” limbaj de programare fără a renunţa la avantajele platformei şi prin posibilitatea utilizării în cadrul aplicaţiei dezvoltate, a unor componente „scrise” folosind alt limbaj de programare. Se facilitează astfel migrarea aplicaţiei către .NET Framework sau implementarea de noi funcţionalităţi bazate pe .NET.

Încă o facilitate importantă este aceea că, deşi .NET Framework este o platformă destinată aplicaţiilor software ale viitorului, aceasta oferă suport pentru interacţiunea cu software-ul actual şi cu cel al trecutului, interoperabilitatea fiind una dintre cele mai importante caracteristici asigurate de .NET. Interoperabilitatea dintre codul managed şi codul unmanaged dă posibilitatea dezvotatorilor de software să continue să utilizeze componentele COM şi DLL-urile necesare, implementate anterior.

.NET Framework a fost concepută având permanent în vedere considerente de performanţă. Astfel, deşi CLR-ul furnizează multe servicii de runtime, codul managed nu este cod interpretat. Codul sursă „scris” in oricare dintre cele peste 30 de limbaje de programare disponibile este compilat intr-un assembly conţinând limbaj intermediar (MSIL). După compilare, o altă funcţionalitate a CLR-ului numită compilare just-in-time (JIT) asigură „traducerea” codului managed în limbajul nativ al sistemului host.

23 23

Page 24: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

Simultan, modulul de management al memoriei „elimină” posibilitatea fragmentării memoriei şi asigură un nivel ridicat la localizării referinţelor (eng. memory locality-of-reference) pentru îmbunătăţirea performanţei aplicaţiei.

De asemenea, o capabilitate imposibil de neglijat a platformei .NET este aceea de integrare în aplicaţii server-side de înaltă performanţă (e.g., Microsoft® SQL Server™, IIS - Internet Information Services™). Această infrastructură permite utilizarea codului managed pentru a „scrie” logica business a aplicaţiei, fără a renunţa la avantajele la nivel de performanţă ale unor aplicaţii server din segmentul enterprise.

2.1.2 Class Library Biblioteca de clase .NET Framework reprezintă o colecţie de tipuri

reutilizabile integrată „puternic” (eng. tightly) în CLR. Biblioteca de clase este orientată obiect, furnizând tipuri (clase) cu ajutorul cărora propriul cod managed poate obţine funcţionalitate. Principalele obiective avute in vedere în design-ul acestei componente a platformei sunt legate de imbunătăţirea productivităţii dezvoltării aplicaţiilor, prin oferirea unui suport consistent şi uşor de învăţat. În plus, componentele realizate de terţe entităţipot fi integrate „fără efort” propriilor clase (eng. seamless integration).

Un exemplu, este reprezentat de clasele „colecţie” (eng. collection) care implementează un set de interfeţe care pot fi folosite în dezvoltarea propriilor clase colecţie, asigurand „comunicare” fără efort cu clasele native .NET (eng. seamless blending).

Cum ne puteam aştepta de la orice bibliotecă de clase orientată obiect, tipurile .NET Framework permit realizerea tuturor activităţilor comune limbajelor de programare, incluzând managementul string-urilor, al colecţiilor de date, al conectării la bazele şi la sistemul de fişiere. Adiţional, biblioteca .NET include tipuri care suportă o varietate de scenarii de dezvoltare specializate. Exemplele de aplicaţii pe care le putem dezvolta folosind tipurile oferite de biblioteca de clase .NETinclud, dar nu se limitează la:

• Aplicaţii consolă. • Aplicaţii cu interfaţă Windows® (GUI) folosind Windows Forms. • Aplicaţii Web flosind ASP.NET şi Web Forms. • Servicii Web XML folosind ASP.NET. • Servicii Windows®.

2.1.3 Dezvoltare Aplicaţii Client Aplicaţiile client sunt cele mai apropiate de noţiunea tradiţională de

aplicaţie nativă sistemelor Windows® şi modelului de programare implicat. Aceste aplicaţii permit vizualizarea ferestrelor interfeţei grafice, permiţând utilizatorului realizarea acţiunilor dorite. Aplicaţiile client pot varia de la procesoare de text, vizualizatoare de documente cu diferite formate sau alte aplicaţii de birotică, până la aplicaţii business care manipulează date („inteligenţă”) în scopul stocării, creării de rapoarte etc (eng. data-driven applications, business intelligence aplications etc). Interfaţa aplicaţiilor client este compusă din ferestre meniuri, butoane, câmpuri de introducere a datelor şi alte elemente grafice şi, de obicei, pot accesa resurse locale, precum sistemul de fişiere sau echipamentele periferice (e.g., imprimante etc). Un alt tip de aplicaţie cu caracter tradiţional este reprezentat de controalele de tip

24 24

Page 25: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

ActiveX® (înlocuite de cod managed şi controale Windows Forms) accesibile prin intermediul Internet-ului sub formă de pagini Web. Acest gen de aplicaţie respectă deplin modelul aplicaţiei client, execuţia fiind locală cu potenţial acces la resurse locale, prezentarea folosind elemente de interfaţă grafică.

În trecut, acest gen de aplicaţie era dezvoltat folosind C/C++, cu ajutorul tehnologiilor de gen Microsoft® Foundation Classes (MFC) sau cu ajutorul unui mediu RAD (Rapid Application Developement) precum Microsoft® Visual Basic®. .NET Framework încorporează toate aspectele conceptuale ale acestor tehnologii, într-un mediu de dezvoltare consistent, simplificând „drastic” realizarea de aplicaţii client.

Clasele Windows Forms aparţinând bibliotecii .NET Framework au fost concepute pentru a facilita dezvoltarea aplicaţiilor care „beneficiază” de prezenţa unei interfeţe grafice (GUI), toate acestea într-o manieră pur orientată obiect, bazată pe proprietăţi care ajustează aspectul şi comportamentul elementelor grafice.

Facilităţile depăşesc graniţa vizuală, în anumite cazuri, spre exemplu, fiind necesară regenerarea dinamică a form-ului de către platformă, pentru a acomoda anumite modificări, deoarece sistemul de operare peste care rulează aplicaţia nu permite modificarea directă a unor anumite proprietăţi vizuale sau de comportament. Acest set de capabilităţi „ascunse” permit îmbunătăţirea drastică a calităţii experienţei de dezvoltare software şi asigurarea unui mediu consistent şi robust.

Spre deosebire de controalele ActiveX®, controalele Windows Forms deţin privilegii pentru accesul semi-trusted la sistemul utilizatorului. Acest fapt permite executarea „în siguranţă” a codului nativ cu acces la resursele sistemului local fără riscul de compromitere a altor resurse potenţial confidenţiale, de importanţă pentru utilizator. Datorită acestui sistem de seurizare a accesului codului managed, se facilitează livrarea via Internet/Web a unor aplicaţii care în trecut necesitau instalare pe sistemul utilizatorului (eng. deployment). Aplicaţiile client pot implementa funcţionalităţi caracteristice unei aplicaţii instalate local deşi accesul utilizatorului la aplicaţie este asigurat prin intermediul unei pagini Web.

2.1.4 Dezvoltare Aplicaţii Server Aplicaţiile server sunt implementate folosind host-uri pentru runtime-ul

.NET. Aplicaţii unmanaged acţionează ca „gazdă” pentru CLR, acest fapt permiţând codului managed control asupra comportamentului serverului. Acest model face accesibile toate facilităţile .NET CLR, CTS şi class library asigurând simultan performanţa şi scalabilitatea soluţiei server.

Figura 7 ilustrează capacitatea CLR-ului de a executa cod managed din postura de guest pentru diferite medii server host. Diferite aplicaţii server pe care experienţa le-a impus ca standard al industriei, precum Microsoft® Internet Information Services™ şi Microsoft® SQL Server™ pot realiza operaţiuni standard în timp ce logica aplicaţiei se execută prin cod managed.

25 25

Page 26: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

Figura 7. Mecanismul unmanaged server host/managed guest.

ASP.NET este platforma suport pentru dezvoltarea şi execuţia

aplicaţiilor şi serviciilor Web ce au ca ţintă .Net Framework. Acestea fiind spuse, trebuie menţionat faptul că ASP.NET reprezintă mai

mult decât un runtime gazdă; reprezintă o arhitectură completă pe baza căreia se pot dezvolta soluţii Web , incluzănd site-uri Web, servicii Web bazate pe XML şi obiecte distribuite via Web care execută cod managed. Atât componentele Web Forms, cât şi serviciile Web bazate pe XML utilizează infrastructura IIS/ASP.NET pentru a realiza mecanismele de „publicare” (eng. publishing) şi execuţie a aplicaţiilor, ambele beneficiind de namespace-uri de clase specializate în biblioteca .NET Framework.

Serviciile Web bazate pe XML reprezintă o importantă evoluţie a tehnologiilor Web (eng. Web-based technology). Acest tip de aplicaţie se execută pe server (eng. server-side) şi conţine componente similare cu cele ale unui sit Web obişnuit (aplicatie Web). Diferenţele sunt însă mari, serviciile Web prezentând componente fără interfaţă utilizator (UI) accesibilă via aplicaţii navigator (eng. browser). În schimb, serviciile Web se constituie din colecţii de componente reutilizabile destinate „consumului” de către alte aplicaţii, cum ar fi aplicaţii client tradiţionale, aplicaţii Web, sau chiar alte servicii Web. Ca rezultat, tehnologia serviciilor Web accelerează transferul aplicaţiilor uzuale către zona aplicaţiilor distribuite via Internet.

2.1.4.1 ASP.NET vs. ASP Făcând o comparaţie între ASP.NET şi versiuni anterioare ale

tehnologiilor Web, vom observa imediat îmbunătăţirile calitative şi de performanţă pe care le introduc noile facilităţi (e.g., Web Forms etc).

Un exemplu clar este cel al tehnologiei ASP (Active Server Pages), precursoare a ASP.NET. În cazul ASP.NET este posibilă dezvoltarea aplicaţiilor Web folosind oricare dintre cele peste 30 de limbaje de programare suportate de .NET Framework, faţă de ASP, care permitea folosirea a doar două. În plus, codul scris în limbajul de programare adoptat se află într-un fişier special dedicat acestuia, total separat de fişierul ce conţine codul HTML (se poate opta şi pentru includerea codului sursă în fişierul conţinând codul HTML, în

26 26

Page 27: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

funcţie de preferinţele utilizatorului). Se realizează astfel o separare completă a nivelului de prezentare al aplicaţiei, de nivelul logic, funcţional. Acest fapt are efecte pozitive şi asupra productivităţii aplicaţiilor Web, asigurând o mai bună interacţiune între programator şi designer.

Pe langă o îmbunătăţire a calităţii experienţei de dezvoltare şi a productivităţii, marele avantaj al paginilor Web Forms este dat de îmbunătăţirile de performanţa aduse prin compilarea codului sursă într-un assembly conţinând cod intermediar (MSIL) şi metadate, acesta executându-se în formatul nativ al sistemului host, prin compilarea just-in-time (JIT), într-o manieră similară oricărui alt cod managed. Se permite astfel accesul aplicaţiilor Web la funcţionalitatea şi avantajele .NET Framework.

În contrast, codul unmanaged al paginilor ASP este întotdeauna scriptat şi interpretat (eng. scripted, interpreted). Astfel, aplicaţiile ASP.NET sunt mai rapide, mai funcţionale şi mai confortabil de dezvoltat decât aplicaţiile unmanaged care folosesc tehnologii ASP sau orice tehnologii similare (e.g., PHP etc).

Revenind la suportul pentru servicii Web oferit de .NET trebuie

menţionată existenţa unei colecţii de clase şi instrumente (eng. tools) care facilitează dezvoltarea şi consumarea serviciilor Web bazate pe XML.

Serviciile Web sunt construite pentru a utiliza şi respecta standarde ale industriei, precum SOAP (un protocol care utilizează paradigma RPC pentru transmisia de date folosind un subset al XML), XML (un format de date extensibil, recomandare a W3C) şi WSDL (Web Services Description Language, un limbaj bazat pe XML, folosit la descrierea capabilităţilor serviciilor Web pentru a facilita consumul acestora de către aplicaţii). Motivul principal al construirii .NET Framework într-o manieră în care se utilizează şi se respectă standardele industriei este dat de necesitatea de interoperabilitate între diferite soluţii software precum şi nevoia de accesare a plicaţiilor din medii hardware eterogene.

Spre exemplu, aplicaţia de suport pentru WSDL inclusă în kit-ul de dezvoltare .NET (.NET Framework SDK) poate interoga un serviciu Web publicat şi, prin parsarea descrierii WSDL obţinute, poate produce cod C#™ (eng. see sharp) sau Visual Basic® .NET, cod pe care orice aplicaţie îl poate utiliza pentru a deveni client al respectivului serviciu Web. Acest cod sursă implementează clase derivate din clase aparţinând bibliotecii de clase .NET care pot realiza comunicarea „de dedesubt” (eng. underlying communication) folosind SOAP şi XML.

Într-un scenariu de dezvoltare şi publicare al propriului serviciu Web, .NET Framework oferă acces la un set de clase conforme standardelor de comunicare underlying, precum SOAP, WSDL şi XML.

Folosirea acestor facilităţi permite concentrarea eforturilor de dezvoltare către logica aplicaţiei, fără preocupari adiţionale vis-a-vis de infrastructura de comunicare necesară dezvoltării aplicaţiilor distribuite via Internet/Web.

27 27

Page 28: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

2.2 Inovaţii ale .NET Framework 2.0 Microsoft® .NET Framework versiunea 2.0 Beta extinde versiunea 1.1 a platformei .NET adăugând noi facilităţi, îmbunătăţiri ale facilităţilor existente şi îmbunătăţiri ale documentaţiei aferente. Această secţiune a prezentei lucrări îşi propune enumerarea succintă a celor mai importante modificari şi îmbunătăţiri.

2.2.1 Îmbunătăţiri şi Modificări x86-64

Noile generaţii de calculatoare folosesc arhitecturi pe 64 de biţi (x86-64) care facilitează execuţia mai rapidă a aplicaţiilor şi oferă capacitatea de a adresa o cantitate mai mare de memorie. Începand cu această versiune .NET Framework permite dezvoltarea şi execuţia de aplicaţii managed care să „profite” de avantajele arhitecturii x86-64. Access Control List

O listă de control a accesului (ACL) este utilizată pentru a oferi sau a revoca anumite permisiuni de acces asupra unei resurse existente pe sistemul host. Noi clase au fost adăugate în biblioteca .NET Framework care permit codului managed creerea şi modificarea ACL-urilor. Noi membri ce utilizează ACL au fost adăugaţi în registrul I/O (eng. I/0 registry) şi în clasele care gestionează sau utilizează fire de execuţie (eng. threading classes). ADO.NET

Noile facilităţi incluse în ADO.NET includ suport pentru tipuri definite de utilizator (eng. user-defined types, UDT), operaţii asincrone asupra bazelor de date, tipuri de date XML, tipuri ce permit manipularea valorilor mari şi noi atribute ce permit aplicaţiilor capacitatea de suport a seturilor de rezultate active multiple (eng. multiple active result sets, MARS) în corelaţie cu SQL Server™ 2005. ASP.NET

Microsoft® .NET Framework 2.0 Beta include îmbunătăţiri semnificative asupra tutror aspectelor aplicaţiilor ASP.NET. Există un set de noi controale care fac posibilă realizarea rapidă a task-urilor comune în cazul dezvoltării aplicaţiilor Web. Noile controale destinate datelor fac posibilă afişarea şi editarea informaţiilor conţinute într-o pagină Web fără a scrie cod. Un model îmbunătăţit pentru fişierele de cod asociate paginilor Web (eng. code-behind files) asigură dezvoltarea mai rapidă a aplicaţiilor. De asemenea, au fost introduse noi modalităţi de gestiune a caching-ului, inclusiv abilitatea de a construi dependenţa cache-ului în funcţie de datele din tabelele incluse în bazele de date utilizate de aplicaţie (SQL Server™).

Au fost introduse de asemenea, mecanisme de personalizare (eng. customize) a paginilor şi siturilor Web accesibile via proprietăţi de profil utilizator. Acest mecanism permite runtime-ului ASP.NET să identifice automat valori ale proprietăţilor din profilele utilizatorilor.

28 28

Page 29: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

O nouă funcţionalitate a ASP.NET, numită Web Parts, permite realizarea de aplicaţii pe care utilizatorii le pot modifica/personaliza direct în navigator.

Paginile şablon (eng. master pages) permit realizarea unui layout consistent pentru toate paginile Web ale sitului, iar temele (eng. themes) permit realizarea unui look consistent pentru controale şi text.

Pentru facilitarea protecţiei sit-ului, există acum posibilitatea precompilării aplicaţiei Web (atât a codului sursă, cât şi a fişierelor markup) pentru a produce cod executabil, îmbunătăţind drastic şi performanţa execuţiei. Codul astfel obţinut poate fi „găzduit” de IIS. Îmbunătăţirile ASP.NET includ, de asemenea, noi instrumente şi clase care facilitează managementul siturilor Web. Un alt aspect care a fost îmbunătăţit se referă la capacitatea ASP.NET de a viza o gamă largă de navigatoare şi dispozitive (eng. browsers, devices). Setările default ale ASP.NET renderizează output compatibil standardului XHTML 1.1, dar se pot folosi filtre pentru a facilita renderizarea aceluiaşi conţinut cu diferite proprietăţi specifice anumitor navigatoare. Autentificarea fluxurilor (eng. stream authentication)

Aplicaţiile pot folosi noile clase NegotiateStream şi SslStream pentru autentificare şi pentru a facilita transmiterea de informaţii securizate. Aceste clase de autentificare a fluxurilor suportă autentificarea mutuală, criptarea datelor transmise (eng. data encryption) şi „semnarea” datelor (eng. data signing). Pentru autentificare, clasa NegotiateStream utilizează protocolul de securitate Negotiate, iar clasa SslStream utilizează protocolul de securitate SSL (Secure Socket Layer). COM Interop

Patru mari îmbunătăţiri au fost introduse pentru clasele şi instrumentele care asigură interoperabilitatea dintre .NET Framework şi COM.

Cea mai importantă are ca ţintă capacitatea de manipulare a handle-urilor menţinute de sistemul de operare. Sistemul de operare menţine un număr limitat de handle-uri folosite pentru a referenţia resurse critice. Noile clase SafeHandle şi CriticalHandle, precum şi clasele specializate derivate din acestea asigură metode sigure de manipulare a handle-urilor sistem.

O a doua îmbunătăţire se referă la mecanismul de marshaling care facilitează interoperabilitatea cu codul nativ. Două modificări majore ale marshaler-ului adresează două dintre cele mai comune necesităţi ale dezvoltatorilor: abilitatea de „împachetare” (eng. wrapping) pointerilor la funcţii native în delegate-uri şi capacitatea de marshaling a şirurilor de dimensiune fixă conţinând structuri de structuri.

A treia modificare majoră adresează performanţa apelurilor dintre aplicaţii aflate în domenii de aplicaţie diferite, aceasta fiind acum mult mai rapidă pentru apelurile tipurilor comune (eng. common call types).

Şi, nu în ultimul rând, au fost introduse noi opţiuni (eng. switches) pentru Type Library Importer (Tlbimp.exe) şi Type Library Exporter (Tlbexp.exe) pentru a elimina dependenţa de regiştri (eng. registry) pentru a rezolva referinţele la bibliotecile de tipuri (eng. type library references).

29 29

Page 30: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

Clasa Console

Noii membri ai clasei Console permit aplicaţiilor un mai mare grad de libertate în manipularea proprietăţilor acesteia, precum dimensiunile ferestrei consolă şi a buffer-ului ecran, parametrii mişcării zonelor rectangulare pentru realizarea fină a animaţiilor simple, timpul de aşteptare cu citire a input-ului până la apăsarea unei taste etc. DPAPI (Data Protection API)

Noua interfaţă de programare vizând protecţia datelor (DPAPI) include patru metode care permit aplicaţiilor criptarea parolelor, a cheilor, a string-urilor de conectare (eng. connection string) etc, fără apeluri de tip PInvoke (Platform Invoke). Este posibilă de asemenea criptarea blocurilor de memorie pentru maşini care rulează Windows® Server™ 2003. Debugger Edit and Continue

.NET Framework 2.0 Beta reintroduce capacitatea de editare şi continuare a execuţiei în timpul procesului de depanare (eng. debugging) a aplicaţiei dezvoltate. După editarea codului execuţia poate fi reluată, utilizatorul având astfel capacitatea de a urmări exact efectul modificărilor codului sursă. Mai mult, prin includerea în platformă acestui mecanism este posibilă utilizarea sa în oricare dintre limbajele de programare suportate de Visual Studio®. Detecţia modificărilor stării conectivităţii reţelei

Clasa NetworkChange permite aplicaţiilor recepţionarea notificărilor referitoare la modificări ale stării interfeţei reţea la nivel IP (Internet Protocol). Defecţiunile hardware, deconectarea cablului de reţea, reconfigurarea via DHCP (Dynamic Host Control Protocol) sau părăsirea razei de acţiune a unui punct de acces WiFi pot fi cauze ale modificărilor adresei IP ale unei interfeţe reţea, iar aplicaţiile pot folosi clasa NetworkChange, pentru a fi notificate de aceste schimbări şi a putea acţiona în consecinţă. Cereri disjunctive (eng. disjunctive demands)

În versiunile anterioare ale .NET Framework, nu exista opţiunea accesului la o clasă sau la o metodă, de către multiple identităţi cod (eng. code identities). De exemplu, doar un singur „nume tare” (eng. strong name) putea fi cerut la un moment dat, fapt care crea o problemă în scenarii în care se testau mai multe assembly-uri strong-named provenind din diferite surse. Era, deci necesară o modalitate de combinare a identităţilor mai multor elemente (spre exemplu, folosind un SAU logic pe biţi). Astfel, s-au creat noi acţiuni disjunctive de securitate care permit cererea simultană, cererea via moştenire sau cererea via legătură a permisiunilor asociate unor identităţi multiple. În cazul assembly-urilor strong-named, folosirea acţiunii DemandChoice permite cererea mai multor identităţi strong-named, prezenţa oricăreia dintre acestea permiţând parcurgerea cu succes a stivei. Cele trei noi acţiuni de securitate care permit cereri disjunctive sunt DemandChoice, InheritanceDemandChoice şi LinkDemandChoice.

30 30

Page 31: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

Distributed Computing În namespace-ul System.Net, a fost adăugat suport pentru cereri client

vizând FTP (File Transfer Protocol), pentru caching al resurselor HTTP (Hypertext Transfer Protocol), pentru descoperirea automată a proxy-urilor şi pentru obţinerea de informaţii statistice referitoare la traficul de reţea. System.Net include, de asemenea, o clasă ce oferă funcţionalităţi de bază pentru aplicaţii de tip server Web (HttpWebListener). În plus, clasele generatoare de trafic de reţea au fost instrumentate în vederea output-ului informaţiilor de tracing în scopul depanării şi diagnosticării aplicaţiilor care le utilizează.

Noi îmbunătăţiri ale securităţii şi performanţei au fost aplicate claselor System.Net.Sockets.Socket şi System.Uri.

În namespace-urile System.Web.Services, a fost adăugat suport pentru SOAP 1.2 şi pentru elemente nullable. În namespace-urile System.Runtime.Remoting.Channels, au fost adăugate funcţionalităţi care asigura securitatea canalelor. Canalul TCP suportă autentificare şi criptare, precum şi câteva noi funcţionalităţi pentru îmbunătăţirea calibrării solicitării (eng. load balancing). EventLog

În noua versiune .NET Framework se pot folosi DLL-uri proprii (eng. custom) pentru mesajele, parametrii şi categoriile EventLog. Extinderea capacităţii de gestiune a certificatelor

.NET Framework 2.0 Beta include suport pentru depozite, lanţuri şi extensii de certificate X.509. În plus, există posibilitatea semnării şi verificării XML folosind certificate X.509 fără a folosi PInvoke. De asemenea, a fost introdus suport pentru semnături şi criptări folosind standardele PKCS7 (formatul care stă la baza S/MIME - Secure/Multipurpose Internet Mail Extensions pentru semnarea şi criptarea datelor) şi CMS (un superset al standardului PCKS7 disponibil în sistemele de operare din familia Microsoft® Windows® începând cu versiunea 2000). FTP

Aplicaţiile pot accesa resurse FTP folosind clasele WebRequest, WebResponse şi WebClient. Generice şi colecţii de generice (eng. generics)

.NET Framework 2.0 Beta introduce suport pentru generice în scopul facilitării „scrierii” de cod flexibil şi reutilizabil. Acestea acţionează ca template-uri, permiţând claselor, structurilor, interfeţelor, metodelor şi delegate-urilor să fie declarate şi definite cu specificarea parametrilor de tip generic, specificarea exactă a tipului realizându-se la utilizarea genericului. Diferite namespace-uri precum System.Collections.Generic furnizează clase şi metode generice şi pentru colecţii de „tipuri tari” (eng. strongly typed collections). System.Nullable<T> este reprezentarea generală pentru valori opţionale. Genericele sunt suportate de trei limbaje de programare: Visual Basic, C# şi C++.

31 31

Page 32: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

În plus, mecanismul de reflexie (eng. reflection) a fost extins pentru a permite examinarea şi manipularea tipurilor şi metodelor generice în timpul execuţiei. Pentru identificarea şi obţinerea parametrilor de tip generic, precum şi pentru crearea unui tip specific dintr-un tip generic, noi membri au fost adăugaţi claselor System.Type şi System.Reflection.MethodInfo (e.g., HasGenericArguments, GetGenericArguments, BindGenericParameters etc). Globalizare

Cinci noi funcţionalităţi au fost adăugate pentru a oferi un suport înbunătăţit pentru dezvoltarea aplicaţiilor destinate mai multor culturi sau limbaje. Un exemplu este reprezentat de clasa CultureAndRegionInfoBuilder.

Encodarea şi decodarea caracterelor Unicode a fost îmbunătăţită prin implementarea unui sistem de revenire, în cazul apariţiei unei exceptii (eng. fallback mechanism) disponibil în diverse clase din namespace-ul System.Text. Membrii clasei UTF8Encoding, responsabilă de realizarea encodării UTF-8 (metoda cea mai des folosită pentru transformarea caracterelor Unicode în octeţi, pentru stocare şi/sau procesare digitală), au fost imbunătăţiţi pentru a obţine un spor de performanţă considerabil. .NET Framework 2.0 Beta suportă cel mai recent standard de normalizare definit de Unicode Consortium. I/O

Diverse îmbunătăţiri au fost operate asupra funcţionalităţii şi utilizabilităţii diverselor clase responsabile pentru operaţii I/O. Facilităţile pe care s-a pus accent se referă la citirea şi scrierea fişierelor, la obţinerea informaţiilor despre sistemul de fişiere (e.g., informaţii despre drive-uri etc).

O altă facilitate este oferită de namespace-ul System.IO.Compression, care permite citirea şi scrierea datelor folosind standardele GZIP pentru compresie şi decompresie (arhivare/dezarhivare). Activarea via Manifest (eng. manifest-based activation)

Această facilitate permite încărcarea şi activarea aplicaţiilor prin folosirea unui manifest. Activarea via manifest este o facilitate necesară pentru suportul aplicaţiilor ClickOnce. În mod normal, o aplicaţie este activată folosind o referinţă la un assembly care conţine principalul punct de acces al acesteia (eng. main entry point). De exemplu, activarea fişierului .exe al aplicaţiei din mediul Windows®, cauzează încărcarea CLR-ului şi apelul punctului de intrare, bine cunoscut, conţinut in assembly-ul corespunzător respectivului fişier .exe. Modelul activării via manifest foloseşte un fişier .manifest, în locul assembly-ului. Acest manifest descrie în totalitate aplicaţia, dependenţele, necesităţile aplicaţiei referitoare la securitate etc. Modelul manifest are câteva avantaje majore faţă de modelul bazat pe assembly, în special în cazul aplicaţiilor Web. .NET Framework Remoting

În noua versiune, .NET Framework remoting suportă adrese IPv6 şi interschimbul tipurilor generice. Clasele din namespace-ul

32 32

Page 33: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

System.Runtime.Remoting.Channels.Tcp suportă autentificare şi criptare folosind SSPI (Security Support Provider Interface).

Clasele din noul namespace System.Runtime.Remoting.Channels.Ipc permit aplicaţiilor remoting, care se execută pe acelaşi host o comunicare rapidă, fără a folosi infrastructura de reţea.

În plus, în noua versiune, se poate configura timpul de viaţă al cache-ului (eng. time-out) şi numărul maxim de reîncercări ale unei metode, acestea îmbunătăţind mult performanţa cluster-elor „la distanţă”, care comunică folosind reţele cu gestiune echilibrată a solicitării (eng. network load-balanced remote clusters). Procesarea cererilor HTTP din interiorul aplicaţiilor

Aplicaţiile .NET Framework 2.0 pot utiliza clasa HttpListener pentru a crea un server Web simplu, care să răspundă la cereri HTTP. Acest server va fi activ pe intreaga durată de viaţă a obiectului HttpListener, funcţionând în interiorul aplicaţiei, cu permisiunile acesteia. Excepţii de securitate (eng. security exceptions)

Clasa System.Security.SecurityException a fost extinsă în scopul furnizării de date ce facilitează investigarea cauzelor excepţiilor generate din motive de securitate. Noile proprietăţi oferă informaţii despre metoda care a lansat excepţia, primul privilegiu care a fost încălcat, zona sau URL-ul assembly-ului, acţiunea de securitate care a eşuat şi acţiunea de securitate prezentă pe stiva de apeluri care a generat excepţia (e.g., Deny, PermitOnly etc). Suport pentru dispozitive I/O seriale

Noua clasă SerialPort furnizează aplicaţiilor abilitatea de accesare a porturilor seriale ale sistemului host şi de comunicare cu dispozitive I/O seriale. Serializare

Clasele BinaryFormatter şi SoapFormatter au fost extinse pentru a suporta serializare tolerantă la modificări de versiune (eng. version-tolerant serialization), fapt ce permite deserializarea obiectelor care au fost serializate folosind o versiune diferită de serializare.

În plus, în noua versiune a platformei, serializarea XML suportă utilizarea proprietăţilor în locul câmpurilor pentru reprezentarea elementelor schemei, serializarea tipurilor generice şi utilizarea structurii Generic Nullable pentru reprezentarea elementelor nullable. Interfaţa IXmlSerializable suportă generarea de scheme custom, iar SchemaImporterExtension permite controlul generării de cod proxy pentru acces la servicii Web, prin alterarea schemei în timpul importării acesteia. De exemplu, se poate altera codul proxy generat folosind funcţia Add Web Reference a Visual Studio® sau folosind WSDL.exe.

De asemenea, noua XML Serializer Generator Tool (Sgen.exe) permite precompilarea codului folosit de clienţii serviciilor Web pentru a serializa

33 33

Page 34: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

informaţia transmisă, îmbunătăţind drastic timpul de pornire al aplicaţiei client. SMTP

Folosind clasele din namespace-urile System.Net.Mail şi System.Net.Mime, aplicaţiile pot expedia mesaje e-mail unuia sau mai multor recipienţi folosind modele de prezentare alternative (e.g., text, HTML etc), copii indigo sau copii indigo oarbe (eng. carbon copies, blind carbon copies). Fire de execuţie (eng. threading)

.NET Framework 2.0 Beta include posibilitatea numirii evenimentelor de comunicare care depăşesc graniţele proces (eng. cross-process) create doar în cod managed.

De asemenea, clasa Semaphore suportă numărarea resurselor (eng. resource counting). Tracing

Noua versiune a platformei .NET oferă clase de tracing şi loging al evenimentelor din sistem (e.g., I/O, startup, shutdown etc). Cu toate acestea, volumul imens de date şi diversitatea acestora fac aproape imposibilă analiza informaţiei. Extinderea acestora pentru a suporta filtrarea datelor permit utilizatorului specificarea exactă a tipului informaţiilor ce urmează a fi înregistrate. Servicii Web (eng. Web services)

În .NET Framework 2.0 Beta, serviciile Web suportă SOAP 1.2 şi WS-I Basic Profile 1.0 (documentat la http://www.ws-i.org/Profiles/Basic/2003-08/BasicProfile-1.0a.html).

În scenarii în care aplicaţia client consumă mai multe servicii Web care partajează tipuri, codul proxy generat pentru acele servicii Web distribuie aceste tipuri către aplicaţia client. Acest fapt permite clienţilor să interschimbe instanţe ale acelor tipuri partajate între servicii Web.

O altă funcţionalitate nou introdusă permite clienţilor apelarea asincronă a metodelor serviciului Web folosind un şablon programatic bazat pe evenimente (eng. event-based programming pattern). Windows Forms

ClickOnce reprezintă o nouă tehnică de deployment al aplicaţiilor care pemite distribuirea de aplicaţii Windows cu capabilităţi de auto-actualizare (eng. self-updating) care pot fi instalate şi executate într-o manieră simplă până acum caracteristică doar aplicaţiilor Web.

Application settings pentru aplicaţii Windows Forms face posibilă crearea, stocarea şi menţinerea setărilor aplicaţiilor şi a preferinţelor utilizatorilor (e.g., poziţia elementelor interfeţei utilizator etc).

Noul model de conectare la baze de date este simplificat de introducerea componentei DataConnector, aceasta acţionând ca intermediar între controlul „legat” la baza de date şi aceasta, având rolul de manager al evenimentelor legate de procesul de data-binding. Un alt scop al acestei

34 34

Page 35: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

componente este acela de interoperare cu alte controale implicate in procese data-related (e.g., DataNavigator, DataGridView etc).

.NET Framework 2.0 Beta introduce noi controale Windows Forms. Controlul DataGridView asigură o modalitate puternică de afişare a datelor în format tabelar, cu suport pentru paginare, sortare, filtrare, editare şi ştergere.

Controalele ToolStrip sunt o extindere a conceptului de toolbar care permite acomodarea de meniuri şi controale utilizator permiţând crearea de interfeţe utilizator într-o manieră consistentă cu stilul sistemului de operare şi al aplicaţiilor consacrate (e.g., Windows XP, Microsoft Office, Internet Explorer etc).

Controlul MaskedTextBox utilizează o definiţie de tip „mască” pentru validarea datelor introduse de utilizator.

Componenta SoundPlayer facilitează includerea de clipuri sonore în aplicaţii. Aceasta poate reda fişiere media în formatul .wav, fie dintr-o resursă, fie folosind locaţii UNC (Universal Naming Conventions) sau HTTP.

Controlul ListView suportă trei elemente de funcţionalitate introduse de familiile de sisteme de operare Windows XP, respectiv Windows Server 2003: tile view, grupare şi repoziţionare a elementelor conţinute folosind interacţiune de tip drag-and-drop.

Controlul ActiveDocumentHost permite afişarea documentelor active (e.g., documente Microsoft Office etc).

Controlul WebBrowser permite acomodarea paginilor Web în propria aplicaţie Windows Forms, putând fi foosit pentru afişarea documentaţiei HTML sau pentru a oferi capabilităţi de navigator Web.

Controlul FlowLayoutPanel îşi renderizează conţinutul într-o dispunere de tip flow orientată vertical sau orizontal. În contrast, controlul TableLayoutPanel îşi aranjează conţinutul folosind modelul grid.

Componenta BackgroundWorker permite realizarea în fundal (eng. background) a operaţiilor consumatoare de timp, fără relevanţă vis-a-vis de interfaţa aplicaţiei.

Nu în ultimul rând, trebuie menţionată introducerea în modulul Windows Forms al .NET Framework 2.0 Beta, a şablonului asincron pentru componente (eng. the asynchronous pattern for components), un model bazat pe evenimente care beneficiază de toate avantajele aplicaţiilor cu multiple fire de execuţie, împachetând aspectele complexe inerente design-ului multi-thread. XML

.NET Framework 2.0 Beta furnizează o multitudine de îmbunătăţiri, incluzând un nou procesor pentru XSL Transformation (XSLT), suport pentru tipuri în clasele XmlReader, XmlWriter şi XpathNavigator şi o multitudine de capabilităţi de editare ale clasei XPathNavigator. În plus, există un nou model pentru crearea obiectelor de tip XmlReader şi XmlWriter, precum şi multe îmbunătăţiri la nivel de performanţă.

35 35

Page 36: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

2.2.2 Compatibilitate Platforma .NET este dezvoltată având ca prioritate de importanţă

majoră menţinerea compatibilităţii forward şi backward între versiuni. Cu toate acestea, modificările destinate îmbunătăţirii anumitor aspecte

ale platformei, cum ar fi securitatea, corectitudinea sau funcţionalitatea, pot fi sursa unor incompatibilităţi.

Compatibilitatea backward a platformei .NET se referă la posibilitatea de execuţie a unei aplicaţii scrise folosind o versiune anterioară, pe un sistem care utilizează versiunea curentă. .NET Framework suportă un grad ridicat de compatibilitate backward. Astfel, majoritatea aplicaţiilor dezvoltate folosind versiunea curentă vor funcţiona în versiunea viitoare.

Compatibilitatea forward se referă la posibilitatea execuţiei unei aplicaţii scrise în versiunea curentă a .NET Framework, pe un sistem care utilizează versiunea anterioară. Deşi .NET Framework suportă compatibilitate forward, o aplicaţie care foloseşte un tip (o clasă) sau un membru specific versiunii curente nu va funcţiona niciodată corect, folosind o versiune anterioară. Acest fapt nu reprezintă o incompatibilitate forward, deoarece acest tip de aplicaţie nu este conceput pentru a rula pe versiuni anterioare ale platformei. Pentru a crea o aplicaţie compatibilă cu două versiuni ale .NET Framework, aceasta trebuie să utilizeze doar tipuri şi membri specifici versiunii inferioare.

Modificările apărute în dezvoltarea platformei, generatoare de incompatibilităţi între versiuni ale acesteia, pot fi catalogate sub două tipuri: modificări binare, respectiv modificări comportamentale ale unor tipuri sau membri. Aceste modificări responsabile pentru apariţia unor incompatibilităţi, pot fi de asemenea catalogate ca fiind modificări backward sau modificări forward, după tipul de incompatibilitate generat. În general, modificările backward, sunt create pentru a îmbunătăţi securitatea platformei, iar modificările forward, pentru a elimina erorile comportamentale identificate în versiunea anterioară. Modificările binare reprezintă modificări ale signaturii unui tip sau ale unui membru, iar modificările comportamentale se referă la modul de operare al unui tip sau al unui membru.

Pentru a putea rula aplicaţii folosind diferite versiuni ale platformei se folosesc redirectările prin intermediul fişierelor de configurare. Implicit, aplicaţiile sunt configurate pentru a folosi versiunea .NET Framework pentru care au fost dezvoltate, mai exact, versiunea pe care au fost compilate. În acest caz, nu este necesară crearea unui fişier de configurare auxiliar. Dacă totuşi se doreşte rularea aplicaţiei folosind una sau mai multe versiuni ale platformei .NET, se poate specifica acest lucru într-un fişier de configurare auxiliar.

Fişierele de configurare au extensia .config şi pot fi create automat, folosind Visual Studio®, sau manual, folosind un editor text. Aceste fişiere vor conţine setul de versiuni candidat specificate prin indicativ în ordinea preferinţei de utilizare. Un exemplu de fişier de configurare poate conţine:

<startup> <requiredRuntime imageVersion="v2.0.50215" version="v1.1.4322" /> <supportedRuntime version="v2.0.50215" /> <supportedRuntime version="v1.1.4322" /> </startup>

36 36

Page 37: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

2.3 Instrumente pentru Dezvoltare

Pe lângă design-ul robust şi consistent al platformei, .NET Framework 2.0 Beta beneficiază şi de o suită de instrumente destinate optimizării procesului de dezvoltare a aplicaţiilor software cu avantaje majore din perspectiva îmbunătăţirii productivităţii, a reducerii timpului de implementare şi lansare a aplicaţiei (eng. time to market, TTM), şi implicit, a recuperării investiţiei (eng. return of investment, ROI).

2.3.1 Visual Studio 2005 „Whidbey” Principala soluţie utilizată pentru dezvoltarea aplicaţiilor .NET este

Visual Studio® 2005, aflat în stadiul de Beta 2 la momentul realizării prezentei lucrări. Visual Studio® 2005 reprezintă o aplicaţie de tip IDE (Integrated Development Environment), de ultimă generaţie, perfect integrată cu .NET Framework 2.0 SDK. Această integrare conduce la disponibilitatea tuturor îmbunătăţirilor platformei direct din mediul Visual Studio®, exemple fiind seturile de controale WebForms, respectiv WindowsForms, nou introduse, facilitatea de editare şi continuare a depanării aplicaţiei etc.

Şabloanele de proiecte disponibile acoperă întreaga gamă de aplicaţii ce pot fi dezvoltate folosind .NET, inclusiv aplicaţii pentru dispozitive mobile, pentru dezvoltarea cărora Visual Studio® include emulatoare, îmbunătăţite pentru a respecta specificaţiile noilor versiuni ale sistemului de operare Windows Mobile® şi ale dispozitivelor reale.

Editorul de cod sursă a fost de asemenea îmbunătăţit, printre nenumăratele facilităţi oferite, remarcându-se IntelliSense, motorul de recunoaştere, colorare şi completare automată a codului (eng. code completion), care acum include şi posibilităţi de reformare a codului (eng. code refactoring).

Alte facilităţi includ management îmbunătăţit al proiectelor, posibilităţi de integrare cu Visual Source Safe® pentru gestiunea optimizată a codului sursă partajat, abilitatea de publicare a proiectelor local sau „la distanţă”, folosind standarde disponibile pe server (e.g., FTP etc) şi posibilitatea de publicare folosind noua tehnologie ClickOnce.

2.3.2 Team System Premieră absolută pentru această versiune a Visual Studio® este

integrarea în suita Team System, un sistem complet, destinat satisfacerii fiecărui aspect al procesului de dezvoltare, incluzând suport pentru controlul centralizat al codului sursă şi al diferitelor versiuni ale aplicaţiilor dezvoltate, pentru dezvoltarea urmând diferite pattern-uri programatice, pentru testare modulară sau integrală a unei aplicaţii, pentru management-ul proiectului dezvoltat şi implicit, pentru cooperarea între membrii echipei de dezvoltare.

Inovator este modelul extensibil al acestei platforme de dezvoltare, asigurat printr-un API specializat (Team Foundation Enablement API). Modelul utilizează instrumente, artefacte (obiecte), servicii şi servere. Team Foundation reprezintă platforma pentru integrare a diferitelor instrumente. Un asemenea instrument participă în cadrul Team System prin implementarea unor API-uri şi prin ataşarea la interfaţa grafică extensibilă a sistemului,

37 37

Page 38: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

folosind mecanismul de plug-in. În anumite situaţii, este necesar ca unealta să ofere o gamă specifică de funcţionalităţi server. Acest fapt se va realiza prin implementarea unui serviciu Web care să faciliteze accesul la API-urile respective. API-ul furnizează informaţiile necesare instrumentelor, sub formă de artefacte, obiecte cu identitate bine definită, al căror informaţie are sens clar pentru unealta respectivă. Componentele server ale instrumentelor existente, mai exact serviciile Web implementate de acestea, sunt reunite pentru a forma un Team Foundation Server logic, care poate fi găzduit de o singură maşină sau pe un set de maşini diferite, pentru a putea face faţă unei solicitări mai intense.

Acest principiu de personalizare prin extensibilitate a platformei de dezvoltare software reprezintă un nou concept destinat îmbunătăţirii experienţei de lucru în echipă asupra unor proiecte de complexitate ridicată respectând principiile MSF (Microsoft Solutions Framework).

2.4 Spre „Longhorn” – Viitorul .NET „Longhorn” este numele de cod al viitoarei generaţii de sisteme de

operare din familia Windows®. Deşi scopul lucrării de faţă nu este acela al descrierii detaliate a acestui sistem de operare şi a inovaţiilor propuse, trebuie menţionat faptul că, din punct de vedere conceptual, multe dintre aceste soluţii inovatoare vor influienţa direct sau indirect industria de profil şi direcţiile de dezvoltare ulterioară a aplicaţiilor pentru sisteme desktop şi nu numai.

2.4.1 „WinFS” - Semantică pentru Desktop Deşi WinFS nu va fi lansat odată cu Windows® Longhorn în 2006, acesta

nu a fost retras din agenda Microsoft, urmând a fi lansat ulterior ca subsistem de stocare şi prezentare a datelor, pentru întreaga familie de sisteme de operare Windows®.

WinFS reprezintă un dublu acronim, care poate fi expandat în Windows Future Storage sau Windows File System.

În esenţă, titlul acestui subcapitol dă o definiţie pertinentă pentru WinFS. Acest subsistem este dezvoltat pentru a facilita explorarea resurselor stocate pe sistemul local, în scopul rezolvării aspectelor problematice ale sistemelor de stocare utilizate de actualele generaţii de sisteme de operare (e.g., regăsirea informaţiilor, relaţionarea datelor etc). Abordarea propusă combină tehnologia de vîrf a bazelor de date relaţionale (SQL Server™ 2005) cu cea a semanticii formale. Prin crearea de taxonomii şi ontologii care să respecte natura informaţiilor stocate, a conţinutului acestora (unde este cazul) şi a relaţiilor dintre diferitele unităţi de informaţie, se permite o mai bună interacţiune între sistemul de operare şi utilizator.

2.4.2 „Avalon” – Un Nou Sistem de Prezentare Grafică „Avalon” este numele de cod al subsistemului de prezentare grafică

disponibil în viitoarea generaţie de sisteme de operare Windows®.

38 38

Page 39: Retele Sociale Digitale Ubicue

.NET Framework – Prezent şi Viitor

Principalele caracteristici de suprafaţă ale acestui nou subsistem de prezentare vor fi capacitatea de renderizare tridimensională a interfeţei sistemului de operare şi capacitatea de generare şi renderizare de elemente grafice vectoriale.

Pentru a-şi atinge obiectivele Avalon va utiliza un nou model de interacţiune cu procesorul grafic al sistemului (eng. graphics processing unit, GPU), acest model permiţând utilizarea optimă a capacităţilor de renderizare ale plăcii grafice, pentru redarea elementelor de interfaţă grafică (GUI), inclusiv a zonelor client (e.g., ferestre document etc).

Cel de-al doilea element inovativ al Avalon este dat de adoptarea unui nou model programatic declarativ, folosind XAML (XML Application Markup Language), un limbaj de descriere al elementelor grafice folosind sintaxă XML, asemănător SVG (Scalable Vector Graphics), standard al W3C pentru specificarea elementelor grafice vectoriale.

Acest model de programare, asociat cu abilitatea subsistemului de prezentare grafică de utilizare a capacităţilor plăcii grafice chiar şi pentru redarea obiectelor bidimensionale, va permite un control mult îmbunătăţit asupra interfeţelor utilizator, acestea implementând proprietăţi pentru granularitate, transparenţă independentă a diferitelor elemente grafice şi posibilitate nelimitată de scalare, fără deteriorarea calităţii interfeţei.

2.4.3 „Indigo” – Viitorul Serviciilor Web „Indigo” este numele de cod al noii platforme destinată serviciilor

tranzacţionale, având la bază infrastructura serviciilor Web. Modelul folosit de Indigo reprezintă o soluţie orientată spre servicii, bazată pe tehnologiile .NET Framework 2.0, având ca scop simplificarea dezvoltării sistemelor conectate şi integrarea capabilităţilor unei game largi de arhitecturi distribuite. Principiul orientării serviciu, diferă de cel al orientării obiect prin definiţia atribuită termenului „sistem”. În mediile orientate obiect un sistem reprezintă o colecţie de clase care interacţionează direct într-o manieră „puternic” cuplată (eng. tightly coupled). Arhitectura orientată spre servicii (eng. service oriented architecture, SOA), defineşte un sistem ca fiind o colecţie de servicii autonome, „slab” cuplate (eng. losely coupled), care interacţionează peste barierele impuse de arhitecturile fizice ale reţelei, asigurând un grad sporit de interoperabilitate.

Gradul de inovaţie al Indigo va fi adus de optimizarea tehnologiei serviciilor Web deja existente pentru a acoperi necesităţile din ce în ce mai rafinate ale mediului de afaceri, în încercarea de a asigura o interacţiune sigură şi fiabilă, fără a neglija interoperabilitatea sistemului.

39 39

Page 40: Retele Sociale Digitale Ubicue

3. Reţele Sociale 3. Reţele Sociale Digitale Ubicue Digitale Ubicue

40

40 40

Page 41: Retele Sociale Digitale Ubicue

Reţele Sociale Digitale Ubicue

3.1 Introducere

În general, termenul de reţea socială digitală se referă la o specie de aplicaţii informatice care utilizează Internet-ul pentru a facilita interacţiunea între membrii unei reţele sociale reale (e.g., familie, prieteni, parteneri de afaceri etc).

Prima apariţie a unor situri Web care utilizează noţiunea de reţea socială (eng. social networking) coincide cu anul 2002, însă fenomenul devine popular în 2003 odată cu lansarea siturilor Web Friendster (http://www.friendster.com) şi LinkedIn (http://www.linkedin.com). Friendster propune o abordare orientată către relaţiile de prietenie, promovând conceptul de „cerc de prieteni” (eng. circle of friends), iar LinkedIn propune o abordare orientată către relaţii de parteneriat antreprenorial, orientându-se către potenţialul de exploatare a fenomenului, în sectorul business. Momentan există aproximativ 200 de situri Web care exploatează acest concept, însă cele menţionate sunt cele mai importante. Tipicul de funcţionare al unui astfel de sit este simplu. Un set iniţial de membri fondatori trimite invitaţii cunoscuţilor, mai exact, membrilor reţelelor sociale reale proprii. Noii utilizatori repetă procesul, iar numărul de membri ai reţelei totale creşte, odată cu numărul de relaţii. Funcţionalitatea acestor situri include posibilitatea actualizării automate a contactelor utilizatorului (eng. address book updates), profile vizualizabile public, eventual asociate cu seturi de fotografii, abilitatea de a utiliza un serviciu de prezentare, pentru a introduce doi membri conectaţi indirect (eng. introduction service), precum şi alte forme de conectare socială.

În iunie 2003, cu ocazia PlaNetwork Conference, Ken Jordan, Jim Hauser şi Steven Foster propun prin lucrarea prezentată, conceptul ASN (Augmented Social Network). Lucrarea introduce fundamentele unei noi viziuni sociale asupra Internet-ului, care tratează utilizatorii drept „cetăţeni” având identitate digitală, înlocuind conceptul de „consumator” (client). ASN este propus ca sistem general disponibil pe Internet, facilitând crearea de relaţii pe baza intereselor şi a expertizei relevante a „cetăţenilor”, într-un context ce favorizează încrederea reciprocă (eng. mutual trust), pentru a crea eficient o reţea socială reală. La baza ASN se află ideea de „identitate socială digitală” formulată într-o manieră care permite prezentarea între membrii cu afinităţi similare, prin recomandări ale unor terţe părţi „de încredere” (eng. trusted third parties). Obiectivele autorilor ASN sunt acelea de a crea un sistem bazat pe Internet care să permită distribuţia eficientă de cunoştinţe (eng. knowledge) între indivizi, depăşind graniţele instituţionale, geografice şi sociale (statut), de a stabili o formă de identitate digitală persistentă care să suporte valorile comune ale societăţii civile, şi de a îmbunătăţi abilitatea indivizilor de a forma relaţii şi de a se auto-organiza pe baza intereselor comune. Pentru a atinge aceste obiective, autorii lucrării sugerează o arhitectură care va permite „îmbunătăţirea reţelelor sociale prin intermediul mediilor digitale interactive, în încercarea de a exploata natura tranzitivă a „încrederii” asigurată de principiul celor şase grade de conectare” (n.a. grade de separaţie). Din punct de vedere tehnic, arhitectura ASN implică o formă de identitate digitală persistentă, controlabilă de către utilizator şi sensiblă la context, construită folosind standarde „deschise” (eng. open standards), seturi

41 41

Page 42: Retele Sociale Digitale Ubicue

Reţele Sociale Digitale Ubicue

de servicii Web interoperabile care folosesc standarde „deschise” şi facilitează funcţionarea sistemului, şi tehnologii semantice (e.g., ontologii, taxonomii etc) care să permită identificarea „interesului public” în funcţie de context.

Pornind de la această lucrare, în iulie 2004, cu ocazia unei noi ediţii a conferinţei sus-amintite, este introdus termenul de Social Web, în lucrarea intitulată „The Social Web: Building an Open Social Network with XDI”, aparţinând membrilor comitetului tehnic OASIS XDI. Lucrarea prezintă conceptul de Web social, ca fiind o reţea de distribuţie de informaţii, deschisă şi globală, similară spaţiului Web actual, diferenţa constând în faptul că, scopul acestei reţele nu este acela de a crea legături între documente, ci legături între persoane, organizaţii şi concepte. Lucrarea propune pentru realizarea acestui obiectiv, o infrastructură bazată pe un nou protocol de distribuţie şi sincronizare mediată de date, numit XDI, care va facilita un nou nivel de „încredere” asociat aplicaţiilor destinate interschimbului de date şi informaţii. Unităţile aflate la baza acestui nou nivel vor fi I-names, I-numbers (bazate pe specificaţiile OASIS XRI), paginile Dataweb şi „contractele de legătură”.

Universalizarea drepturilor virtuale asupra identităţii virtuale (http://www.virtualrights.org) va facilita posibilitatea de implementare a unei versiuni demonstrative a conceptului de Web social, însă acest concept este o particularizare vizând interese sociale, a iniţiativei mai largi privind Web-ul semantic, respectiv The Web of Trust, care propune principii similare, din perspectiva relaţiilor dintre resurse, indiferent de natura acestora (e.g., documente, persoane, organizaţii, concepte etc).

3.2 Propunere Revenind la tema principală a acestui capitol, şi anume „reţelele sociale

digitale ubicue”, ne vom axa pe definirea conceptului ubicuităţii, prin specificarea proprietăţilor unei aplicaţii de acest tip.

În contextul mai larg al Web-ului semantic, ubicuitatea semnifică interoperabilitatea absolută a serviciilor şi aplicaţiilor. Acest tip de interoperabilitate asigură o interacţiune uniformă între dispozitive eterogene, prin utilizarea de standarde deschise care permit auto-descrierea serviciilor şi descoperirea acestora, precum şi capacitatea de utilizare în comun a datelor disponibile, cu relevanţă pentru contextul respectiv.

Pentru atingerea acestui obiectiv, o importanţă majoră o are fenomenul de dezagregare a conceptului de calculator personal (PC). „Aplicaţiile au depăşit deja stadiul de obiect care există într-o cutie[...]” (John Shewchuck, Arhitect soluţii, Microsoft Corp.). Asistăm la tranziţia dintre era modelului „node=unit”, la cea a modelului „collection=system”, principalul punct de concentrare fiind protocolul, nu implementarea. Astfel computer-ul (cel care realizează operaţii) va fi integrat în mediul în care ne desfăşurăm activităţile, organizat într-o arhitectură orientată agent, care asigură prin cooperarea între agenţi, funcţionalităţi care depăşesc limitele unui sistem compact, singular.

În contextul „reţelelor sociale digitale”, ubicuitatea reprezintă posibilitatea contactului permanent cu reţeaua socială proprie şi, de asemenea, asigurarea permanentă a metodelor de îmbogăţire a acestei reţele

42 42

Page 43: Retele Sociale Digitale Ubicue

Reţele Sociale Digitale Ubicue

sociale pe baza profilului utilizatorului (e.g., interesele personale etc), fără a prejudicia siguranţa şi intimitatea acestuia.

3.2.1 Beneficii Beneficiile directe ale utilizării unui sistem care oferă acces ubicuu la

reţeaua socială proprie, facilitând simultan interacţiunea cu alte reţele sociale, adresează problema comunicării eficiente cu alţi indivizi (e.g., familie, prieteni, parteneri de afaceri, persoane cu interese similare etc). Contactul permanent cu reţeaua socială proprie şi optimizarea comunicării cu membrii acesteia are ca scop final rezolvarea într-o manieră optimă a problemelor întâlnite.

Modelarea semantică a conceptelor specifice domeniului şi a datelor din sistem va asigura un grad de interoperabilitate care depăşeşte graniţele aplicaţiei sau sistemului, permiţand o interacţiune uniformă cu alte sisteme din această sferă sau din sfere adiacente. Pe drumul de la date text şi baze de date relaţionale, la ontologii, taxonomii şi raţionamente automatizate (eng. automated reasoning), putem întrevedea mai multe potenţiale abordări ale problemei reţelelor sociale digitale, în contextul Web-ului semantic.

Implementarea folosind XML-XMLSchema permite o modelare schematizată a datelor, interoperabilitatea fiind asigurată la nivel sintactic (fără semantici formale). Un exemplu de specificare a datelor vehiculate de sistemul destinat reţelelor sociale folosind XML-XMLSchema ar putea fi următorul:

<?xml version="1.0" encoding="utf-8" ?> <mnu:users xmlns="http://tempuri.org/MobiNET.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="MNUsers MNUsers.xsd" xmlns:mnu="MNUsers"> <!-- MobiNET Users --> <mnu:user id="1"> <!-- User Authentication Info --> <mnu:username email="[email protected]" webpage="http://students.infoiasi.ro/~sammy/">sammy </mnu:username> <!-- User Personal Info --> <mnu:realname name="Serea" surname="Mihai Alexandru" /> <mnu:address city="Focsani" state="Vrancea" country="Romania"> <mnu:street number="61">Bd. Unirii</mnu:street> <mnu:building apartment="41">B2</mnu:building> <mnu:code>620077</mnu:code> </mnu:address> <!-- User Interests --> <mnu:interests> <mnu:keyword relevance="10">Computer Science</mnu:keyword> <!-- ... --> </mnu:interests> <!-- User Current Location --> <mnu:location x="0" y="0" z="0"> <mnu:name>Faculty of Computer Science</mnu:name> <mnu:type specific="Computer Science">Academia</mnu:type>

43 43

Page 44: Retele Sociale Digitale Ubicue

Reţele Sociale Digitale Ubicue

<mnu:description>The only pure applied computer science...</mnu:description> <mnu:area>1</mnu:area> </mnu:location> <!-- User Aquointances - Known Users --> <mnu:aquointances> <mnu:aquointance id="2" /> <!-- ... --> </mnu:aquointances> </mnu:user> <!-- ... --> </mnu:users> Schema XML care specifică tipul <mnu:user> va permite manipularea informaţiilor de către alte entităţi logice implementate ca atare: <xs:element maxOccurs="unbounded" name="user"> <xs:complexType> <xs:sequence> <xs:element name="username" minOccurs="1" maxOccurs="1" nillable="false"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="email" type="xs:string" use="required" /> <xs:attribute name="webpage" type="xs:string" use="optional" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="realname" minOccurs="1" maxOccurs="1"> <xs:complexType> <xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="surname" type="xs:string" use="required" /> </xs:complexType> </xs:element> <!-— Aditional specifications ommited --> </xs:sequence> <xs:attribute name="id" type="xs:unsignedInt" use="required" /> </xs:complexType> </xs:element>

Deşi această abordare schematică asigură funcţionarea soluţiei şi permite interoperabilitate la nivel sintactic (dependent de implementare), există deficienţe din perspectiva exploatării automate a informaţiilor, de către entităţi logice independente (e.g., agenţi).

Pentru a facilita interoperabilitatea la acest nivel (al raţionamentului automat independent), se pot folosi mixturi de vocabulare predeterminate, în scopul introducerii unui grad de reprezentare semantică. Un exemplu ar putea fi o specificare utilizând FOAF (Friend Of A Friend), o aplicaţie a RDF, destinată exprimării informaţiilor despre persoane şi despre relaţiile dintre acestea. O descriere utilizând vocabularul FOAF care să exprime informaţii despre persoanele din reţeaua socială digitală, inclusiv informaţii legate de relaţiile dintre acestea, ar putea fi următoarea.

44 44

Page 45: Retele Sociale Digitale Ubicue

Reţele Sociale Digitale Ubicue

<foaf:Person rdf:ID="MihaiAlexandruSerea"> <mn:username>sammy</mn:username><!-— Not FOAF, mixt vocabulary --> <foaf:name>Mihai Alexandru Serea</foaf:name> <foaf:mbox rdf:resource="mailto:[email protected]" /> <foaf:homepage rdf:resource="http://students.info.uaic.ro/~sammy/" /> <foaf:knows rdf:resource="#CorneliuSabinBuraga" /> </foaf:Person> <foaf:Person rdf:ID="CorneliuSabinBuraga"> <mn:username>busaco</mn:username><!-— Not FOAF, mixt vocabulary --> <foaf:title>Dr.</foaf:title> <foaf:name>Corneliu Sabin Buraga</foaf:name> <foaf:mbox rdf:resource="mailto:[email protected]" /> <foaf:homepage rdf:resource="http://www.info.uaic.ro/~busaco/" /> <foaf:knows rdf:resource="#MihaiAlexandruSerea" /> </foaf:Person>

Astfel, prin agregarea informaţiilor descrise folosind FOAF cu setul de informaţii adiţionale, necesare funcţionării soluţiei, descrise folosind XMLSchema, se asigură un plus de interpretabilitate automatizată a datelor vehiculate. Astfel, un agent care „scanează” colecţia de date a acestui sistem, poate interpreta resursa MihaiAlexandruSerea, ca fiind o persoană cu numele Mihai Alexandru Serea, care poate fi contactată la [email protected] etc, şi care „cunoaşte” persoana definită de resursa CorneliuSabinBuraga etc. Deşi acest tip de modelare a informaţiilor asigură un plus de expresivitate faţă de modelul schematic simplu, se constată incapacitatea de a exprima într-o manieră semantică, noţiuni rafinate (e.g., natura relaţiei dintre cele două persoane etc). Există posibilitatea definirii unor vocabulare specializate, exemple fiind DCMI (Dublin Core Metadata Initiative), PRISM, XPackage, RSS 1.0 (RDF Site Summary), CIM/XML etc, însă procesul de standardizare complicat, asociat cu multitudinea domeniilor şi subiectelor care necesită vocabulare proprii, transformă această abordare într-o soluţie ineficientă.

O abordare alternativă, care are potenţialul necesar de expresivitate, este reprezentată de utilizarea OWL, limbaj de specificare de noţiuni şi informaţii folosind taxonomii şi ontologii. Acest limbaj este destinat, în special, aplicaţiilor care implementează funcţionalităţi de procesare a „conţinutului” resurselor (procesare semantică). Astfel, OWL facilitează reprezentarea explicită a „sensului” unor „termeni” şi a relaţiilor existente între respectivii termeni, furnizând un cadru de exprimare superior RDF şi RDF Schema, prin introducerea de noi elemente de vocabular specifice unor proprietăţi caracteristice (e.g., disjuncţie, cardinalitate, simetrie etc).

Un exemplu de specificare folosind OWL a claselor şi proprietăţilor manipulate de sistemul destinat reţelelor sociale digitale, poate fi următorul: Clasa Person <owl:Class rdf:ID="Person"> <rdfs:label xml:lang="ro">Persoana</rdfs:label> <owl:DatatypeProperty rdf:ID="hasID"> <rdfs:label xml:lang="ro">ID</rdfs:label> <rdfs:range rdf:resource="xsd:nonNegativeInteger" /> <owl:Restriction> <owl:minCardinality rdf:datatype="xsd:nonNegativeInteger">1</owl:minCardinality> <owl:maxCardinality

45 45

Page 46: Retele Sociale Digitale Ubicue

Reţele Sociale Digitale Ubicue

rdf:datatype="xsd:nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </owl:DatatypeProperty> <owl:DatatypeProperty rdf:ID="hasFirstName"> <rdfs:label xml:lang="ro">Prenume</rdfs:label> <rdfs:range rdf:resource="xsd:string" /> <owl:Restriction> <owl:minCardinality rdf:datatype="xsd:nonNegativeInteger">1</owl:minCardinality> <owl:maxCardinality rdf:datatype="xsd:nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </owl:DatatypeProperty> <!-— Additional specs ommited for brevity --> <owl:DatatypeProperty rdf:ID="hasStreet"> <rdfs:label xml:lang="ro">Strada</rdfs:label> <rdfs:range rdf:resource="xsd:string" /> </owl:DatatypeProperty> <!-— Additional specs ommited for brevity --> <owl:ObjectProperty rdf:ID="hasUser"> <rdfs:label xml:lang="ro">Utilizator</rdfs:label> <rdfs:range rdf:resource="#User" /> <owl:Restriction> <owl:minCardinality rdf:datatype="xsd:nonNegativeInteger">1</owl:minCardinality> <owl:maxCardinality rdf:datatype="xsd:nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="belongsTo"> <rdfs:label xml:lang="ro">Apartine</rdfs:label> <rdfs:range rdf:resource="#Group" /> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="inRelationWith"> <rdfs:label xml:lang="ro">In Relatie Cu</rdfs:label> <rdfs:range rdf:resource="#Relation" /> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="iterestedIn"> <rdfs:label xml:lang="ro">Interesata de</rdfs:label> <rdfs:range rdf:resource="#Interest" /> </owl:ObjectProperty> </owl:Class> Această clasă descrie noţiunea de „persoană” pornind de la proprietăţile „nume”, „prenume”, „adresă” etc (unele dintre acestea au fost omise din descrierea de mai sus), şi intoduce conceptul de apartenenţă la un „grup”, de „relaţie” şi de „interes”. În continuare vom descrie clasa care defineşte termenul de „grup”. Clasa Group <owl:Class rdf:ID="Group"> <rdfs:label xml:lang="ro">Grup</rdfs:label> <owl:DatatypeProperty rdf:ID="hasGroupName"> <rdfs:label xml:lang="ro">Denumirea</rdfs:label> <rdfs:range rdf:resource="xsd:string" /> <owl:Restriction> <owl:minCardinality rdf:datatype="xsd:nonNegativeInteger">1</owl:minCardinality> <owl:maxCardinality

46 46

Page 47: Retele Sociale Digitale Ubicue

Reţele Sociale Digitale Ubicue

rdf:datatype="xsd:nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </owl:DatatypeProperty> <owl:ObjectProperty rdf:ID="hasMember"> <rdfs:label xml:lang="ro">Membru</rdfs:label> <rdfs:range rdf:resource="#Person" /> <owl:Restriction> <owl:minCardinality rdf:datatype="xsd:nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </owl:ObjectProperty> </owl:Class> Clasa „grup” are ca proprietăţi definitorii, un nume (proprietate de tip) şi o proprietate obiectuală de asociere cu indivizi aparţinând tipului „persoană”. Asupra proprietăţii „nume” s-a impus o clauză de unicitate, prin specificarea atât a cardinalităţii minime cât şi a cardinalităţii maxime, ambele avand valoarea 1. Asupra proprietăţii descrind relaţia de asociere cu instanţe ale clasei „persoană” nu s-au impus restricţii de cardinalitate, pentru a exprima posibilitatea existenţei unui grup având zero sau mai mulţi membri. Clasa Relation <owl:Class rdf:ID="Relation"> <rdfs:label xml:lang="ro">Relatie</rdfs:label> <owl:DatatypeProperty rdf:ID="hasRelationType"> <rdfs:label xml:lang="ro">Tip Relatie</rdfs:label> <rdfs:range> <owl:Class> <rdfs:label xml:lang="ro">Tip Relatie</rdfs:label> <owl:oneOf rdf:parseType="Collection"> <!-— Not defined internally. Imported from example.org --> <owl:Thing rdf:about="&example;Academia" /> <owl:Thing rdf:about="&example;Family" /> <owl:Thing rdf:about="&example;Friends" /> <owl:Thing rdf:about="&example;Colleagues" /> <owl:Thing rdf:about="&example;Business" /> <owl:Thing rdf:about="&example;Aquointances" /> </owl:oneOf> </owl:Class> </rdfs:range> <owl:Restriction> <owl:minCardinality rdf:datatype="xsd:nonNegativeInteger">1</owl:minCardinality> <owl:maxCardinality rdf:datatype="xsd:nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </owl:DatatypeProperty> <owl:ObjectProperty rdf:ID="hasSubject"> <rdfs:label xml:lang="ro">Subiect</rdfs:label> <rdfs:range rdf:resource="#Person" /> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="hasImportance"> <rdfs:label xml:lang="ro">Importanta</rdfs:label> <rdfs:range> <owl:Class> <owl:oneOf rdf:parseType="Collection"> <!-— Not defined internally. Imported from example.org --> <owl:Thing rdf:resource="&example;Important" /> <owl:Thing rdf:resource="&example;Normal" />

47 47

Page 48: Retele Sociale Digitale Ubicue

Reţele Sociale Digitale Ubicue

<owl:Thing rdf:resource="&example;Casual" /> <owl:Thing rdf:resource="&example;Unimportant" /> </owl:oneOf> </owl:Class> </rdfs:range> <owl:Restriction> <owl:minCardinality rdf:datatype="xsd:nonNegativeInteger">1</owl:minCardinality> <owl:maxCardinality rdf:datatype="xsd:nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </owl:ObjectProperty> </owl:Class> Clasa „relaţie” conţine informaţii cu privire la tipul relaţiei, prin enumerarea unor tipuri definite extern ontologiei curente (pentru domenii, concepte sau probleme complexe, întotdeauna vor exista noţiuni definite extern sau acceptate fără a fi definite). De asemenea, clasa „relaţie” conţine informaţii privind „subiectul” relaţiei (persoana vizată), şi privind importanţa sau relevanţa relaţiei pentru „obiect” (persoana care „declară” relaţia). Clasa Interest <owl:Class rdf:ID="Interest"> <rdfs:label xml:lang="ro">Interese</rdfs:label> <owl:DatatypeProperty rdf:ID="hasKeyword"> <rdfs:label xml:lang="ro">Cuvant Cheie</rdfs:label> <rdfs:range rdf:datatype="xsd:string" /> <owl:Restriction> <owl:minCardinality rdf:datatype="xsd:nonNegativeInteger">1</owl:minCardinality> <owl:maxCardinality rdf:datatype="xsd:nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </owl:DatatypeProperty> <owl:ObjectProperty rdf:ID="hasRelevance"> <rdfs:label xml:lang="ro">Relevanta</rdfs:label> <rdfs:range> <owl:Class> <owl:oneOf rdf:parseType="Collection"> <!-— Not defined internally. Imported from example.org --> <owl:Thing rdf:resource="&example;Expertise" /> <owl:Thing rdf:resource="&example;Profession" /> <owl:Thing rdf:resource="&example;Passion" /> <owl:Thing rdf:resource="&example;Hobby" /> <owl:Thing rdf:resource="&example;Trivia" /> </owl:oneOf> </owl:Class> </rdfs:range> <owl:Restriction> <owl:minCardinality rdf:datatype="xsd:nonNegativeInteger">1</owl:minCardinality> <owl:maxCardinality rdf:datatype="xsd:nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </owl:ObjectProperty> </owl:Class>

Clasa responsabilă pentru definirea termenului „interes” conţine un „cuvânt cheie” care identifică domeniul sau subiectul de interes, şi o etalonare

48 48

Page 49: Retele Sociale Digitale Ubicue

Reţele Sociale Digitale Ubicue

a gradului de relevanţă sau a naturii acestui interes. Astfel, cuplul („computer science”, „expertise”) poate constitui „interesul” cu id-ul ComputerScienceExpertise, sau, mai exact, „resursa” cu id-ul ComputerScienceExpertise, constituind reprezentarea „interesului în informatică, bazat pe expertiză”. Trebuie aici menţionat faptul că, identificatorii resurselor din exemplele prezentate sunt selectaţi pentru a oferi informaţii suplimentare cititorului uman, însă simpla denumire a noţiunilor manipulate, nu facilitează procesarea semantică. Din punct de vedere al procesării semantice automate (al raţionamentului automat), alegerea identificatorilor resurselor nu are relevanţă, clasa Person putând fi specificată folosind id-ul Class1 fără a altera particularităţile indivizilor (instanţelor).

În continuare, vom demonstra metodele de „instanţiere” a acestor clase, folosind OWL. Exemplul va include specificarea unui interes personal partajat, a unui grup, a unor persoane şi a unor relaţii. <!-— MNInterests.owl --> <Interest rdf:ID="SemanticWeb-Expertise"> <hasKeyword rdf:datatype="xsd:string">Semantic Web</hasKeyword> <hasRelevance rdf:resource="&example;Expertise" /> </Interest>

<!-— MNPersons.owl --> <Person rdf:ID="MihaiAlexandruSerea"> <hasID rdf:datatype="xsd:nonNegativeInteger">01</hasID> <!-- Personal Info --> <hasFirstName rdf:datatype="xsd:string">Mihai Alexandru</hasFirstName> <hasLastName rdf:datatype="xsd:string">Serea</hasLastName> <hasStreet rdf:datatype="xsd:string">Bd. Unirii</hasStreet> <hasCity rdf:datatype="xsd:string">Focsani</hasCity> <!-- MobiNET --> <hasUser rdf:resource="&mnusers;smihaialex" /> <!-- Groups --> <belongsTo rdf:resource="&mngroups;ClassOf2005" /> <belongsTo rdf:resource="&mngroups;SereaFamily" /> <!-- Relations --> <inRelationWith rdf:resource="&mnrelations;Student-TeacherBusaco" /> <!-- Interests --> <interestedIn rdf:resource="&mninterests;HumanComputerInteraction- Expertise" /> <interestedIn rdf:resource="&mninterests;SemanticWeb-Expertise" /> <interestedIn rdf:resource="&mninterests;TableTennis-Hobby" /> <interestedIn rdf:resource="&mninterests;History-Trivia" /> </Person> <Person rdf:ID="CorneliuSabinBuraga"> <hasID rdf:datatype="xsd:nonNegativeInteger">02</hasID> <!-- Personal Info --> <hasFirstName rdf:datatype="xsd:string">Corneliu Sabin</hasFirstName> <hasLastName rdf:datatype="xsd:string">Buraga</hasLastName> <hasCity rdf:datatype="xsd:string">Iasi</hasCity> <!-- MobiNET --> <hasUser rdf:resource="&mnusers;busaco" /> <!-- Groups --> <belongsTo rdf:resource="&mngroups;FIIProfessors" /> <belongsTo rdf:resource="&mngroups;SemanticWebResearchers" />

49 49

Page 50: Retele Sociale Digitale Ubicue

Reţele Sociale Digitale Ubicue

<!-- Relations --> <inRelationWith rdf:resource="&mnrelations;Teacher-StudentSerea" /> <!-- Interests --> <interestedIn rdf:resource="&mninterests;SemanticWeb-Expertise" /> <interestedIn rdf:resource="&mninterests;Poetry-Passion" /> <interestedIn rdf:resource="&mninterests;Painting-Hobby" /> </Person> <!-— MNGroups.owl --> <Group rdf:ID="ClassOf2005"> <hasGroupName rdf:datatype="xsd:string">Class of 2005</hasGroupName> <hasMember rdf:resource="&mnpersons;MihaiAlexandruSerea" /> </Group> <Group rdf:ID="SemanticWebReaserchers"> <hasGroupName rdf:datatype="xsd:string">Semantic Web Reaserchers</hasGroupName> <hasMember rdf:resource="&mnpersons;CorneliuSabinBuraga" /> </Group> <!-— MNRelations.owl --> <Relation rdf:ID="Student-TeacherBusaco"> <hasRelationType rdf:resource="&example;Academia" /> <hasSubject rdf:resource="&mnpersons;CorneliuSabinBuraga" /> <hasImportance rdf:resource="&example;Important" /> </Relation> <Relation rdf:ID="Teacher-StudentSerea"> <hasRelationType rdf:resource="&example;Academia" /> <hasSubject rdf:resource="&mnpersons;MihaiAlexandruSerea" /> <hasImportance rdf:resource="&example;Normal" /> </Relation> După cum exemplele de mai sus o arată, modelarea datelor utilizând OWL reprezintă un instrument puternic de procesarea automată a informaţiilor, cu un fundament „raţional” (de procesare) determinat de conţinut, nu doar de prezentare. Fără „educaţie” specială, un sistem de calcul poate procesa informaţiile specificate mai sus, deoarece, „cunoaşte” natura acestor informaţii. Verbalizând, o „persoană” reprezintă o entitate cu anumite caracteristici, printre care apartenenţa la unul sau mai multe grupuri, un „grup” este o „colecţie” de persoane caracterizată şi printr-o denumire specifică, iar o „relaţie” este o asociere între două persoane, care prezintă un anumit „tip” şi un grad de „importanţă”. Exista un set de noţiuni care se expun fără a fi definite, datorită incapacităţii de definire completă a unui domeniu sau subiect, sau datorită lipsei necesităţii pentru definiţii explicite privind anumite noţiuni. În acest caz, proprietăţile care determină gradul de „importanţa” al relaţiei şi tipul acesteia sunt exprimate folosind termeni importaţi dintr-o ontologie fictivă. OWL suportă acest mecanism de import de ontologii, în plus, furnizând capacităţi de subclasare (derivare de clase) şi definire de subproprietăţi, în scopul reutilizării, adaptării sau îmbunătăţirii acestora. Un alt aspect foarte important este legat de frecventa confuzie între nivelele de reprezentare (subclasare versus instanţiere). Deşi, în general, clasele reprezintă o colecţie denumită de proprietăţi comune unui set de indivizi, iar indivizii (instanţele) sunt obiecte care manifestă aceste proprietăţi, flexibilitatea OWL permite ca anumite clase, să poată fi simultan considerate instanţe ale altor clase (OWL Full). Apare astfel o confuzie între

50 50

Page 51: Retele Sociale Digitale Ubicue

Reţele Sociale Digitale Ubicue

relaţiile de tip instanţiere şi subclasare. Cu toate acestea, în general, este respectată logica naturală a fenomenelor. Mai exact, o clasă corespunde unui „tip”, unei „varietăţi” şi este descrisă printr-un nume şi un set de proprietăţi specifice, o subclasă este o restricţie aplicată asupra tipului iniţial prin introducerea de proprietăţi adiţionale sau prin modificarea unor proprietăţi, iar o instanţă, un individ, este o entitate, un obiect, care manifestă proprietăţile respectivului tip sau subtip.

O altă caracteristică a claselor şi proprietăţilor specificate folosind OWL, este arhitectura distribuită, facilitată de posibilitatea de import de ontologii, dar şi de posibilitatea de descriere a acestora, folosind mai multe fişiere .xml, .rdf, sau .owl. Astfel, resursele necesare pot fi individual identificate în spaţiul Web şi utilizate preferenţial. De exemplu, o aplicaţie externă, care are ca scop crearea automată a unui catalog de persoane structurat în funcţie de relaţiile acestora cu alte persoane, poate „importa” informaţiile descrise în MobiNET.owl, MNPersons.owl, respectiv MNRelations.owl, ignorând restul informaţiilor (e.g., MNInterests.owl, MNUsers.owl, MNLocations.owl etc).

3.2.2 Problematică Principalele coordonate problematice ale acestui gen de sistem se referă la nevoia de siguranţă şi intimitate a utilizatorului. Astfel, prin arhitectura logică a agentului de conectare (e.g., aplicaţia client etc), acesta trebuie să respecte fidel intenţia utilizatorului cu privire la informaţiile cuprinse în profilul public accesibil din sistem sau din afara acestuia, fără a crea necesitatea unei configurări complexe, în detrimentul utilizabilităţii şi al ergonomiei. În plus, abilitatea Web-ului semantic de a conecta informaţii din multiple surse, combinată cu puterea inferenţială a OWL, deşi reprezintă o capabilitate care poate fi exploatată folositor de anumite aplicaţii, poate, de asemenea, duce la compromiterea anumitor aspecte legate de securitate şi intimitate.

Capitolul următor, va descrie o soluţie destinată reţelelor sociale digitale ubicue, mai exact, o suită de aplicaţii Web şi Internet-enabled, care interacţionează cu un serviciu Web pentru a asigura funcţionalitatea necesară exemplificării scenariilor de utilizare ale unui astfel de sistem.

51 51

Page 52: Retele Sociale Digitale Ubicue

52

4. Sistemul MobiNET O Nouă Abordare

52

Page 53: Retele Sociale Digitale Ubicue

Sistemul MobiNET – O Nouă Abordare

4.1 Rezumat Acest capitol este destinat descrierii soluţiei MobiNET, sistem software

creat pentru a ilustra capacităţile .NET Framework 2.0 şi pentru a exemplifica într-o manieră concretă, funcţionarea unei reţele sociale digitale ubicue. MobiNET reprezintă o suită de aplicaţii care interacţionează prin intermediul unui serviciu Web dedicat. Suita de aplicaţii include o aplicaţie Web, o aplicaţie client destinată calculatoarelor personale de tip Desktop (Windows®) şi o aplicaţie destinată dispozitivelor mobil din gama Microsoft® Pocket PC® (Windows® Mobile). În timpul funcţionării, aplicaţiile îşi îndeplinesc sarcinile prin interacţiunea cu serviciul Web. Această interacţiune se realizează prin intermediul conexiunii Internet a dispozitivului client, indiferent de natura acesteia (e.g., 802.3 Ethernet, 802.11 Wireless, GSM-GPRS etc). Serviciul Web este responsabil pentru logica soluţiei, asigurând funcţii diverse, precum autentificarea în sistem sau furnizarea datelor necesare utilizatorilor.

4.2 Utilizatori Soluţia propusă se adresează unei game largi de utilizatori, fără a exista

restricţii implicite sau explicite, privind vârsta sau nivelul de „educaţie” IT. Trebuie de asemenea menţionat faptul că, MobiNET îşi găseşte aplicabilitatea intr-o multitudine de scopuri, în diferite ipostaze ale vieţii de zi cu zi. Dintre beneficiile aduse utilizatorilor, amintim posibilitatea de interacţiune permanentă cu reţeaua personală de contacte şi posibilităţile multiple de explorare a altor reţele sociale, în vederea exploatării eficiente a relaţiilor existente şi a creării de noi relaţii între utilizatori.

4.3 Arhitectura Soluţiei Din punct de vedere arhitectural, MobiNET este compus din patru

„module” distincte, care interacţionează pentru a asigura funcţionarea eficientă a sistemului.

Coloana vertebrală a MobiNET este reprezentată de serviciul Web MobiNETService, care oferă logica sistemului, iar interfaţa cu utilizatorii este asigurată de o suită de aplicaţii client. După cum menţionam la începutul acestui capitol, suita de aplicaţii include o aplicaţie Web, o aplicaţie client destinată calculatoarelor personale desktop (Windows®) şi o aplicaţie destinată unui dispozitiv mobil de tip handheld (Windows® Mobile).

Figura 8 descrie sub formă de diagramă interacţiunea dintre aplicaţii şi serviciul Web, prin specificarea protocolului şi a conexiunii fizice utilizate, furnizând simultan câteva indicii asupra interfeţelor utilizator implicate.

53 53

Page 54: Retele Sociale Digitale Ubicue

Sistemul MobiNET – O Nouă Abordare

Figura 8. Interacţiunea dintre aplicaţiile MobiNET şi serviciul Web.

Prin implementarea acestui gen de arhitectură, se urmăreşte o

ierarhizare sau stratificare a sistemului, bazată pe rolul şi funcţionalitatea diverselor componente.

În continuare vom continua cu descrierea detaliată a acestor componente, precum şi a modului în care acestea interacţionează pentru realizarea scopului propus.

4.3.1 Servicii Web – MobiNETService Serviciul Web, MobiNETService conţine un set de funcţii Web (eng. Web

methods) care pot fi aplelate de aplicaţiile client folosind o clasă proxy generată conform descrierii WSDL a acestuia.

Un set de funcţii este destinat autentificării utilizatorilor în sistem şi proceselor adiacente autentificării (e.g., modificarea datelor de autentificare ale unui utilizator etc). Fiecare utilizator înregistrat în sistem beneficiază de un nume de utilizator (eng. username) şi de o parolă de acces (eng. password). Atât aplicaţia Web, cât şi aplicaţiile client necesită autentificare pentru a putea oferi acces utilizatorului la informaţiile personale şi la funcţiile legate de propria reţea de contacte. Acestea includ funcţii precum AuthenticateUser, GetAquointances, UpdateMyInfo etc.

Pentru exemplificarea mecanismului de generare al clasei proxy vom descrie funcţia AuthenticateUser într-o versiune funcţională, dar simplificată.

54 54

Page 55: Retele Sociale Digitale Ubicue

Sistemul MobiNET – O Nouă Abordare

[WebMethod] public bool AuthenticateUser(string username, string password) { string _querry = "SELECT COUNT(id) FROM [UserAuth] WHERE username = '" + username + "' AND password = '" + password + "'"; SqlCommand _sqlCommand = new SqlCommand(_querry, this.sqlConnection); _sqlCommand.Connection.Open(); int _count = (int)_sqlCommand.ExecuteScalar(); _sqlCommand.Connection.Close(); if (_count == 1) return true; else return false; }

Acesta este codul sursă al metodei, în fişierul sursă al serviciului Web. Folosind mediul de dezvoltare Visual Studio pentru a genera clasa proxy corespondentă acestui serviciu, obţinem acces la metoda AuthenticateUser. Descrierea folosind WSDL a metodei este: <s:element name="AuthenticateUser"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="username" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="AuthenticateUserResponse"> <s:complexType> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="AuthenticateUserResult" type="s:boolean" /> </s:sequence> </s:complexType> </s:element> Odată cu adăugare referinţei Web, se obţine acces la clasa MobiNETService.Service care poate fi instanţiată, oferind astfel posibilitatea apelului metodelor serviciului Web: MobiNETService.Service _mobiNETService = new MobiNETService.Service(); if (_mobiNETService.AuthenticateUser(this.usernameTextBox.Text, this.passwordTextBox.Text)) FormsAuthentication.RedirectFromLoginPage(this.usernameTextBox.Text, true);

4.3.2 Aplicaţii Aplicaţiile din sistemul MobiNET oferă utilizatorului interfaţa cu sistemul

prin apelarea funcţiilor serviciului Web şi prin expunerea informaţiilor furnizate de acesta. La nivel general, funcţionalităţile comune tuturor aplicaţiilor sunt afişarea informaţiilor privitoare la utilizatorii din propria reţea socială şi căutarea de utilizatori prin stabilirea de filtre asupra anumitor detalii

55 55

Page 56: Retele Sociale Digitale Ubicue

Sistemul MobiNET – O Nouă Abordare

din profilul utilizator (e.g., adresă, domenii de interes, locaţie etc). Totuşi, fiecare aplicaţie are un rol bine definit în sistem şi particularităţi specifice.

4.3.2.1 Aplicaţie Web - MobiNET Aplicaţia Web oferă utilizatorilor posibilitatea exploatării sistemului fără

a necesita echipamente hardware speciale (e.g., Pocket PC) şi fără a se impune limitări la nivel de platformă software (e.g., sistem de operare etc).

Astfel, principala destinaţie a acestei aplicaţii este aceea de a facilita utilizarea sistemului MobiNET, folosind orice sistem de calcul disponibil (eventual partajat), care nu permite instalarea aplicaţiei client, prin lipsa drepturilor de administrare necesare sau prin natura conjuncturii spaţio-temporale. De asemenea, aplicaţia Web constituie principalul punct de contact iniţial al unui potenţial utilizator cu sistemul MobiNET. Ca atare, situl Web care găzduieşte aplicaţia oferă informaţii diverse privitoare la sistem, posibilitatea de înregistrare în sistem, precum şi posibilitatea de descărcare (eng. download) a aplicaţiilor client. În plus, aplicaţia Web permite utilizatorilor, actualizarea profilelor proprii, conţinând informaţiile personale introduse în sistem.

În cele ce urmează, vom insista asupra modulului care gestionează profilul utilizatorului la înregistrarea acestuia în sistem, precum şi în cazul solicitării unei actualizări. Acest modul va oferi utilizatorului posibilitatea de a introduce anumite date de identificare şi autentificare (e.g., nume utilizator, parolă acces etc). În plus, utilizatorul va avea posibilitatea completării unui formular în care se vor specifica date referitoare la domeniile de interes personal, pasiunile, preocupările curente şi eventual, planurile de viitor. Acestea vor constitui metadate asociate „identităţii” virtuale a utilizatorului in sistemul MobiNET. O atenţie deosebită va fi îndreptată către respectarea şi protejarea intimităţii utilizatorilor. Aplicaţia nu va încerca să obţină informaţii cu caracter personal, pe care utilizatorul nu doreşte să le dezvăluie şi nu va publica datele introduse, decât în conformitate cu intenţia utilizatorului, exprimată explicit.

În Figura este prezentată o captură ecran a formularului de înregistrare. Dintre informaţiile care pot fi introduse, doar numele, prenumele, numele de utilizator, parola şi adresa de e-mail reprezintă câmpuri obligatorii, nivelul de completare a profilului fiind integral dependent de intenţia şi preferinţele utilizatorului.

Pentru a realiza operaţiunile solicitate de utilizator, aplicaţia Web utilizează atât metodele serviciului Web, cât şi o conexiune proprie la baza de date a sistemului MobiNET. Pe lângă funcţionalitatea suplimentară obţinută, adoptarea acesui mecanism de exploatare a datelor are rolul de a simula o interacţiune complexă între două sisteme diferite care operează cu acelaşi set de noţiuni.

Un factor important de menţionat este acela că, aplicaţia Web nu permite utilizatorului publicarea de informaţii privitoare la locaţia curentă, datorită lipsei modulului GPS auxiliar. Cu toate acestea, sunt accesibile informaţiile şi funcţiile legate de propria reţea socială. Acestea includ, dar nu sunt limitate la, afişarea utilizatorilor activi şi a informaţiilor disponibile despre aceştia, căutarea unor utilizatori aparţinând altor reţele sociale pe baza unor filtre aplicate asupra datelor din profil, adăugarea de noi contacte prin invitaţii şi gestionarea propriului profil utilizator.

56 56

Page 57: Retele Sociale Digitale Ubicue

Sistemul MobiNET – O Nouă Abordare

Figura 9. Captură ecran a formularului Web utilizat pentru înregistrarea utilizatorilor.

4.3.2.2 Aplicaţie Desktop - MobiNETWinApp MobiNETWinApp este o aplicaţie Windows® care se execută peste .NET

Framework 2.0, reprezentând cea mai complexă aplicaţie client din suita MobiNET. Din perspectiva funcţionalităţilor oferite, această aplicaţie este similară cu aplicaţia Web, însă flexibilitatea interfeţei utilizator asigură un plus de ergonomie şi sporeşte gradul de utilizabilitate. Un alt efect direct al implementării acestui tip de aplicaţie este performanţa ridicată obţinută prin eliminarea vehiculării de informaţii privitoare la interfaţa grafică, necesară în cazul aplicaţiilor Web (e.g., text, imagini etc).

Totuşi, există câteva diferenţe între aplicaţia Web şi aplicaţia desktop. Principala deosebire este aceea că, aplicaţia desktop nu permite actualizarea directă a profilului utilizator, pentru aceasta folosindu-se o legătură hypertext (eng. hyperlink) către aplicaţia Web. O altă deosebire este dată de natura de cvasi-daemon a aplicaţiei desktop, aceasta având capacitatea de a rămâne

57 57

Page 58: Retele Sociale Digitale Ubicue

Sistemul MobiNET – O Nouă Abordare

minimizată în zona de notificare a sistemului de operare Windows, putând fi reactivată instantaneu, la cerere, prin dublu-clic pe pictograma asociată.

Ca şi în cazul aplicaţiei Web, lipsa posibilităţii de ataşare a unui modul GPS la calculatorul personal gazdă, nu permite sistemului aflarea coordonatelor spaţiale ale utilizatorului aplicaţiei desktop. Cu toate acestea, a fost implementat un mecanism prin care utilizatorul poate selecta manual poziţia geografică prezentă. Cum în majoritatea cazurilor, aplicaţia client va fi instalată pe calculatorul personal al utilizatorului, iar poziţia geografică a acestuia nu se va modifica frecvent, selectarea manuală a poziţiei devine o soluţie fiabilă. Totuşi, în cazul în care aplicaţia client este instalată pe un calculator personal portabil (e.g., Laptop, Notebook, Tablet PC), dotat cu un modul GPS auxiliar, ataşat prin interfeţele USB sau PCMCIA, funcţiile de identificare şi publicare a poziţiei geografice devin disponibile.

Un model de interfaţă pentru aplicaţia desktop poate fi observat în Figura 10.

Figura 10. Candidat de interfaţă grafică a aplicaţiei destinată sistemelor desktop.

4.3.2.3 Aplicaţie Pocket PC - MobiNETPPCApp Dacă despre aplicaţia desktop am afirmat faptul că reprezintă cea mai

complexă aplicaţie client, atunci, în cele ce urmează, vom încerca să prezentăm, cea mai interesantă aplicaţie client, destinată device-urilor mobile de tip handheld sau palmtop, mai exact Microsoft® Pocket PC®.

MobiNETPPCApp oferă funcţionalitate similară cu cea a aplicaţiei MobiNETWinApp, bineînţeles, prin intermediul interfeţelor grafice specifice platfolmelor hardware, respectiv software, pe care rulează (e.g., Windows Mobile®, Windows CE® etc). Această aplicaţie constituie principalul punct de interes în dezvoltarea acestui sistem, datorită posibilităţilor de adoptare fără

58 58

Page 59: Retele Sociale Digitale Ubicue

Sistemul MobiNET – O Nouă Abordare

efort din partea utilizatorului, precum şi a mobilităţii şi flexibilităţii sporite. Scopul acestei aplicaţii este acela de a facilita accesul utilizatorului la propria reţea socială, într-un mod ergonomic şi eficient. Se creează astfel conceptul de reţea socială „permanent” conectată şi „imediat” accesibilă (reţea socială digitală ubicuă). Posibilitatea de conectare permanentă la Internet prin intermediul reţelelor WiFi sau prin intermediul unui modul GSM-GPRS (Pocket PC Phone Edition), asociată cu portabilitatea dată de dimensiunile reduse ale acestui tip de dispozitiv, facilitează contactul permanent cu aplicaţia MobiNET, şi implicit, cu reţeaua socială proprie şi cu reţelele sociale ale altor utilizatori. Acest dispozitiv permite, de asemenea, ataşarea unui modul GPS auxiliar (unele modele încorporează standard module GPS), care va furniza date despre locaţia utilizatorului aplicaţiei. Această informaţie va fi publicată în sistem, la cererea explicită a utilizatorului, permiţând astfel altor utilizatori executarea unor „interogări” care să includă criterii spaţiale (e.g., „câţi utilizatori pasionaţi de „informatică” se află în acest moment în corpul A al Universităţii „Alexandru Ioan Cuza” din Iaşi ?” etc).

4.4 Inovaţii În actuala eră tehnologică, în care „datele” sunt mai importante decât

„aplicaţiile” şi valoarea datelor creşte direct proporţional cu numărul de conexiuni pe care acestea le au cu alte date trebuie să exploatăm la maxim capacitatea sistemelor informatice de a „culege”, procesa şi „transmite” informaţii. Acesta este principiul care a stat la baza conceperii şi dezvoltării aplicaţiei care face obiectul prezentului capitol, în încercarea de a îmbunătăţi un domeniu aflat intr-o rapidă ascensiune – reţelele sociale digitale.

Cu ajutorul MobiNET, se doreşte apropierea reţelelor sociale de individ, în încercarea de a dizolva graniţele prezente în domeniul interacţiunii digitalizate dintre persoane.

Un alt aspect inovator îl constituie posibilitatea de interacţiune a utilizatorului, cu alţi utilizatori, pe baza unor căutări solicitate explicit, sau doar pe baza poziţiei geografice, sistemul facilitând astfel explorarea altor reţele sociale. Menţionăm aici faptul că nivelul de interacţiune depinde în intregime de utilizator, acesta specificând dacă doreşte să fie angajat într-o „conversaţie” şi de către cine, prin selectarea modului de funcţionare – activat/dezactivat, a profilului accesibil altor utilizatori şi, eventual, a unui mesaj de status corespunzător.

O altă inovaţie prezentă în această implementare, se referă la utilitatea aplicaţiei, care devine o unealtă puternică de explorare şi de „exploatare”, a relaţiilor cu membrii reţelei sociale şi cu persoanele aflate în proximitate, ierarhizată în funcţie de „grade de separaţie” sau domenii comune de interes.

Nu în ultimul rând, trebuie menţionat, caracterul inovativ al aplicaţiei, în ceea ce priveşte respectarea şi protejarea intimităţii utilizatorului (eng. user privacy) prin adoptarea unei politici care conferă acestuia control absolut asupra informaţiilor introduse în sistem şi asupra modalităţii în care aceste informaţii pot fi accesate de alţi utilizatori, pe parcursul utilizării.

59 59

Page 60: Retele Sociale Digitale Ubicue

5. Concluzii

60 60

Page 61: Retele Sociale Digitale Ubicue

Concluzii

Pe parcursul acestei lucrări au fost prezentate principalele direcţii urmate de evoluţia spaţiului World Wide Web către Web-ul semantic, în încercarea de a fundamenta principiile care stau la baza procesării automate atât la nivel de reprezentare a resurselor, cât şi la nivel de conţinut al acestora.

Un accent important a fost pus asupra inovaţiilor introduse de viitoarea versiune a celei mai moderne platforme de dezvoltare a aplicaţiilor software - .NET Framework. Beneficiind de o infrastructură modernă, platforma .NET oferă perspective nelimitate în ceea ce priveşte dezvoltarea următoarelor generaţii de aplicaţii interconectate, în vederea exploatării optime a tendinţei de dezagregare a noţiunii de sistem de calcul (e.g., mobile computing).

În paralel, modelarea semantică a datelor are rolul de a eficientiza interacţiunea aplicaţiilor, facilitând trecerea de la noţiunea de arhitectură distribuită, la cea de fuziune a sistemelor. Principalele beneficii aduse utilizatorilor vor fi legate de posibilitatea de accesare a datelor, ţinând cont şi de relaţiile dintre acestea.

În ceea ce priveşte aplicaţiile care abordează subiectul reţelelor sociale, lucrarea de faţă introduce noţiunea de reţea socială digitală ubicuă, permanent conectată şi imediat accesibilă, propunând o soluţie care combină date semantic-enabled, cu puterea de dezvoltare oferită de tehnologiile .NET.

Facilitarea exploatării eficiente a resurselor disponibile constituie principiul fundamental aflat la baza celor mai noi tendinţe în evoluţia tehnologiilor informaţionale. Măsura în care aceste tendinţe pot influienţa pozitiv aspecte ale vieţii cotidiene a utilizatorilor, depinde integral de capacitatea de implementare concretă a acestor direcţii de dezvoltare.

61 61

Page 62: Retele Sociale Digitale Ubicue

Direcţii Viitoare de Cercetare

În momentul concretizării unei idei, implementarea trebuie să permită îmbunătăţirea permanentă a elementelor componente, din punctul de vedere al utilizabilităţii şi al funcţionalităţii oferite, asigurând astfel evoluţia întregului sistem. În acest moment, MobiNET, se află încă în stadiu de dezvoltare, implementarea actuală având rolul de a exemplifica funcţionarea unei soluţii destinate interacţiunii individului cu reţeaua socială proprie şi cu alte reţele sociale digitale. Implementările viitoare se vor axa pe exploatarea modificărilor evolutive ale platformelor implicate, în principal, pe exploatarea noilor facilităţi ale Windows® Server System™, precum şi pe cele ale sistemelor de operare Windows® şi Windows Mobile®.

Evoluţia platformelor hardware va juca, de asemenea, un rol important în implementările viitoare, dezvoltarea sistemului având ca obiectiv exploatarea îmbunătăţirilor dispozitivelor mobile, în special, în ceea ce priveşte interacţiunea cu factorul uman şi performanţa aplicaţiilor.

La nivel funcţional, subiect pentru dezvoltări ulterioare sunt implementarea semantică, în scopul interoperabilităţii „instante” (eng. on-the-fly) cu alte sisteme şi a posibilităţii realizării de căutari „inteligente”. Astfel, folosind o arhitectură orientată agent, se permite realizarea rapidă şi exactă a potrivirilor de profile (eng. profile-matching). Totuşi, acest aspect trebuie abordat cu un grad sporit de atenţie, pentru a permite protejarea intimităţii utilizatorului. Pe termen scurt, preocupările privind continuarea dezvoltării MobiNET sunt legate de îmbunătăţirea interfeţelor utilizator, din punct de vedere al ergonomei şi includerea suportului pentru interfeţe multi-modale, în principal, control vocal şi scris „de mână” (eng. voice-control, handwriting), evoluţia interfeţelor în termeni de interacţiune cu utilizatorul având un efect pozitiv asupra eficienţei aplicaţiei.

62 62

Page 63: Retele Sociale Digitale Ubicue

Referinţe [1] Buraga, Sabin Corneliu, despre Web semantic: Semantic Web Fundamente şi Aplicaţii, Matrix Rom, 2004 973-685-772-7. [2] Daconta, Michael C. et al, despre Web semantic: The Semantic Web A Guide to the Future of XML, Web Services and Knowledge Management, first edition, John Wiley & Sons, Inc., 2003 0471432571. [3] * * *, MSDN, despre .NET Framework, Windows Forms, ASP.NET şi ADO.NET: Microsoft Developers Network Library 2005, Microsoft Corp. [4] * * *, Web Services Developer Center, despre Servicii Web: http://msdn.microsoft.com/webservices/ [5] * * *, Tablet PC Developer Center, despre Tablet PC: http://msdn.microsoft.com/mobility/tabletpc/ [6] * * *, Mobile Application Developer Center, despre Windows Mobile: http://msdn.microsoft.com/mobility/windowsmobile/ [7] * * *, Visual Studio „Whidbey” Developer Center, despre Visual Studio: http://lab.msdn.microsoft.com/vs2005/articles/ [8] * * *, Windows Server System, despre Windows Server şi SQL Server: http://www.microsoft.com/windowsserversystem/ [9] * * *, GPRS Platform, despre GPRS: http://www.gsmworld.com/technology/gprs/ [10] * * *, GPS World, despre GPS: http://www.gpsworld.com/gpsworld/ [11] * * *, World Wide Web Consortium, despre Internet, Web, (X)HTML, CSS, XML, RDF, OWL, SOAP: http://www.w3.org/

63 63

Page 64: Retele Sociale Digitale Ubicue

Glosar Avalon – Numele de cod al viitorului subsistem de prezentare grafică unificată, aparţinând sistemelor de operare din familia Windows. CLR – Common Language Runtime, runtime component al .NET Framework, care asigură execuţia aplicaţiilor şi furnizează servicii acestora (e.g., memory management). CTS – Common Type System, specificaţie cu care trebuie să se conformeze toate tipurile specifice platformei .NET pentru a asigura un nivel optim de securitate (eng. type-safety). Ethernet – Tip standard de conexiune la reţea (Internet) cu viteză de transfer de 10/100/1000 Mbps (1000 Mbps – Gigabit Ethernet). GPS – Global Positioning System, sistem de sateliţi geostaţionari cu rol în identificarea poziţiei geografice folosind dispozitive speciale numite module GPS. GSM-GPRS – Standard de transmisie de date „fără fir” utilizat de reţelele de telefonie mobilă GSM. Indigo – Numele de cod al viitoarei platforme de comunicaţii orientate spre servicii. Constituie o evoluţie a serviciilor Web. Internet-enabled – Aplicaţie convenţională care derivă funcţionalitate din posibilitatea de conectare la Internet (e.g., aplicaţii auto-actualizabile). Longhorn – Numele de cod al vitoarei versiuni a sistemului de operare din familia Windows. Metadate – Date asociate datelor sau date despre date, folosite în scenarii în care o entitate trebuie să deţină capacitatea de a se auto-descrie. Managed-Unmanaged code – Codul managed este codul care se execută sub supervizarea CLR (eng. management). Codul unmanaged este codul nativ al platformei host. Semantic-enabled – Resursele disponibile în spaţiul Web, care conţin sau au asociate descrieri privitoare la conţinut (semantică). Ubicuu (eng. ubiquitous) – Integrat în mediul ambiant, omniprezent. În contextul Web-ului semantic, acest termen se referă la interacţiunea permanentă şi nemediată (neconfigurată) a serviciilor şi aplicaţiilor pentru a atinge un nivel optim de interoperabilitate şi, implicit, funcţionalităţi complexe. Web Semantic – Evoluţie sau extensie a actualului World Wide Web în care resursele sunt procesate şi exploatate ţinând cont de conţinut (semantică). Web of Trust – Reprezintă acea extensie a Web-ului semantic (implicit, a Web-ului curent), în care vor fi accesibile metodele de protejare împotriva nerespectării securităţii şi intimităţii personale a utilizatorului. Whidbey – Numele de cod al suitei de instrumente pentru dezvoltare software, Visual Studio 2005. WinFS – Windows Future Storage (File System), numele de cod al viitorului subsistem de stocare şi prezentare a datelor prezent în sistemele de operare Windows.

64 64