Uniface

Од Википедија, слободната енциклопедија
Прејди на: содржини, барај

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 може да се користи во комплексни системи коишто содржат критични податоци од витално значење за поддршка на деловните процеси, како што се веб-базирани апликации за електронска трговија, финансиски трансакции, администрација на плати, како и контрола на инвентар. Во моментот го користат илјадници компании во повеќе од 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 – сервиси коишто содржат централизирани, едноставни оперативни правила за поединечни ентитети/табели.

Слојот коjшто го дефинира пристапот до податоци (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 во овој поглед.) Компонентите можат да бидат развиени на една платформа, а да се процесираат на друга, ако на таа платформа е присутна.виртуелната машина.

Поврзување со бази на податоци[уреди]

Uniface им пристапува на многуте бази на податоци и системи на датотеки кои ги поддржува со помош на конектори (или драјвери). Uniface DBMS конекторите ги мапираат и конвертираат типовите на податоци дефинирани во Uniface, во најсоодветниот формат за одреден медиум за складирање на податоци. Во тек на извршувањето, можно е да се проследат параметри за да се повикаат (или оневозможат) модули специфични за базата на податоци. Доколку конекторот за базата на податоци е лиценциран, можно е да се врши конверзија на податоци помеѓу различни извори на податоци. Uniface исто така обезбедува интерфејс (Database Connector Interface), кој може да се користи за креирање на сопствени конектори за бази на податоци.

Лиценцирање[уреди]

Лиценцирањето се изведува преку дистрибуираниот лиценцен менаџер на Compuware (Compuware Distributed License Manager), којшто претставува систем за дистрибуција на лиценци до клиентите врз основа на побараување. Менаџерот е имплементиран како лиценцен сервер, со што се исклучува потребата за чување на лиценци локално.

Историја на Uniface[уреди]

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

  • Концептуална шема - дефиниција на сите податочни елементи и врски помеѓу нив. Постои само една концептуална шема за базата на податоци. Uniface ја имплементира концептуалната шема како апликациски модел (во различни верзии на Uniface исто познат како модел на деловни објекти - Business Object Model, или како модел на апликациски објекти – Application Object Model).
  • Надворешна шема - различни надворешни (кориснички) погледи врз податоците. Може да има повеќе надворешни шеми за базата на податоци. Uniface ги имплементира надворешните шеми како компоненти. Во текот на еволуцијата на Uniface, надворешните шеми станаа форми (Forms); невидливите форми коишто се извршуваат во позадина без приказ на корисникот станаа сервиси (Services); сервисите се поделија на сесиски сервиси (Session Services) наменети за објектите во слојот на оперативната логика, и ентитетски сервиси (Entity Services) кои можат да бидат или во слојот на оперативната логика, или во слојот којшто го дефинира пристапот до податоците. Формите кои беа користени за печатење наместо да бидат прикажани на екран, станаа извештаи (Reports). Веб страниците (USP – Uniface Server Pages) беa воведени за развој на веб апликации, а подоцна беше воведена и динамична веб страница (DSP – Dynamic Server Page) за поддршка на Web 2.0 функционалност.
  • Внатрешнa шема - дефиниција на физичката репрезентација на складираните податоци. Uniface ја препушта имплементацијата на внатрешната шема на многуте системи на релациски бази на податоци со коишто може да се поврзе, овозможувајќи на тој начин да биде независен од употребуваната база на податоци.

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

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

Uniface постојано еволуира за да се справи со новите технологии и апликациски архитектури. Ова е од клучно значење за неговиот успех, бидејќи апликациите развиени со 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 бази и системи на датотеки, и продуктот сега беше достапен на MS-DOS, VMS, OS/2, Stratus VOS и UNIX . Исто така, беше воведена поддршка за Јапонското писмо.

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

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

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

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

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

Uniface 8 (2001): Uniface 8 донесе големи промени во областа на интеграција на процеси. Uniface рутерот и серверот овозможија размерлива и врамнотежена апликациска дистрибуција. Web Request Dispatcher-от (WRD) го замени URD, подобрувајќи ги перформансите. Беше воведена поддршка за веб сервиси со SOAP и XML. Поврзувањето и интероперабилноста беа подобрени, и беше воведен метод за имплементирање на 3-слојна апликациска архитектура. Беа воведени конектори за SOAP, COM, CORBA и MQSeries; управувањето со екраните и датотеките беше подобрено; беше воведена нова алатка за подобрена апликациска дистрибуција; беа вовдени нови подтипови на компоненти за поддршка на 3-слојната архитектура; беа додадени справувачи (handles) за работа со компонентни инстанци, и беше воведено автоматско ослободување на меморија (garbage collection).

Uniface 9 (2006): Uniface 9 беше фокусиран на графичкиот кориснички интерфејс (GUI) и генерално подобрувања на употребливоста на продуктот, полесна дистрибуција и интеграција. Беше воведена поддршка за Windows Mobile, а конфигурацијата и дистрибуцијата беа поедноставени со користење на компримирани (ZIP) архиви. Поддршката за Unicode само ги подобри и така импресивните повеќејазични можности, а подобрувањата во развојот на веб апликации и ракувањето со XML го донесе Uniface во линија со индустриските стандарди. Воведувањето на можноста за динамичко поместување на полињата во формите отстрани некои стари бариери за подобрување на флексибилноста.

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

Uniface 9.4 (2010): И покрај тоа што се води како подверзија на 9, Uniface 9.4 воведе доволно големи новини за да се смета за засебна верзија. Главен фокус беше ставен на т.н. богати интернет апликации (Rich Internet Application - RIA), со што е можно да се развиjат Web 2.0 апликации со богата функционалност на клиент/сервер апликации, a со користење на истите алатки и методологии кои се користат за развој на класичните клиент/сервер апликации. Поддршката за локални јазици и локации е значително подобрена, како и поддршката за HTML електронска пошта (HTML e-mail), зголемена безбедност и енкрипција.

Uniface 9.5 (2011): Uniface 9.5 ја подобри интеграцијата на продуктот со светската пајажина. Воведувањето на JavaScript посредник, заедно со други подобрувања, овозможи процесирање на страната на клиентот наместо на серверот, со што се подобрија перформансите, интеграцијата, функционалноста и употребливоста. Управувањето со мрежни сесии сега вклучува и зголемена безбедност, а процесирањето на веб сервиси поддржува комплексни типови на податоци за сервиси базирани и на SOAP, и на REST протоколот. Исто така, воведени се подобрувања за критични клиент/сервер апликации, особено во областа на мрежниот посреднички елемент (grid widget).

Наводи[уреди]

Надворешни врски[уреди]