Uniface е платформа за развој, дистрибуција и имплементација на апликации на голем број платформи, вклучувајќи мобилни, меинфрејм (mainframe), веб, SOA, Microsoft Windows, JEE и .NET.
Uniface апликациите се независни од базата на податоци и платформата на којашто работат. Uniface обезбедува интеграциска рамка којашто овозможува Uniface апликациите да се интегрираат со сите поголеми DBMS производи, но и широк спектар на други технологии, како меинфрејм (mainframe - CICS, IMS), веб-сервиси, SMTP и POP електронска пошта, LDAP директориуми, .NET, C и C++ програми, и Java. Uniface работи на Microsoft Windows, Windows Mobile, различни варијанти на Unix и Linux, IBM ISeries, Z/OS и VMS. мини|Лого на Uniface Uniface може да се користи во комплексни системи коишто содржат критични податоци од витално значење за поддршка на деловните процеси, како што се веб-засновани апликации за електронска трговија, финансиски трансакции, администрација на плати, како и контрола на инвентар. Во моментот го користат илјадници компании во повеќе од 30 земји, со делотворна инсталирана основа од милиони корисници. Uniface апликациите рангираат од клиент/опслужувач до интернет, од внесување на податоци до автоматизација на процеси, како и портали кон кои се пристапува локално, преку интранет и интернет.
Првобитно развиен во Холандија од страна на Inside Automation, подоцна Uniface B.V., производот и претпријатието беа купени од страна на Compuware Corporation со седиште во Детроит во 1994 година, но развојот на платформата е сè уште со седиште во Амстердам.
Uniface продукти
Uniface платформата содржи спектар на алатки за развој и употреба на апликации, од кои повеќето се спакувани заедно под име Uniface Application Platform Suite (APS), кој вклучува:
Uniface Development Environment (UDE) – средина за развој на апликации којашто содржи колекција на интегрирани алатки за моделирање, имплементација, компајлирање, дебагирање и дистрибуција на апликации. Uniface Flow - средина за развој и имплементација на деловни процеси Uniface View - портал за интеграција на апликации којшто обезбедува организирана работна средина од веб документи, извештаи од бази на податоци, апликации, и други работни ресурси.
Uniface апликациите (вклучувајќи ги тука и UDE, Uniface Flow, и Uniface View) користат заедничка инфраструктура којашто се состои од:
Uniface Runtime Engine – процес специфичен за секоја платформа којшто ги толкува и извршува компајлираните апликациски компоненти и библиотеки. Uniface Router – повеќенитен процес одговорен за интерпроцесна комуникација во Uniface апликациите, којшто ги иницира и запира Uniface Server процесите, врши урамнотежување на оптоварувањето, и разнесува пораки помеѓу различни Uniface процеси. Uniface Server - опслужувач-заснован процес којшто им овозможува на Uniface клиентите да пристапат до далечински ресурси, или да обработуваат далечински компоненти. Дејствува како апликациски опслужувач, опслужувач за пристап до бази на податоци и опслужувач за податотеки. Uniface репозиториум – складиште во вид на основа на податоци којашто поддржува SQL, коешто се користи за чување на дефинициите и одликите на развојните објекти, процесите и организациските модели, како и дефинициите на порталите. Опслужувач - Uniface го дистрибуира Apache Tomcat опслужувачот за развој и тестирање на семрежни прилози, но во производство може да се користи било кој опслужувач. Servlets - Jave Servlet-и кои служат како посредници во комуникацијата помеѓу опслужувачот и Uniface Server-от кај Uniface семрежните прилози, и при употреба на веб сервиси. Database connectors – драјвери коишто ја овозможуваат врската помеѓу Uniface и различни бази на податоци. Интеграциски алатки - драјвери, компоненти и програмски интерфејси коишто овозможуваат комуникација помеѓу Uniface и апликации од трети лица и технологии, вклучувајќи Java, CICS, IMS, LDAP, SMTP, POP, команди на оперативниот систем, COM, и многу други.
Покрај тоа, Uniface JTi (Java Thin Client Interface) овозможува достапност на Uniface клиент/опслужувач апликациите од речиси секој компјутер поврзан на интернет.
Uniface користи сопствен процедурален јазик наречен Proc, којшто се користи за кодирање на апликациите. Uniface ги автоматизира повеќето влезно-излезни операции преку своето јадро и стандарден код, така што многу основни операции не треба воопшто да се кодираат.
Uniface апликации
Uniface апликациите се состојат од компоненти и претставуваат софтверски програми независни од инфраструктурата, коишто можат да создаваат или користат податоци од една или повеќе бази на податоци или системи од податотеки. Тие можат да бидат сложени апликации коишто вклучуваат компоненти што не се создадени од Uniface туку од други алатки за развој на апликации, и можат да се распоредат во дистрибуирани клиент/опслужувач и веб средини, како мобилни апликации или веб сервиси, и во меинфрејм (mainframe) средини.
Uniface има различни типови на компоненти кои се наменети за употреба во различните апликациски слоеви во повеќеслојната (multi-tier) архитектура.
Компонентите во презентацискиот слој (presentation tier) се одговорни за корисничкиот интерфејс, и вклучуваат:
Forms - интерактивни екрани за прикажување и ажурирање на податоци во клиент/опслужувач средини. Server Pages - интерактивни страници за прикажување и ажурирање на податоци во веб средини. Reports - извештаи за презентација на податоците во печатена форма.
Компонентите во слојот којшто ја содржи оперативната логика (business logic tier) се справуваat со оперативните правила и однесувањата специфични за конкретни задачи, и немаат кориснички интерфејс:
Services – сервиси коишто обезбедуваат обработка и оперативна логика кога се повикани од други компоненти, било локално или далечински. Session Services – сервиси коишто содржат централизирани, комплексни оперативни правила кои се однесуваат на повеќе ентитети/табели, како што се специфични операциски караклтеристики, трансакции и референцијален интегритет. Entity Services – сервиси коишто содржат централизирани, едноставни оперативни правила за поединечни ентитети/табели.
Слојот којшто го дефинира пристапот до податоци (data tier) содржи физички структури блиски до базата на податоци коишто се дефинирани во Uniface апликацискиот модел. Uniface обезбедува физички пристап до податоците од базата со тоа што има вграден SQL во своите DBMS конектори. Пристапот до мрежата и поврзувачкиот софтвер (middleware) е вграден во драјверите за поврзувачкиот софтвер и Uniface Router-от.
Uniface Runtime Engine процесот ги извршува апликациските компоненти. Тој ги прикажува презентациските компоненти со помош на соодветен конектор за кориснички интерфејс (графички или карактерен) и ги праќа и прима податоците преку соодветен DBMS конектор.
Развој на апликации
Развојот на апликации со Uniface се темели врз користење на модели и компоненти (model-driven, component-based development). Структурата на податоците, оперативните правила и стандардното однесување на апликацијата се вградени во апликацискиот деловен модел. Дефинициите од моделот можат да бидат повторно искористени и наследени од страна на компонентите, коишто од своја страна можат да ги изменат наследените дефиниции и одлики, со што се обезбедува специфичност на одликите и однесувањето во зависност од функцијата на компонентата. Употребата на шаблони ја зголемува продуктивноста и обезбедува доследност при дефинирањето на моделите.
Апликациски модел
Апликацискиот модел ги содржи дефинициите на ентитетите (табелите), полињата (колоните), клучевите (индексите) и релациите, заедно со референцијаниот интегритет. Секој ентитет и поле во моделот има свои одлики и сет од тригери. Оперативните правила се додаваат во моделот декларативно - со сетирање на одликите, и процедурално - со додавање на Proc код (процедуралниот јазик на Uniface) во тригерите.
Тригерите се контејнери за код. Некои тригери претставуваат настани иницирани од корисникот или системот (на пример, ‘Occurrence Gets Focus‘, ‘Read‘ или ‘Leave Field‘). Други, пак, покриваат настани како што се валидација, или пак претставуваат место за чување на методи поврзани со специфичниот објект.
Со користење на тригерите на ниво на деловниот модел му се овозможува на Uniface да ги сочува одликите и однесувањето во рамки на деловни објекти, одвојувајќи ги физичките од логичките структури на податоците. Со тоа се овозможува дефинирање на стандардното однесување еднаш, за повторно да се употреби низ целата апликација, со што се забрзува развојот на апликации и се олеснува примената на трослојната апликациска архитектура.
Компоненти
Објектите опишани во апликацискиот модел се користат во компонентите. Програмерите ги вклучуваат во компонентите објектите од моделот со нивно цртање во едиторот за презентациски компоненти, или со нивно вметнување во стеблото на компонентната структура. Исто така, тие може да додадат објекти на ниво на компонента коишто не се во апликацискиот модел, како што се контролни полиња, менија и компонентни променливи.
Компонентите ги наследуваат одликите и тригерите дефинирани во апликацискиот модел со нивно копирање од моделот во компонентите. Дефинициите можат да се сменат на ниво на компонента за да се овозможи специфична функционалност на компонентата. Ова ја прекинува врската помеѓу апликацискиот модел и компонентата (иако е можно врската да се обнови). Ако одликите или кодот во моделот се променат на ниво на модел, сите компоненти кои го содржат тој објект треба само повторно да се компајлираат за да ги наследат новите дефиниции. Ова е особено корисно при одржување на апликациите, и гарантира дека правилата поврзани со објектот се достапни секаде каде што тој и се користи.
Uniface репозиториум (складиште)
Uniface одржува база на податоци којашто ги содржи неговите метаподатоци за да се овозможи повторна употреба на апликациските модели, дефинициите на компонентите, нивниот изглед, процедуралниот код и така натаму. Репозиториумот е приватен и е наменет за пристап исклучиво преку UDE (Uniface средината за развој на апликации) за да се обезбеди неговиот интегритет. Сепак, структурата на репозиториумот е документирана, со што се овозможува (иако не се препорачува) директен интерфејс со него, на пример, за подготовка на извештаи.
Со користење на централизиран репозиториум, развојот на апликации може да се подели меѓу повеќе тимови на програмери. Uniface може да се интегрира со секој систем за контрола на изворен код (SCCS – Source Code Control System) кој ги поддржува спецификациите на заедничкиот интерфејс за контрола на изворен код на Microsoft (Microsoft Common Source Code Control Interface Specification). Функционалноста на системот за контрола во рамките на Uniface зависи од специфичниот SCCS кој се употребува бидејќи различните произведувачи на софтвер го толкуваат и имплементираат MS CSCC API на различен начин. Како резултат на тоа, функционалноста и однесувањето варира во зависност од употребуваниот систем.
Дистрибуција на апликациите
Uniface апликациите можат да бидат распоредени на платформи од меинфрејм (mainframe) до мобилни, без промена на кодот. Компонентите (и останатите објекти, како што се почетните процедури, менијата, панелите, симболите, глобалните и вклучени Proc записи) се компајлирани и собрани во објекти кои можат да бидат спакувани во ZIP податотеки и распоредени на било која платформа. Објектите се обработуваат со помош на виртуелна машина и преведувач специфичен за платформата. (Java и многу други јазици подоцна го следеа Uniface во овој поглед.) Компонентите можат да бидат развиени на една платформа, а да се обработат на друга, ако на таа платформа е присутна виртуелната машина.
Поврзување со бази на податоци