Uniface

С Википедије, слободне енциклопедије

Uniface је платформа за развој и примену пословних апликација које могу да раде у великом опсегу окружења, укључујући и мобилна, мејнфрејм (енгл. mainframe), веб, SOA, Microsoft Windows, JEE и .NET.

Uniface апликације су независне од платформе и базе података. Uniface обезбеђује оквир који омогућава интеграцију Uniface апликација са свим већим ДБМС производима, као и широким спектром других технологија, као што су мејнфрејм базирани производи (CICS, IMS), веб сервиси, SMTP и POP е-пошта, LDAP директоријуми, .NET, C и C++ програми, и Јава. Uniface ради под Microsoft Windows-ом, оперативним системом Мобилни Windows, разним укусима Јуникса и Линукса, IBM ISeries, Z/OS, и VMS.

Uniface може да се користи у сложеним системима који одржавају критичне податке предузећа од виталног значаја за подршку пословних процеса, као што је електронска куповина на веб-у, финансијске трансакције, администрација плата и контрола залиха. Тренутно је користе хиљаде фирми у више од 30 земаља, са ефикасном инсталираном базом од милиона корисника. Uniface апликације се крећу од клијент-серверских до веба, и од уноса података до управљања процесима, као и портала којима се приступа локално, преко интранета и интернета.

Првобитно развијен у Холандији у фирми Inside Automation, касније Uniface BV, производ и фирму је купила Compuware Corporation из Детроита у 1994, али је развој Uniface-а и даље са седиштем у Амстердаму.

Производи Uniface-а[уреди | уреди извор]

Платформа Uniface садржи низ алатки за развој и имплементацију, од којих су већина заједно упаковане у Uniface Application Platform Suite (APS). APS обухвата:

  • Uniface Development Environment — интегрисана колекција алата за моделирање, имплементацију, компајлирање, дебаговање, и дистрибуцију апликација.
  • Uniface Flow — окружење за развој и примену пословних процеса
  • Uniface View — портал за интеграцију апликација који нуди организовану средину састављену од веб докумената, извештаја из базе података, пословних апликација, и других корпоративних ресурса.

Uniface апликације (укључујући и Uniface Development Environment, Uniface Flow и Uniface View) користе заједничку инфраструктуру који се састоји од:

  • Uniface Runtime Engine — процес, специфичан за платформу, који тумачи и извршава компајлиране програмске компоненте и библиотеке
  • Uniface Router — вишенитни процес одговоран за међупроцесну комуникацију у Uniface апликацијама. Он почиње и зауставља Uniface Server процесе, врши балансирање оптерећења, и размењује поруке између различитих Uniface процеса.
  • Uniface Server — серверски процес који омогућава Uniface клијентима да дођу до удаљених ресурса, или да изврше удаљене компоненте. Он делује као апликацијски сервер, сервер за приступ базама података, као и сервер датотека.
  • Uniface репозиторијум — складиште које се састоји од базе података која подржава SQL и које служи за ускладиштење дефиниција и својства развојних објеката, процеса и организацијских модела, као и дефиниције портала.
  • Веб сервер — Uniface дистрибуира Apache Tomcat сервер за развој и тестирање веб апликација, али било који веб-сервер се може користити у производном окружењу.
  • Сервлети — Јава сервлети који посредују у комуникацији између веб-сервера и Uniface сервера код Uniface веб апликација и веб сервиса.
  • Базни (DBMS) конектори — драјвери који се баве везама између Uniface-а и разних база података.
  • Интеграцијски алати - драјвери, компоненте, и АПИ-ји који се баве комуникацијом између Uniface-а и независних апликација и технологија, укључујући и Јаву, CICS, IMS, LDAP, SMTP, POP, команде оперативног система, COM, и још много тога.

Поред тога, Uniface JTi (Java Thin Client Interface) може да испоручи клијент'-серверску Uniface апликацију на практично било који рачунар који је повезан на интернет.

Uniface има властити процедурални језик који се зове Proc, и који се користи за кодирање апликација и њиховог понашања. Uniface аутоматизује већину улазно/излазних операција кроз своје језгро и стандардни код, па велики број фундаменталних операција уопште не треба да се кодира.

Uniface апликације[уреди | уреди извор]

Uniface апликације су засноване на компонентама и представљају програме независне од инфраструктуре, који могу да креирају или користе податке ускладиштене у једној или више база података или система датотека. Оне могу бити композитне апликације које укључују компоненте креиране помоћу других развојних алата, и могу бити распоређене у дистрибуираним клијент-серверским и веб окружењима, као и мобилним апликацијама, веб сервисима и мејнфрејм (mainframe) срединама.

Uniface има различите типове компонената који су намењени за коришћење у различитим слојевима вишеслојне (multi-tier) апликацијске архитектуре.

Компоненте у презентацијском слоју (presentation tier) су одговорне за кориснички интерфејс, и обухватају:

  • Forms— интерактивни екрани за приказивање и ажурирање података у клијент-серверском окружењу.
  • Server Pages— интерактивне странице за приказивање и ажурирање података у веб окружењу
  • Reports— извештаји за представљање података у штампаном облику.

Компоненте у слоју пословне логике (business logic tier) рукују пословним правилима и специфичним понашањем везаног уз конкретне задатке, и немају кориснички интерфејс:

  • Services — сервиси пружају обраду и пословну логику када их позову друге компоненте, било локално или даљински.
  • Session Services — сесијски сервиси садрже централизирана, сложена пословна правила која утичу на више ентитета/табела података, као што су специфична операциона понашања, трансакције и референцијални интегритет.
  • Entity Services— ентитетски сервиси садрже централизирана, једноставна правила за појединачне ентитете/табеле података.

Слој који дефинише приступ подацима садржи физичке структуре базе података које су део Uniface апликацијског модела. Uniface обезбеђује физички приступ подацима помоћу уграђеног SQL-а у базним конекторима. Приступ мрежи и посредничком софтверу је уграђен у драјвере и Uniface рутер.

Uniface Runtime Engine извршава апликацијске компоненте. Он приказује презентацијске компоненте помоћу одговарајућег корисничког интерфејса (било графичког или карактерног), и шаље и прима податке преко базних конектора.

Развој апликација[уреди | уреди извор]

Развој апликација Uniface-ом се базира на коришћењу модела и компоненти (model-driven, component-based development). Структура података, пословна правила и стандардно понашање апликације су уграђени у апликацијски модел. Дефиниције из модела могу да се поново користе и компоненте их наслеђују, али оне могу заменити наслеђене дефиниције и тиме обезбедити специфично понашање и карактеристике. Употреба шаблона побољшава продуктивност и спроводи доследност приликом дефинисања модела.

Апликацијски модел[уреди | уреди извор]

Апликацијски модел дефинише ентитете (табеле), поља (колоне), кључеве (индексе) и релације, заједно са референцијалним интегритетом. Сваки ентитет и поље у моделу има својства и сет тригера. Пословна правила се додају моделу декларативно – помоћу сетирања својства, и процедурално – помоћу додавања Proc кода (Uniface-овог процедуралног језика) у тригере.

Тригери су контејнери за код. Неки тригери представљају корисничке или системске догађаје, на пример ‘Occurrence Gets Focus’, ’Read’ or ’Leave Field’. Други покривају питања као што је провера валидности, или делују као контејнери за методе везане уз одређени објекат.

Употреба тригера на нивоу модела омогућава Uniface-у да прикупи особине и понашања у оквир пословних објеката, тиме раздвајајући логичку од физичке структуре података. То омогућава да се стандардно понашање дефинише једном, а да се поново употреби у току развоја апликације. Тиме се убрзава развој апликација и олакшава употреба трослојне апликацијске архитектуре.

Компоненте[уреди | уреди извор]

Објекти који су описани у апликацијском моделу се поново употребљавају у компонентама. Програмери уграћују објекте из модела у компоненте са њиховим цртањем у едитору за компоненте на презентацијском нивоу, или убацивањем у стабло компонентне структуре. Они такође могу да додају објекте који нису у апликацијском моделу на нивоу компоненте, као што су контролна поља, менија и компонентне променљиве.

Својства и тригери дефинисани у апликацијском моделу се наслећују њиховим копирањем из модела у компоненту. Дефиниције могу да се промене на нивоу компоненте како би се добила нека специфична функционалност. У том случају се раскида веза између апликацијског модела и компоненте (иако је могуће да се та веза поново успостави). Ако се својства и код мењају на нивоу модела, све компоненте које садрже тај објекат треба само да се поново компајлирају да би се прикупиле нове дефиниције. Ово пружа погодности при одржавању, и осигурава да су правила у вези са објектом доступна где год да се он користи.

Uniface репозиторијум[уреди | уреди извор]

Uniface одржава базу података сопствених метаподатака за потребе поновног коришћења - апликацијски модели, компоненте дефиниције, компонентни изглед, процедурални код, и тако даље. Репозиторијуму може да се приступи искључиво преко Uniface-ове развојне средине, како би се обезбедио његов интегритет. Међутим, структура репозиторијума је документована, тако да је могуће (мада није препоручљиво) да се њему директно приступи, на пример, за припрему извештаја.

Коришћењем централизованог репозиторијума, развој апликација може да се подели на тимове програмера. Uniface може да се интегрише са било којим системом за контролу изворног кода (SCCS) који подржава спецификације Microsoft-овог заједничког интерфејса за контролу изворног кода (Microsoft Common Source Code Control Interface Specification). SCCS функционалности доступне у оквиру Uniface-а зависе од конкретног SCCS–а који се користи, јер произвођачи софтвера различито тумаче и примењују MS CSCC интерфејс. Као резултат тога, подршка функционалности и понашања варира у зависности од SCCS-а у употреби.

Дистрибуција апликација[уреди | уреди извор]

Uniface апликације могу бити распоређене на платформама од мејнфрејма (mainframe) до мобилних, без промене кода. Компоненте (и други објекти, као што су покретне љуске, менија, траке са алаткама (панели), симболи, глобални и укључени Proc записи) се компајлирају и скупљају у објекте који могу да буду упаковани у ZIP датотеке, и распоређени на било којој платформи. Ови објекти се процесирају коришћењем виртуелне машине и интерпретатора специфичних за сваку платформу. (Јава и други језици касније су пратили Uniface у том погледу). Компоненте могу да се компајлирају на једној машини и извршавају на другој, под условом да је Uniface виртуелна машина присутна.

Повезивање са базама података[уреди | уреди извор]

Uniface приступа многим базама података и системима датотека које подржава помоћу базних конектора (или драјвера). Базни конектори мапирају и конвертују Uniface-ове типове података у најпогоднији формат за одређени медијум за ускладиштење података. У току извршавања, могу да се сетирају параметри како би се омогућиле (или онемогућиле) одређене екстензије базе података. Под условом да је базни конектор лиценциран, могуће је конвертовање података између различитих извора. Uniface такође обезбеђује интерфејс (Database Connector Interface) који може да се користи за креирање сопствених конектора.

Лиценцирање[уреди | уреди извор]

Лиценцирање се обавља преко Compuware-овог дистрибуираног лиценцног менаџера (Distributed Licence Manager - DLM), који ради на принципу дистрибуције лиценци клијентима на њихов захтев. DLM ради као лиценцни сервер, чиме се искључује потреба да се лиценце одржавају локално.

Историја Uniface-а[уреди | уреди извор]

Првобитно назван UNIS, производ је настао у Холандији у 1984 у компанији Inside Automation, у којој је на челу био Боде Дуке, са Фриц Крес-ом као технички директор. До 1986, и производ и компанија су променили своје име у Uniface. Uniface је развијен на принципима 3-шеме (3-schema) архитектуре Америчког националног института за стандарде (ANSI). Први пут предложена у 1975, ова архитектура дефинише стандардни приступ изградњи система за управљање базама података, који се састоји од 3 шеме (или метамодела):

  • Концептуална шема - дефинисање свих ставки података и односа између њих. Постоји само једна концептуална шема по бази података. Uniface спроводи концептуалну шему као апликацијски модел (у разним верзијама Uniface-а познат и као Business Object Model и Application Object Model).
  • Екстерна шема - различити спољни (кориснички) погледи на податке. Постоји више спољних шема за једну базу података. Uniface спроводи спољне шеме као компоненте. Током еволуције Uniface-а, спољне шеме су постале интерактивни екрани (forms); скривени екрани, који се изводе у позадини без приказивања кориснику, постали су сервиси; сервиси су се поделили на сесијске сервисе за објекте у слоју пословне логике, и ентитетске сервисе који могу да буду у слоју пословне логике или у слоју који дефинише приступ подацима. Екрани који се штампају уместо да буду приказани, постали су извештаји. Uniface Server Page (USP) је уведена за развој веб страница, а касније је уведена и Dynamic Server Page (DSP) да би се подржала Веб 2.0 функционалност.
  • Интерна шема - дефиниција физичке репрезентације сачуваних података. Uniface препушта дефиницију интерне шеме многим системима релационих база података са којима може бити повезан, што му омогућава независност од базе података.

Uniface је развијен на DEC VAX машини, користећи локални VAX систем за управљање датотекама, RMS. Трагови овога се виде у производу и данас, са коришћењем "GOLD" тастера за промену режима рада (DEC VT терминали су имали златни или жути тастер на тастатури. Данас је "GOLD" једноставно мапиран на "+" тастер нумеричке тастатуре, или на неки функцијски тастер).

Ране верзије производа долазиле су у пакету са RDBMS-ом Sybase под именом FastBuild, иако приступ подацима није био ограничен само на ту базу података.

Uniface континуирано еволуира како би се могао справити са новим технологијама и апликацијским архитектурама. Ово је од критичне важности за његов успех, јер апликације израђене са Унифаце-ом могу да се мигрирају, ажурирају и модернизирају без губљења оригиналне развојне инвестиције.

Uniface верзије[уреди | уреди извор]

Uniface верзија 3 (1986): Uniface 3 је било прво издање представљено јавности. Омогућавао је подршку за више база података (RMS, Oracle, C-ISAM, Ingres, и RDB), виртуелну машину за интерпретирање, структурни едитор, као и Uniface-ов текст и командни едитор.

Uniface верзија 4 (1988): Uniface 4 је имао бољи текста едитор (сада назван форм-едитор), побољшано штампање и приказ екрана, уведена је подршка за MS-DOS, и додат је интерфејс за CASE алате.

Uniface верзија 5 (1990): Uniface 5 је омогућио клијент-серверску имплементацију са увођењем даљинског приступа базама података кроз програм назван Polyserver. Увео је графички кориснички интерфејс преко универзалног презентацијског интерфејса (Universal Presentation Interface - UPI). Подршка за приступ подацима је проширена на укупно 13 база података и система датотека, и Uniface је сада био доступан на MS-DOS-у, VMS-у, OS/2, Stratus VOS-у и Јуникс-у. Уведена је и подршка за Јапанско писмо.

Uniface Six (1994): Uniface Шест је у потпуности завршио прелаз на графичке развојне средине. Имао је графички форм-едитор и едитор за апликацијске моделе; побољшану дистрибуцију кроз динамичне објектне библиотеке (Dynamic Object Library - DOL), додао је подршку за повезивање и уграђивање Мајкрософт-ових објеката (Object Linking and Embedding - OLE); уведена је подршка за Apple Macintosh; додати су системи за контролу приступа и интегрисану контролу верзија; додати су алати за извештавање под именом Personal Series (иако су они касније уклоњени када је њихов произвођач одлучио да не побољша свој производ); проширена је и листа подржаних платформи.

Uniface Seven (1997): Главни фокус Uniface Седам је био на интеграцији Uniface-ових и екстерних компоненти кроз увођење Uniface Request Broker (URB) архитектуре. URB подржава двосмерну, синхрону или асинхрону, комуникацију између компоненти. Заједно са даљинским приступом подацима, URB је увео партициониране апликацијске сервере, и размену порука. Uniface Седам је такође понудио прве Uniface-ове алате за развој и имплементацију веб апликација, са увођењем веб апликацијског сервера и Uniface Request Dispatcher-а (URD).

Друга побољшања су обухватала нове типове компонената (сервиси, сервер странице - USP, извештаји); едитор потписа (Signature Editor); подсистеми и алати за конструкцију подсистема (Assembly Workbench); операције, немодални екрани, компонентне инстанце; побољшани едитори и лакша навигација; интерфејс за екстерни едитор; нови дебагер, интегрисана онлајн помоћ; компонентни предлошци; побољшана валидација; Uniface Name Server и графички менаџер за партиционирање.

Uniface Седам је увео и неколико других алата:

  • Алат за моделирање, интеграцију и управљање пословним процесима. Ова функционалност је преименована у Optimal Flow у Uniface 8, затим Uniface Flow у Uniface 9.
  • Портал за пословну интеграцију, првобитно назван Optimal View, а касније Uniface View.
  • Uniface JTi - танки клијент за испоруку Uniface-ових клијент-серверских апликација на вебу, преко iнтернета или iнтранета, обезбеђујући високе перформансе и у условима нископојасних веза.

Uniface 8 (2001): Uniface 8 је донео велике промене у области интеграције процеса. Uniface рутер и сервер омогућили су скалабилну и избалансирану апликацијску дистрибуцију. Web Request Dispatcher (WRD) заменио је URD, побољшавши перформансе. Уведена је подршка за веб сервисе помоћу SOAP-а и XML-а. Повезивање и интероперабилност су побољшани, и уведен је метод за имплементацију трослојне апликацијске архитектуре. Додати су конектори за SOAP, COM, CORBA и МQSeries, побољшано је управљање екрана и датотека, уведен је нови алат за побољшану апликацијску дистрибуцију, додати су нови компонентни подтипови за подршку трослојне архитектуре, ручке (handles) за компонентне инстанце, као и аутоматско ослобађање меморије (garbage collection).

Uniface 9 (2006): Uniface 9 је фокусиран на побољшање графичког корисничког интерфејса (GUI) и употребљивости, као и дистрибуције и интеграције. Додата је подршка за Windows Mobile, а конфигурација и имплементација је поједностављена коришћењем ZIP архива. Подршка за Уникод побољшала је већ и тако импресивне вишејезичке могућности Uniface-а, а побољшања у развоју веб апликација и руковању XML-ом довела су Uniface још више у склад са индустријским стандардима. Увоћењем могућности за динамичко померање поља на екранима, уклоњене су неке старе препреке за побољшање флексибилности.

Остале карактеристике су побољшано руковање бојама, динамичка менија, XML интерфејс, едитор дијаграма за апликацијске моделе, унакрсно референцирање за подршку код рефакторисања и имплементације, као и побољшана функционалност код кориштења веб сервиса.

Uniface 9.4 (2010): Упркос томе што је подверзија верзије 9, Uniface 9.4 је увео довољно нове функционалности да би се третирао као посебна верзија. Главни фокус је стављен на функционалност богатих интернет апликација (Rich Internet Application - RIA), што омогућава да се развије Веб 2.0 апликација са богатом функционалности коју обично пружају клијент-серверске апликације, а користећи исте алате и методологије који се користе за развој класичних клијент-серверских апликација. Употреба различитих језика и локалних подршка знатно је побољшана, као и подршка за HTML е-пошту (HTML e-mail), безбедност и енкрипцију.

Uniface 9.5 (2011): Uniface 9.5 ја олакшао интеграцију производа са светском мрежом. Увођење Јаваскрипт интерфејса, заједно са другим побољшањима, омогућио је процесирање на страни клијента уместо сервера, чиме су побољшане перформансе, интеграција, функционалност и употребљивост апликација. Управљање мрежним сесијама сада омогућује појачану сигурност, а процесирање веб сервиса подржава комплексне типове података за сервисе базиране и на SOAP, и на REST протоколу. Такође уведена су побољшања за критичне клијент-серверске апликације, посебно у области мрежног графичког елемента.

Референце[уреди | уреди извор]

Спољашње везе[уреди | уреди извор]