Hoppa till innehÄllet

Webobjects

FrÄn Wikipedia
(Omdirigerad frÄn WebObjects)

Webobjects, stiliserat som WebObjects, Àr en applikationsserver som har i sitt ursprung i företaget Next som grundades av Steve Jobs. I och med att företaget och dess patent köptes (tillbaka) av Apple 1996 följde teknologin med till Apple.

Webobjects var vÀrldens första webbapplikationsserver nÀr den lanserades 1996 av Next och medförde att man pÄ mycket kort tid kunde utveckla komplexa webbapplikationer och detta gjorde att mÄnga amerikanska storföretag som till exempel Disney satsade pÄ att utveckla lösningar ovanpÄ Webobjects. Produkten var vid den tiden exklusivt inriktad pÄ företagsmarknaden med ett pris pÄ 50 000 USD och var baserad pÄ Objective-C. I och med att Apple tog över utvecklingen av produkten skrevs produkten om till att bli till 100% baserad pÄ Java-teknologi och plattformen Àr certifierad att köras pÄ J2EE-baserade servrar om man sÄ vill. Priset sÀnktes ocksÄ kring 2001 till 700 USD, vilket av naturlig skÀl ledde till en smÀrre chock för dem som en mÄnad tidigare betalt det gamla priset.

Utvecklingsmiljön till Webobjects fanns tidigare inte pÄ MacOS 7,8,9 utan man var hÀnvisad till Windows eller den gamla hybridprodukten Mac OS X Server 1 (en slags prototyp till nuvarande operativsystem). Formellt var driftsÀttning certifierad pÄ Mac OS X Server, Windows 2000 och Solaris 8 men eftersom endast Java 2 Standard Edition krÀvs för att köra den inbyggda servern var det mÄnga som ocksÄ anvÀnde Linux. Den senaste förÀndringen innebÀr att Webobjects Àr gratis och ingÄr numera i Apples nya utvecklingsmiljö Xcode vilket innebÀr att Mac OS X för utveckling och Mac OS X Server Àr de enda certifierade plattformen. Licensen tillÄter dock gratis driftsÀttning pÄ valfri plattform eller som War-fil i en J2EE-container.

Vad Àr Webobjects egentligen?

[redigera | redigera wikitext]

Webobjects som begrepp Àr inledningsvis lite förvirrande eftersom det egentligen Àr tre saker:

  • En J2SE-baserad applikationsserver
  • En uppsĂ€ttnings utvecklingsmoduler (Webobjects Builder, Webservices Assistant, Enterprise Objects Modeler tillsammans med Xcode)
  • En uppsĂ€ttning klasser och ramverk för snabb utveckling av webb- och javaklientbaserade tjĂ€nster.

Tekniken i Webobjects har sedan starten byggt pÄ en uppdelning i applikationer i tre lager.

Databaslagret/EOF

[redigera | redigera wikitext]

Det undre lagret bestÄr av databashanteraren som kan vara i princip valfri SQL-baserad DBMS - det enda kravet Àr att det finns en JDBC-drivrutin. Databaslagret med dess tabeller, fÀlt och relationer mappas med hjÀlp och verktyget Enterprise Objects Modeler till Javaklasser som lÀggs till projektet. Dessa klasser implementerar sedan Enterprise Objects Framework (EOF) som innehÄller alla funktioner för att lÀsa, cacha och skriva till databasen. Det Àr till och med sÄ att utvecklaren inte behöver skriva en enda rad SQL-kod utan begÀr bara Java-objekt i sin kod som vid behov lÀses och skrivs till databasen. Detta innebÀr ocksÄ att det Àr möjligt att byta databashanterare Àven i mycket stora applikationer utan att behöva skriva om alla kod.

WebgrÀnssnitt

[redigera | redigera wikitext]

Webobjects Builder Àr i grunden WYSIWYG (nÀstan) en HMTL-editor men som har möjligheten att bÄde exponera klasserna som genererades av Enterprise Objects Modeler men ocksÄ de Javaklasser som finns i applikationen i övrigt. PÄ sÄ sÀtt kan man med hjÀlp av drag-and-drop koppla sÄvÀl datakÀllor som variabler och funktioner till olika objekt pÄ sin webbsida. Webobjects Builder kan ocksÄ skapa grunden för variabler och funktioner i den underliggande Javakoden med en enkel knapptryckning.

Javakod (Business logic)

[redigera | redigera wikitext]

Slutligen anvÀnds Xcode för att hÄlla ihop projektet med definitionsfiler för EO Modeler, HTML-koden och bindningarna samt sjÀlva Java-klasserna. Xcode har stöd för en mÀngd olika programsprÄk, dÀribland Java med bland annat code-completion för Java/Webobjects. I Xcode skriver man sjÀlva logiken för sin webbapplikation och implementerar dÄ Webobjects Framework som innehÄller massor av funktioner för att skapa webbsidor och associerade funktioner för detta. Det Àr ocksÄ relativt lÀtt att inkludera externa klasser som implementerar olika specialfunktioner för generering av PDF:er, diagram, bildhantering och annat.

Web Services

[redigera | redigera wikitext]

I och med att utvecklingen av s.k. Web Services tagit stormsteg framÄt har Àven Webobjects fÄtt stöd för att bÄde konsumera och producera sÄdana tjÀnster och det görs med Webservices Assistant som i mÄnga fall innebÀr att man kan skapa grunden till en tjÀnst utan att skriva en rad kod.

OvanpÄ allt detta finns kanske den mest avancerade delen och det Àr regelmotorn. Om EOF automatiskt genererar SQL-kod sÄ kan man sÀga att denna automatiskt genererar Javakod och det innebÀr att om man tar sig det extra jobbet att implementera detta ramverk kan man pÄ mycket kort tid generera en stor mÀngd kod för sin webbapplikation. Ett exempel pÄ detta Àr om man bygger en applikation med en rad tabeller som tillsammans ska lÀnkas ihop för att bygga ett system för att hantera innehÄll pÄ webben. DÄ behövs tabeller för att lagra en mÀngd olika typer av data och alla dessa behöver ett eget admingrÀnssnitt. IstÀllet för att göra alla dessa till egna komponenter kan man istÀllet genom regelmotorn konfigurera denna sÄ att dessas grÀnssnitt och koden för dessa genereras. PÄ sÄ sÀtt gÄr det ocksÄ mycket snabbare att göra förÀndringar eftersom Àven denna del av applikationen kan konfigureras istÀllet för kodas/utvecklas.

Webobjects har dessutom klasser för att anvÀnda en Javaklient som grÀnssnitt istÀllet för en webblÀsare. Plattformen har ocksÄ stöd för XML implementerat varför det ocksÄ Àr möjligt att generera XHTML, WML eller annat XML-baserat innehÄll.

Externa lÀnkar

[redigera | redigera wikitext]