Uniface

S Vikipedije, slobodne enciklopedije

Uniface je platforma za razvoj i primenu poslovnih aplikacija koje mogu da rade u velikom opsegu okruženja, uključujući i mobilna, mejnfrejm (engl. mainframe), veb, SOA, Microsoft Windows, JEE i .NET.

Uniface aplikacije su nezavisne od platforme i baze podataka. Uniface obezbeđuje okvir koji omogućava integraciju Uniface aplikacija sa svim većim DBMS proizvodima, kao i širokim spектром других технологија, као што су мејнфрејм базирани производи (CICS, IMS), веб сервиси, SMTP i POP e-pošta, LDAP direktorijumi, .NET, C i C++ programi, i Java. Uniface radi pod Microsoft Windows-om, operativnim sistemom Mobilni Windows, raznim ukusima Juniksa i Linuksa, IBM ISeries, Z/OS, i VMS.

Uniface može da se koristi u složenim sistemima koji održavaju kritične podatke preduzeća od vitalnog značaja za podršku poslovnih procesa, kao što je elektronska kupovina na veb-u, finansijske transakcije, administracija plata i kontrola zaliha. Trenutno je koriste hiljade firmi u više od 30 zemalja, sa efikasnom instaliranom bazom od miliona korisnika. Uniface aplikacije se kreću od klijent-serverskih do veba, i od unosa podataka do upravljanja procesima, kao i portala kojima se pristupa lokalno, preko intraneta i interneta.

Prvobitno razvijen u Holandiji u firmi Inside Automation, kasnije Uniface BV, proizvod i firmu je kupila Compuware Corporation iz Detroita u 1994, ali je razvoj Uniface-a i dalje sa sedištem u Amsterdamu.

Proizvodi Uniface-a[uredi | uredi izvor]

Platforma Uniface sadrži niz alatki za razvoj i implementaciju, od kojih su većina zajedno upakovane u Uniface Application Platform Suite (APS). APS obuhvata:

  • Uniface Development Environment — integrisana kolekcija alata za modeliranje, implementaciju, kompajliranje, debagovanje, i distribuciju aplikacija.
  • Uniface Flow — okruženje za razvoj i primenu poslovnih procesa
  • Uniface View — portal za integraciju aplikacija koji nudi organizovanu sredinu sastavljenu od veb dokumenata, izveštaja iz baze podataka, poslovnih aplikacija, i drugih korporativnih resursa.

Uniface aplikacije (uključujući i Uniface Development Environment, Uniface Flow i Uniface View) koriste zajedničku infrastrukturu koji se sastoji od:

  • Uniface Runtime Engine — proces, specifičan za platformu, koji tumači i izvršava kompajlirane programske komponente i biblioteke
  • Uniface Router — višenitni proces odgovoran za međuprocesnu komunikaciju u Uniface aplikacijama. On počinje i zaustavlja Uniface Server procese, vrši balansiranje opterećenja, i razmenjuje poruke između različitih Uniface procesa.
  • Uniface Server — serverski proces koji omogućava Uniface klijentima da dođu do udaljenih resursa, ili da izvrše udaljene komponente. On deluje kao aplikacijski server, server za pristup bazama podataka, kao i server datoteka.
  • Uniface repozitorijum — skladište koje se sastoji od baze podataka koja podržava SQL i koje služi za uskladištenje definicija i svojstva razvojnih objekata, procesa i organizacijskih modela, kao i definicije portala.
  • Veb server — Uniface distribuira Apache Tomcat server za razvoj i testiranje veb aplikacija, ali bilo koji veb-server se može koristiti u proizvodnom okruženju.
  • Servleti — Java servleti koji posreduju u komunikaciji između veb-servera i Uniface servera kod Uniface veb aplikacija i veb servisa.
  • Bazni (DBMS) konektori — drajveri koji se bave vezama između Uniface-a i raznih baza podataka.
  • Integracijski alati - drajveri, komponente, i API-ji koji se bave komunikacijom između Uniface-a i nezavisnih aplikacija i tehnologija, uključujući i Javu, CICS, IMS, LDAP, SMTP, POP, komande operativnog sistema, COM, i još mnogo toga.

Pored toga, Uniface JTi (Java Thin Client Interface) može da isporuči klijent'-serversku Uniface aplikaciju na praktično bilo koji računar koji je povezan na internet.

Uniface ima vlastiti proceduralni jezik koji se zove Proc, i koji se koristi za kodiranje aplikacija i njihovog ponašanja. Uniface automatizuje većinu ulazno/izlaznih operacija kroz svoje jezgro i standardni kod, pa veliki broj fundamentalnih operacija uopšte ne treba da se kodira.

Uniface aplikacije[uredi | uredi izvor]

Uniface aplikacije su zasnovane na komponentama i predstavljaju programe nezavisne od infrastrukture, koji mogu da kreiraju ili koriste podatke uskladištene u jednoj ili više baza podataka ili sistema datoteka. One mogu biti kompozitne aplikacije koje uključuju komponente kreirane pomoću drugih razvojnih alata, i mogu biti raspoređene u distribuiranim klijent-serverskim i veb okruženjima, kao i mobilnim aplikacijama, veb servisima i mejnfrejm (mainframe) sredinama.

Uniface ima različite tipove komponenata koji su namenjeni za korišćenje u različitim slojevima višeslojne (multi-tier) aplikacijske arhitekture.

Komponente u prezentacijskom sloju (presentation tier) su odgovorne za korisnički interfejs, i obuhvataju:

  • Forms— interaktivni ekrani za prikazivanje i ažuriranje podataka u klijent-serverskom okruženju.
  • Server Pages— interaktivne stranice za prikazivanje i ažuriranje podataka u veb okruženju
  • Reports— izveštaji za predstavljanje podataka u štampanom obliku.

Komponente u sloju poslovne logike (business logic tier) rukuju poslovnim pravilima i specifičnim ponašanjem vezanog uz konkretne zadatke, i nemaju korisnički interfejs:

  • Services — servisi pružaju obradu i poslovnu logiku kada ih pozovu druge komponente, bilo lokalno ili daljinski.
  • Session Services — sesijski servisi sadrže centralizirana, složena poslovna pravila koja utiču na više entiteta/tabela podataka, kao što su specifična operaciona ponašanja, transakcije i referencijalni integritet.
  • Entity Services— entitetski servisi sadrže centralizirana, jednostavna pravila za pojedinačne entitete/tabele podataka.

Sloj koji definiše pristup podacima sadrži fizičke strukture baze podataka koje su deo Uniface aplikacijskog modela. Uniface obezbeđuje fizički pristup podacima pomoću ugrađenog SQL-a u baznim konektorima. Pristup mreži i posredničkom softveru je ugrađen u drajvere i Uniface ruter.

Uniface Runtime Engine izvršava aplikacijske komponente. On prikazuje prezentacijske komponente pomoću odgovarajućeg korisničkog interfejsa (bilo grafičkog ili karakternog), i šalje i prima podatke preko baznih konektora.

Razvoj aplikacija[uredi | uredi izvor]

Razvoj aplikacija Uniface-om se bazira na korišćenju modela i komponenti (model-driven, component-based development). Struktura podataka, poslovna pravila i standardno ponašanje aplikacije su ugrađeni u aplikacijski model. Definicije iz modela mogu da se ponovo koriste i komponente ih nasleđuju, ali one mogu zameniti nasleđene definicije i time obezbediti specifično ponašanje i karakteristike. Upotreba šablona poboljšava produktivnost i sprovodi doslednost prilikom definisanja modela.

Aplikacijski model[uredi | uredi izvor]

Aplikacijski model definiše entitete (tabele), polja (kolone), ključeve (indekse) i relacije, zajedno sa referencijalnim integritetom. Svaki entitet i polje u modelu ima svojstva i set trigera. Poslovna pravila se dodaju modelu deklarativno – pomoću setiranja svojstva, i proceduralno – pomoću dodavanja Proc koda (Uniface-ovog proceduralnog jezika) u trigere.

Trigeri su kontejneri za kod. Neki trigeri predstavljaju korisničke ili sistemske događaje, na primer ‘Occurrence Gets Focus’, ’Read’ or ’Leave Field’. Drugi pokrivaju pitanja kao što je provera validnosti, ili deluju kao kontejneri za metode vezane uz određeni objekat.

Upotreba trigera na nivou modela omogućava Uniface-u da prikupi osobine i ponašanja u okvir poslovnih objekata, time razdvajajući logičku od fizičke strukture podataka. To omogućava da se standardno ponašanje definiše jednom, a da se ponovo upotrebi u toku razvoja aplikacije. Time se ubrzava razvoj aplikacija i olakšava upotreba troslojne aplikacijske arhitekture.

Komponente[uredi | uredi izvor]

Objekti koji su opisani u aplikacijskom modelu se ponovo upotrebljavaju u komponentama. Programeri ugraćuju objekte iz modela u komponente sa njihovim crtanjem u editoru za komponente na prezentacijskom nivou, ili ubacivanjem u stablo komponentne strukture. Oni takođe mogu da dodaju objekte koji nisu u aplikacijskom modelu na nivou komponente, kao što su kontrolna polja, menija i komponentne promenljive.

Svojstva i trigeri definisani u aplikacijskom modelu se naslećuju njihovim kopiranjem iz modela u komponentu. Definicije mogu da se promene na nivou komponente kako bi se dobila neka specifična funkcionalnost. U tom slučaju se raskida veza između aplikacijskog modela i komponente (iako je moguće da se ta veza ponovo uspostavi). Ako se svojstva i kod menjaju na nivou modela, sve komponente koje sadrže taj objekat treba samo da se ponovo kompajliraju da bi se prikupile nove definicije. Ovo pruža pogodnosti pri održavanju, i osigurava da su pravila u vezi sa objektom dostupna gde god da se on koristi.

Uniface repozitorijum[uredi | uredi izvor]

Uniface održava bazu podataka sopstvenih metapodataka za potrebe ponovnog korišćenja - aplikacijski modeli, komponente definicije, komponentni izgled, proceduralni kod, i tako dalje. Repozitorijumu može da se pristupi isključivo preko Uniface-ove razvojne sredine, kako bi se obezbedio njegov integritet. Međutim, struktura repozitorijuma je dokumentovana, tako da je moguće (mada nije preporučljivo) da se njemu direktno pristupi, na primer, za pripremu izveštaja.

Korišćenjem centralizovanog repozitorijuma, razvoj aplikacija može da se podeli na timove programera. Uniface može da se integriše sa bilo kojim sistemom za kontrolu izvornog koda (SCCS) koji podržava specifikacije Microsoft-ovog zajedničkog interfejsa za kontrolu izvornog koda (Microsoft Common Source Code Control Interface Specification). SCCS funkcionalnosti dostupne u okviru Uniface-a zavise od konkretnog SCCS–a koji se koristi, jer proizvođači softvera različito tumače i primenjuju MS CSCC interfejs. Kao rezultat toga, podrška funkcionalnosti i ponašanja varira u zavisnosti od SCCS-a u upotrebi.

Distribucija aplikacija[uredi | uredi izvor]

Uniface aplikacije mogu biti raspoređene na platformama od mejnfrejma (mainframe) do mobilnih, bez promene koda. Komponente (i drugi objekti, kao što su pokretne ljuske, menija, trake sa alatkama (paneli), simboli, globalni i uključeni Proc zapisi) se kompajliraju i skupljaju u objekte koji mogu da budu upakovani u ZIP datoteke, i raspoređeni na bilo kojoj platformi. Ovi objekti se procesiraju korišćenjem virtuelne mašine i interpretatora specifičnih za svaku platformu. (Java i drugi jezici kasnije su pratili Uniface u tom pogledu). Komponente mogu da se kompajliraju na jednoj mašini i izvršavaju na drugoj, pod uslovom da je Uniface virtuelna mašina prisutna.

Povezivanje sa bazama podataka[uredi | uredi izvor]

Uniface pristupa mnogim bazama podataka i sistemima datoteka koje podržava pomoću baznih konektora (ili drajvera). Bazni konektori mapiraju i konvertuju Uniface-ove tipove podataka u najpogodniji format za određeni medijum za uskladištenje podataka. U toku izvršavanja, mogu da se setiraju parametri kako bi se omogućile (ili onemogućile) određene ekstenzije baze podataka. Pod uslovom da je bazni konektor licenciran, moguće je konvertovanje podataka između različitih izvora. Uniface takođe obezbeđuje interfejs (Database Connector Interface) koji može da se koristi za kreiranje sopstvenih konektora.

Licenciranje[uredi | uredi izvor]

Licenciranje se obavlja preko Compuware-ovog distribuiranog licencnog menadžera (Distributed Licence Manager - DLM), koji radi na principu distribucije licenci klijentima na njihov zahtev. DLM radi kao licencni server, čime se isključuje potreba da se licence održavaju lokalno.

Istorija Uniface-a[uredi | uredi izvor]

Prvobitno nazvan UNIS, proizvod je nastao u Holandiji u 1984 u kompaniji Inside Automation, u kojoj je na čelu bio Bode Duke, sa Fric Kres-om kao tehnički direktor. Do 1986, i proizvod i kompanija su promenili svoje ime u Uniface. Uniface je razvijen na principima 3-šeme (3-schema) arhitekture Američkog nacionalnog instituta za standarde (ANSI). Prvi put predložena u 1975, ova arhitektura definiše standardni pristup izgradnji sistema za upravljanje bazama podataka, koji se sastoji od 3 šeme (ili metamodela):

  • Konceptualna šema - definisanje svih stavki podataka i odnosa između njih. Postoji samo jedna konceptualna šema po bazi podataka. Uniface sprovodi konceptualnu šemu kao aplikacijski model (u raznim verzijama Uniface-a poznat i kao Business Object Model i Application Object Model).
  • Eksterna šema - različiti spoljni (korisnički) pogledi na podatke. Postoji više spoljnih šema za jednu bazu podataka. Uniface sprovodi spoljne šeme kao komponente. Tokom evolucije Uniface-a, spoljne šeme su postale interaktivni ekrani (forms); skriveni ekrani, koji se izvode u pozadini bez prikazivanja korisniku, postali su servisi; servisi su se podelili na sesijske servise za objekte u sloju poslovne logike, i entitetske servise koji mogu da budu u sloju poslovne logike ili u sloju koji definiše pristup podacima. Ekrani koji se štampaju umesto da budu prikazani, postali su izveštaji. Uniface Server Page (USP) je uvedena za razvoj veb stranica, a kasnije je uvedena i Dynamic Server Page (DSP) da bi se podržala Veb 2.0 funkcionalnost.
  • Interna šema - definicija fizičke reprezentacije sačuvanih podataka. Uniface prepušta definiciju interne šeme mnogim sistemima relacionih baza podataka sa kojima može biti povezan, što mu omogućava nezavisnost od baze podataka.

Uniface je razvijen na DEC VAX mašini, koristeći lokalni VAX sistem za upravljanje datotekama, RMS. Tragovi ovoga se vide u proizvodu i danas, sa korišćenjem "GOLD" tastera za promenu režima rada (DEC VT terminali su imali zlatni ili žuti taster na tastaturi. Danas je "GOLD" jednostavno mapiran na "+" taster numeričke tastature, ili na neki funkcijski taster).

Rane verzije proizvoda dolazile su u paketu sa RDBMS-om Sybase pod imenom FastBuild, iako pristup podacima nije bio ograničen samo na tu bazu podataka.

Uniface kontinuirano evoluira kako bi se mogao spraviti sa novim tehnologijama i aplikacijskim arhitekturama. Ovo je od kritične važnosti za njegov uspeh, jer aplikacije izrađene sa Uniface-om mogu da se migriraju, ažuriraju i moderniziraju bez gubljenja originalne razvojne investicije.

Uniface verzije[uredi | uredi izvor]

Uniface verzija 3 (1986): Uniface 3 je bilo prvo izdanje predstavljeno javnosti. Omogućavao je podršku za više baza podataka (RMS, Oracle, C-ISAM, Ingres, i RDB), virtuelnu mašinu za interpretiranje, strukturni editor, kao i Uniface-ov tekst i komandni editor.

Uniface verzija 4 (1988): Uniface 4 je imao bolji teksta editor (sada nazvan form-editor), poboljšano štampanje i prikaz ekrana, uvedena je podrška za MS-DOS, i dodat je interfejs za CASE alate.

Uniface verzija 5 (1990): Uniface 5 je omogućio klijent-serversku implementaciju sa uvođenjem daljinskog pristupa bazama podataka kroz program nazvan Polyserver. Uveo je grafički korisnički interfejs preko univerzalnog prezentacijskog interfejsa (Universal Presentation Interface - UPI). Podrška za pristup podacima je proširena na ukupno 13 baza podataka i sistema datoteka, i Uniface je sada bio dostupan na MS-DOS-u, VMS-u, OS/2, Stratus VOS-u i Juniks-u. Uvedena je i podrška za Japansko pismo.

Uniface Six (1994): Uniface Šest je u potpunosti završio prelaz na grafičke razvojne sredine. Imao je grafički form-editor i editor za aplikacijske modele; poboljšanu distribuciju kroz dinamične objektne biblioteke (Dynamic Object Library - DOL), dodao je podršku za povezivanje i ugrađivanje Majkrosoft-ovih objekata (Object Linking and Embedding - OLE); uvedena je podrška za Apple Macintosh; dodati su sistemi za kontrolu pristupa i integrisanu kontrolu verzija; dodati su alati za izveštavanje pod imenom Personal Series (iako su oni kasnije uklonjeni kada je njihov proizvođač odlučio da ne poboljša svoj proizvod); proširena je i lista podržanih platformi.

Uniface Seven (1997): Glavni fokus Uniface Sedam je bio na integraciji Uniface-ovih i eksternih komponenti kroz uvođenje Uniface Request Broker (URB) arhitekture. URB podržava dvosmernu, sinhronu ili asinhronu, komunikaciju između komponenti. Zajedno sa daljinskim pristupom podacima, URB je uveo particionirane aplikacijske servere, i razmenu poruka. Uniface Sedam je takođe ponudio prve Uniface-ove alate za razvoj i implementaciju veb aplikacija, sa uvođenjem veb aplikacijskog servera i Uniface Request Dispatcher-a (URD).

Druga poboljšanja su obuhvatala nove tipove komponenata (servisi, server stranice - USP, izveštaji); editor potpisa (Signature Editor); podsistemi i alati za konstrukciju podsistema (Assembly Workbench); operacije, nemodalni ekrani, komponentne instance; poboljšani editori i lakša navigacija; interfejs za eksterni editor; novi debager, integrisana onlajn pomoć; komponentni predlošci; poboljšana validacija; Uniface Name Server i grafički menadžer za particioniranje.

Uniface Sedam je uveo i nekoliko drugih alata:

  • Alat za modeliranje, integraciju i upravljanje poslovnim procesima. Ova funkcionalnost je preimenovana u Optimal Flow u Uniface 8, zatim Uniface Flow u Uniface 9.
  • Portal za poslovnu integraciju, prvobitno nazvan Optimal View, a kasnije Uniface View.
  • Uniface JTi - tanki klijent za isporuku Uniface-ovih klijent-serverskih aplikacija na vebu, preko interneta ili intraneta, obezbeđujući visoke performanse i u uslovima niskopojasnih veza.

Uniface 8 (2001): Uniface 8 je doneo velike promene u oblasti integracije procesa. Uniface ruter i server omogućili su skalabilnu i izbalansiranu aplikacijsku distribuciju. Web Request Dispatcher (WRD) zamenio je URD, poboljšavši performanse. Uvedena je podrška za veb servise pomoću SOAP-a i XML-a. Povezivanje i interoperabilnost su poboljšani, i uveden je metod za implementaciju troslojne aplikacijske arhitekture. Dodati su konektori za SOAP, COM, CORBA i MQSeries, poboljšano je upravljanje ekrana i datoteka, uveden je novi alat za poboljšanu aplikacijsku distribuciju, dodati su novi komponentni podtipovi za podršku troslojne arhitekture, ručke (handles) za komponentne instance, kao i automatsko oslobađanje memorije (garbage collection).

Uniface 9 (2006): Uniface 9 je fokusiran na poboljšanje grafičkog korisničkog interfejsa (GUI) i upotrebljivosti, kao i distribucije i integracije. Dodata je podrška za Windows Mobile, a konfiguracija i implementacija je pojednostavljena korišćenjem ZIP arhiva. Podrška za Unikod poboljšala je već i tako impresivne višejezičke mogućnosti Uniface-a, a poboljšanja u razvoju veb aplikacija i rukovanju XML-om dovela su Uniface još više u sklad sa industrijskim standardima. Uvoćenjem mogućnosti za dinamičko pomeranje polja na ekranima, uklonjene su neke stare prepreke za poboljšanje fleksibilnosti.

Ostale karakteristike su poboljšano rukovanje bojama, dinamička menija, XML interfejs, editor dijagrama za aplikacijske modele, unakrsno referenciranje za podršku kod refaktorisanja i implementacije, kao i poboljšana funkcionalnost kod korištenja veb servisa.

Uniface 9.4 (2010): Uprkos tome što je podverzija verzije 9, Uniface 9.4 je uveo dovoljno nove funkcionalnosti da bi se tretirao kao posebna verzija. Glavni fokus je stavljen na funkcionalnost bogatih internet aplikacija (Rich Internet Application - RIA), što omogućava da se razvije Veb 2.0 aplikacija sa bogatom funkcionalnosti koju obično pružaju klijent-serverske aplikacije, a koristeći iste alate i metodologije koji se koriste za razvoj klasičnih klijent-serverskih aplikacija. Upotreba različitih jezika i lokalnih podrška znatno je poboljšana, kao i podrška za HTML e-poštu (HTML e-mail), bezbednost i enkripciju.

Uniface 9.5 (2011): Uniface 9.5 ja olakšao integraciju proizvoda sa svetskom mrežom. Uvođenje Javaskript interfejsa, zajedno sa drugim poboljšanjima, omogućio je procesiranje na strani klijenta umesto servera, čime su poboljšane performanse, integracija, funkcionalnost i upotrebljivost aplikacija. Upravljanje mrežnim sesijama sada omogućuje pojačanu sigurnost, a procesiranje veb servisa podržava kompleksne tipove podataka za servise bazirane i na SOAP, i na REST protokolu. Takođe uvedena su poboljšanja za kritične klijent-serverske aplikacije, posebno u oblasti mrežnog grafičkog elementa.

Reference[uredi | uredi izvor]

Spoljašnje veze[uredi | uredi izvor]