Zope (webtoepassingsserver)

Van Wikipedia, de gratis encyclopedie
Spring naar navigatie Spring naar zoeken

Dev (Z O bject P ublishing nvironment E) is een objectgeoriënteerde , in de programmeertaal Python geschreven, gratis webtoepassingsserver met open source-code . Zope vertegenwoordigt een platform voor de realisatie van webapplicaties en is zeer geschikt voor het creëren van dynamische webpresences, omdat het voornamelijk is ontworpen om de inhoud van het ontwerp van de website te scheiden. De broncode van Zope werd in 1996 gedeeltelijk open source , de hele applicatie in 1998.

verhaal

In 1995 werd Digital Creations opgericht in Fredericksburg (Virginia) als een joint venture van een fusie van verschillende dagbladen. De eerste medewerkers waren Paul Everitt en Bob Page. Andere medewerkers zoals Jim Fulton kwamen er snel bij. In mei 1997 werd het dagbladconsortium Digital Creations verkocht, kregen de partners Paul Everitt en Bob Page de naam, de software en de medewerkers.

Op dat moment werkten sommige bedrijven buiten Digital Creations al met hun gratis product Bobo. Een van hen was Hadar Pedhazur , die destijds ook Digital Creations benaderde met de wens om investeerder te worden. De gesprekken werden echter niet met succes bekroond, want Hadar zag de toekomst van Digital Creations als dienstverlener, terwijl Paul Everitt en Bob Page hun producten, waaronder de Principia Application Server, als propriëtaire applicaties wilden verkopen. Een jaar later echter, nadat het succes niet zo succesvol was geweest als gehoopt, benaderde Hadar Digital Creations opnieuw en werd overeengekomen om een ​​servicebedrijf te worden, om de producten te bundelen in een product genaamd Zope en als gratis Publish-software.

In november 2004 werd Zope 3 uitgebracht. Het is bijna volledig herschreven en bevat alleen de originele ZODB-objectdatabase en de "ZPT Template Engine". Op 17 januari 2010 werd Zope 3 omgedoopt tot "BlueBream" om het duidelijker te maken voor Zope 2.

Er is een snede gemaakt met BlueBream. In plaats van achterwaarts compatibel te blijven met Zope 2, werd besloten om de interne structuur fundamenteel te herzien. Een van de innovaties is een componentenarchitectuur. Een neveneffect is dat veel componenten nu ook buiten Zope gebruikt kunnen worden. Op dit moment worden zowel Zope 2 als BlueBream actief parallel ontwikkeld.

De directe doorontwikkeling van Zope 2 kreeg de naam Zope 4 naar versie 2.13. Zope 4 is compatibel met Python 3 en werd uitgebracht op 10 mei 2019. [1]

Kenmerken

Uitbreidbaarheid

De functionaliteit van Zope kan (Nederlands: Producten) door een groot aantal vrij verkrijgbare extensies, bekende producten, aangepast worden. B .:

Deze extensies worden elk in hun eigen map in het bestandssysteem opgeslagen en kunnen worden verwijderd zonder resten achter te laten door de map te verwijderen en Zope opnieuw te starten. Het volledige bereik van de programmeertaal Python is voor u beschikbaar, inclusief de integratie van bibliotheken die zijn geschreven in Python of C.

De producten worden ontwikkeld en onderhouden door de inmiddels zeer grote gebruikersgemeenschap.

Objectdatabase

De basis van veel van de eigenschappen van Zope is de ZODB-objectdatabase , waarin de dynamisch veranderende inhoud wordt opgeslagen (mits deze niet afkomstig is uit aanvullend gekoppelde relationele databases). De ZODB bevat alle bestaande objecten in een hiërarchische boomstructuur en vormt de basis van de acquisitie .

Het is zeer krachtig en kan ook onafhankelijk van Zope worden gebruikt.

Acquisitie

Een kenmerkend concept is dat van acquisitie, dat wil zeggen overerving van het bevattende object . Op deze manier kunnen eigenschappen en methoden worden ' overgeërfd ' in een hele subboom; dit is de belangrijkste basis voor dynamische internetaanwezigheid gerealiseerd met “Zope standard tools”.

Ontwikkelingstalen

Op het gebied van ontwikkeltalen biedt Zope de Document Template Markup Language (DTML), de programmeertaal Python en de Zope Page Templates (ZPT). DTML wordt nog steeds heel vaak gebruikt, maar wordt nu als achterhaald beschouwd in de Zope-omgeving. Het gebruik van Python en ZPT maakt een betere scheiding van representatie en programmalogica mogelijk en verdient daarom de voorkeur boven DTML.

Een Python-programma kan bijvoorbeeld als intern Python-script (Script (Python)) worden opgeslagen of als externe methode worden geïntegreerd. Een intern Python-script is opgeslagen in de objectdatabase ZODB en de functionaliteit is om veiligheidsredenen beperkt. Zo wordt de toegang tot het bestandssysteem geblokkeerd en is de objectdatabase toegestaan. Een externe methode daarentegen bevindt zich in het bestandssysteem en is geïntegreerd via een Zope-object. Er zijn geen toegangsbeperkingen voor deze methoden.

veiligheid

Zope heeft een security framework die is gebaseerd op de zogenaamde rollen en zorgt voor een precieze definities van wie mag wat waar te doen. Per object kan worden bepaald welke rol voor welk type toegang nodig is; deze rollen kunnen ook lokaal aan de individuele gebruikers worden toegewezen om hen b.v. B. Alleen toegang verlenen in een bepaalde substructuur.

Daarnaast werkt de webgebruiker niet in het bestandssysteem van de server, zoals bij klassieke scripttalen (zoals PHP, Perl, etc.), maar in een aparte virtuele omgeving. Hieruit doorbreken is alleen mogelijk als de ontwikkelaar dat wenst. Dit systeem verhindert de toegang tot andere informatie die op de server is opgeslagen en ondermijnt zo veelvoorkomende aanvalspatronen.

HTTP-server

Zope bevat de Zserver -webserver , een verbeterde versie van de Medusa- server geschreven in Python. Een andere webserver is niet nodig, maar kan worden gebruikt om bijvoorbeeld Zope samen met een Apache -webserver te draaien.

Vanaf versie 2.13 kan Zope ook met WSGI worden bediend.

schaalbaarheid

Zope is in staat tot software-side multithreading . De belastingsverdeling van een Zope-instantie over meerdere processors wordt voorkomen door een globale vergrendeling van de Python- interpreter. Met behulp van "Zope Enterprise Objects" (ZEO) is het mogelijk dat meerdere servers toegang krijgen tot dezelfde database. Op deze manier gedistribueerde systemen kunnen meerdere processors gebruiken.

draagbaarheid

Zope is bijna volledig geschreven in Python . Slechts enkele snelheidskritische systeemonderdelen zijn in C geschreven . Het gehele systeem kan in principe op alle platformen worden uitgevoerd met een Python- interpreter en een C- compiler .

Voorvertaalde pakketten zijn beschikbaar voor Linux, Windows, BSD, Mac OS X en Solaris. De pakketten bevatten Zope en Python.

Gebruiksvoorwaarden

De voorwaarden voor (verdere) publicatie zijn beschreven in de zogenaamde Zope Public License (afgekort tot ZPL ), [2] die ook door andere ontwikkelaars wordt gebruikt (zoals Mingw-w64 en PyPI [3] ).

Blauwe brasem

In 2004 werd een nieuwe Zope uitgebracht, eerst onder de naam Zope 3. Sinds 17 januari 2010 is de ontwikkeling voortgezet onder de naam BlueBream, [4] nadat de ontwikkelaars de naam Zope 3 gebruikten als belemmering voor verdere ontwikkeling en differentiatie van Zope 2 voelde. [5]

Zope 2 heeft bewezen een nuttig raamwerk te zijn voor webapplicaties, maar het ene of het andere idee vertoonde in de loop van de tijd zijn zwakke punten. Voor die tijd was Zope extreem uitbreidbaar, het was een van de sterke punten van Zope. Nieuwere technologieën zoals het Java-framework Spring hebben echter andere uitbreidingsmogelijkheden laten zien. Extensies waren nauw verbonden met Zope omdat ze alleen in Zope konden worden geïntegreerd door de basisklassen van Zope uit te breiden en omdat ze relatief veel code nodig hadden voor de Zope-integratie. Als vervanging hiervoor introduceerde Zope 3 het componentmodel , waar dit niet meer nodig is.

Een ander idee was om applicaties te ontwikkelen met behulp van de webinterface. Uw voordeel is dat wijzigingen direct in de webbrowser kunnen worden getest en direct van kracht worden. Het nadeel is echter de veel moeilijkere integratie van versiecontrolesystemen en krachtige editors voor de brontekst. Bovendien zorgen de beveiligingsmechanismen van de ontwikkeling via de webinterface ervoor dat veel Python-modules niet zomaar kunnen worden gebruikt. In BlueBream kun je geen programmalogica meer rechtstreeks via de webinterface schrijven. Programmalogica kan echter nog steeds eenvoudig worden getest omdat het niet langer aan Zope is gekoppeld en ook buiten Zope als een op zichzelf staand programma kan worden uitgevoerd.

Al met al zorgen de veranderingen er ook voor dat ontwikkelaars minder afhankelijk zijn van Zope. Dit had in het verleden veel ontwikkelaars afgeschrikt.

De eerste stabiele release (toen nog Zope 3) werd uitgebracht op 6 november 2004. De huidige versie is BlueBream 1.0a0, het komt overeen met Zope 3.4.1.

Grok

BlueBream (voorheen Zope 3) wordt door veel Zope-ontwikkelaars bekritiseerd omdat het te veel configuratie vereist in de vorm van XML-bestanden. In BlueBream kan veel worden geconfigureerd en gewijzigd met behulp van XML-bestanden. Om dit te doen, moet het expliciet worden gespecificeerd in de configuratiebestanden. Als reactie hierop hebben sommige ontwikkelaars Grok ontwikkeld, dat is gebaseerd op BlueBream.

Grok introduceert het DRY- principe als topprioriteit. DRY staat voor " Do not repeat yourself " (Engels voor "Repeat Dich nicht"). Wat het betekent is dat alles maar één keer moet worden gedefinieerd. Als de configuratie 90 procent van de tijd hetzelfde is, hoeft dit niet expliciet te worden geconfigureerd. Met Grok kunt u een complexe webtoepassing schrijven waarvoor één regel XML-configuratie vereist is.

Toepassingen

Een bekende toepassing van Zope is het Plone content management systeem . Het Schooltool- programma van de Shuttleworth Foundation wordt ook ontwikkeld met Zope 3 en het Launchpad- softwareontwikkelingsplatform is gebaseerd op Zope.

Een wat minder bekend open source CMS op basis van ZOPE is ZMS , dat - hoewel het oorspronkelijk door de ontwikkelaars is ontwikkeld voor voornamelijk onderzoeksdoeleinden en voor gebruik in de geneeskunde - nu veel wordt gebruikt. De speciale kenmerken zijn met name de gebruiksvriendelijke gebruikersinterface en de mogelijkheden voor multimedia-publicatie.

Het contentmanagementsysteem union.cms van de vakbond , dat onder de GNU General Public License valt, is minder bekend. Het werd ontwikkeld in opdracht van de United Service Union Ver.di en verving in 2003 het eigen CMS Hyperwave . Sinds 16 maart 2010 is ook de DGB- website gebaseerd op een doorontwikkeling van union.cms en daarmee op Zope.

web links

Individueel bewijs

  1. ^ Zope-releasegeschiedenis. Ontvangen 14 mei 2019 .
  2. tldrlegal.com/license/zope-public-license-2.0-(zpl-2.0) (Engels) - gepubliceerd op 10 juli 2015
  3. pypi.org/project/Zope/#license (Engels)
  4. E-mail naar de Zope-Dev Mailing-List , van Baiju M (toegankelijk 17 januari 2010)
  5. E-maildiscussie op de Zope Dev-mailinglijst (toegankelijk op 17 januari 2010)