Zope

Из Википедије, слободне енциклопедије
Иди на навигацију Иди на претрагу
Zope
Zope logo.png
Веб-адресаwww.zope.org
КомерцијалностНе
Доступан наЕнглески
Тренутни статусАктиван

Zope је друштвени пројекат састављен од апликационог сервера бесплатног и отвореног кода, објектно-орјентисаног написаног у Пајтон програмском језику. Zope је скраћено од "Z Object Publishing Environment", и био је први систем који је користио сада већ популарну методологију објављивања објекта за интернет.[1][2] Zope је препознат као пресудна апликација Пајтона, апликацију која је помогла да Пајтон постане препознат.[3][4]

У протеклих неколико година, Zope заједница је створила још неколико додатних веб фрејмворкова са различитим циљевима и принципима, али са дељењем филозофије, људи, и изворног кода. Zope 2 је и даље најраспрострањенији од ових фрејмворкова, највише захваљујући Plone систему управљања, који је покренут под Zope 2. BlueBream (раније назван Zope 3) је мање распрострањен али се налази иза неколико великих сајтова, укључујући Launchpad. Grok је покренут као фрејмворк који је био више пријатељски настројен према програмеру, "Zope 3 за људе из каменог доба", и у 2009. Pyramid (ex BFG) је постао популаран у оквиру Zope заједнице као минималистички фрејмворк базиран на Zope принципима.

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

Zope корпорација је основана током 1995. у Фредериксбург, Вирџинија под именом Digital Creations, као заједничко улагање са InfiNet. Компанија је направила поверљив рекламни енџин за интернет. Током 1997, компанија је постала приватна у независном власништву. Софтверски инжењери компаније су вођени од стране CTO Џим Фултона. PythonLabs, аутори Пајтона, су постали део компаније током ране 2000. Пајтон оснивач Гвидо ван Росум је напустио компанију Corp током 2003.[5]

Оно што је данас познато као Zope 2 је настало спајањем три одвојена производа – Bobo, Document Template, и BoboPOS – у Principia апликациони сервер. По налогу њеног највећег инвеститора, Оптикалити Вентурес, Принципиа је поново објављен као слободан софтвер под називом Zope 1998. Bobo, а самим тим Zope, био је прво издавачко решење веб објекта.[2]

У новембру 2004. године, Zope 3 је пуштен. Zope 3 је комплетан препис који чува само оригинални ZODB објекат базе података. Директно је намењен за предузећа развоја веб апликација помоћу најновије развојне парадигме. Зопе 3, међутим, није компатибилан са Zope 2, тако да не можете покренути Zope 2 апликације на Zope 3. Првобитно је требало да се уведе уназад компатибилни слој, тако да ће Zope 2 софтвер ићи на Zope 3. Уместо модула познат као Five, представио је нове Zope 3 парадигме у Zope 2, иако пуна компатибилност није ни тада могуће на тај начин.

Постојање два некомпатибилна Веб фрејмворка названих Zope је направило доста конфузије. Као одговор, у јануару 2010, Zope 3 је преименован у "BlueBream".[6][7] "Zope" и "blue bream" су имена врста рибе, шпицер.

Zope Фондација[уреди]

Zope Фондација је организација која промовише развој Zope платформи подржавајући заједнице да развијају и одржавају одговарајуће софтверске компоненте. Заједница укључује софтвер отвореног кода, документацију и сарадника веб инфраструктуре, као и пословних и организационих потрошача софтверске платформе. Она управља zope.org сајтовима, инфраструктуру за колаборацију над отвореним кодом.

Zope 2
Zope менаџмент интерфејс у Веб претраживачу.
Zope менаџмент интерфејс у Веб претраживачу.
Програмер(и)Zope Корпорација
Прво издање1998.
Стабилно издање
2.13.23 / 29.06.2015.
Написан уПајтон
Оперативни системCross-platform
ТипВеб
ЛиценцаZope Public License
Веб-сајтzope2.zope.org

Zope 2[уреди]

Zope сајт се обично састоји од објеката у Zope Бази Података Објеката, не од датотека на фајл систему, као што је уобичајено у већини веб сервера. Ово омогућава корисницима да искористе предности објекта технологија, као што је енкапсулација. Zope мапира линкове за објекте које користе заштитну хијерархију таквих објеката; поступци су сматрани да буду садржани у њиховим објектима такође. Подаци се могу чувати у другим базама података, или на фајл систему, али ZODB је најчешћи решење.

Zope обезбеђује два механизма за HTML темплејтинг: Document Template Markup Language (DTML) и Zope Page Templates (ZPT). DTML је језик базиран на таговању који дозвољава имплементацију једноставног скриптинга у шаблонима. DTML има одредбе за променљиво укључивање, условљавање, и петљи. Али, DTML има велике мане: DTML тагови смењивањем са HTML праве невалидна HTML документа, а and немарно укључивање логике у шаблоне резултује се веома нечитљивим кодом. ZPT је технологија која поправља ове проблеме. ZPT шаблони могу бити или веома добро написана XML документа или HTML документа. ZPT нуди веома органичени сет алатки за условно укључивање и понављање XML елемената. Сходно томе, шаблони су обично прилично једноставни, са највећом логиком имплементираном у Пајтон коду. Једна главна предност шаблона ZPT је та што могу бити промењени у највишим графичким HTML едиторима. ZPT такође нуди директну подршку за интернационализацију.

Zope 2 је склон Plone cистему управљања, као и ERP5 систем отвореног кода ЕРП.

BlueBream[уреди]

BlueBream
Програмер(и)Zope Корпорација
Прво издање2004.
Стабилно издање
1.0 / 18.01.2011.
Написан уПајтон
Оперативни системCross-platform
ТипВеб
ЛиценцаZope Public License
Веб-сајтbluebream.zope.org

BlueBream је преписка од стране Zope програмера Zope 2 веб апликационог сервера. Био је написан под именом "Zope 3", али постојање два некомпатибилна фрејмворкова са истим именом је направило доста конфузије, и Zope 3 је преименован у "BlueBream" током јануара 2010.[8][9] BlueBream је дистрибуиран под лиценцом Zope Public License[10] и тиме је бесплатан.

Zope 2 се показао као користан фрејмворк за развој Веб апликација, али његово коришћење је показало неколико ограничења. Да споменемо пар, прављење Zope 2 производа укључује копирање доста boilerplate кода – "магичног" кода – који просто мора да буде ту, и уграђени интерфејс менаџмента је компликован за подешавање или замењивање. Zope 3 је преписка софтвера који покушава да поправи ова ускраћивања а да притом задржи све предности Zope-а које су га учинили популарним. BlueBream је базиран на компонентно оријентисано програмирање које чини да буде једноставно мешање софтверских компоненти са различитих извора написаних у Пајтону. Иако оригинално осмишљен као замена за Zope 2, Zope Архитектура Компоненте је уместо тога враћена на Zope 2, почевши са Zope 2.8. Многе Zope платформе као што је Plone пролазе кроз исти тип део-по-део преписке. Прво продукцијско издавање новог софтвера, Zope X3 3.0.0, је издат 6. новембра, 2004.

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

Zope 3 пројекат је започет у фебруару 2001. као покушај да се направи нова верзија Zope-а као скоро потпуну преписку, са циљем да се задрже све успешне функције од Zope 2 са исправљањем неколико његових ускраћења. Циљ је био да се направи платформа за веб апликације која би била више пријатељски настројена према програмерима него што је Zope 2. Пројекат је започет са прављењем компонентно оријентисаним програмирањем Компонентно оријентисано програмирање, који дозвољава прављење кода у мале јединице са интроспектабилним интерфејсом. Интерфејси су подржани пакетом интерфејса имајући за циљ довођење функционалности експлицитно изјашењних интерфејсова у Пајтон језику. Прво продукцијско издавање овог софтвера, Zope X3, је издат 6. новембра, 2004. У јануару 2010. Zope 3 је преименован у BlueBream.[8]

Технологија[уреди]

Циљ пројекта је да омогући програмерима да користе Zope да разоткрију произвољне Пајтон објекте као модел објеката на интернету без потребе да ови објекти испуњавају посебне захтеве понашања. У Zope 2 је било много захтева понашања како би се омогућило да учествују предмети у фрејмворку, што је резултирало великом количином миксин основних класа и специјалних атрибута. BlueBream користи Модел / преглед архитектуру, раздвајањем презентациног кода са проблемом кода домена. Погледи и модели су заједно повезани са архитектуром компоненте.

Библиотеке у основи BlueBream су еволуирале у збирку корисних библиотека за развој веб апликација, а не у један, монолитни апликативни сервер. BlueBream укључује посебне пакете за интерфејс, архитектуру компоненти, HTTP сервер, издавача, Zope објекта база података (ZODB), Zope Шаблони Страница, I18N, безбедносну политика, и тако даље. Компонента архитектура се користи да залепите све ово заједно. Компонента архитектура је подешена помоћу ZCML (Zope Configuration Markup Language), што је језик XML базираног језика конфигурационог фајла.

Zope 3 пројекат је практиковао спринтове над производњом сотвера отвореног кода.[11] Спринтови су интензивне сесије програмирања када програмери, често из различитих земаља, се сакупе у једну просторију и раде заједно неколико дана или чак недеља. Током спринтова, коришћено је доста метода од развоја агилног софтвера, као што су парно програмирање и развој тестирањем. Поред циља за развојем софтвера, спринтови су такође корисни за географски раздвојене програмере да се упознају и да привуку нове људе у пројекат. Такође служе као начин на који учесници могу да науче један од другог.

BlueBream је сматран стабилним фрејмворком, коришћен над производњом пројеката широм света, највише примећеног на Launchpad.

Zope Алатка[уреди]

Као резултат развоја Zope 3 / BlueBream, сада постоји доста независних Пајтон пакета коришћених и програмираних као део BlueBream-а, и иако многи од њих је могуће користити ван BlueBream-а, многи такође не. Zope Алатка (ZTK) пројекат је започет да би се разјаснило које пакете је могуће користити ван BlueBream-а, и да се унапреди поновно коришћење тих пакета. Тиме Zope Алатка је база за Zope фрејмворкове. Zope 2.12 је прво издање веб фрејмворка који користи Zope Алатку, и Grok и BlueBream су планирани да имају издавање базирано на ZTK током 2010.

Grok[уреди]

Током 2006. Grok пројекат је започет од стране многобројних Zope 3 програмера који су хтели да Zope 3 технологију учине више агилном у коришћењу и више доступном новим програмерима. Grok је од тад добијао регуларна издавања и његова главна технологија (Martian, grokcore.component) такође виђа побољшање у другим Zope 3 и Zope 2 базираним пројектима.

Zope Шаблони Страница[уреди]

Као што је претходно напоменуто, Zope Шаблони Страница саме по себи су XHTML документи, што значи да могу бити прегледани и промењени коришћењем нормалних HTML едитора или XHTML алаткама (велика предност у поређењу са другим шаблонима језика коришћеним за веб апликације). Шаблони такође могу бити проверени за XHTML усклађеност тако да можете бити прилично сигурни да ће се аутоматски проширити у тачан XHTML.

Какогод, ови шаблони страница нису намењени да буду израђени као такви. Уместо тога, додати су им накнадни елементи и атрибути у специјалним XML знацима (погледајте испод). Ова додатна информација се користи да се опише како би требало да шаблон странице ултимативно буде обрађена.

Ево неколико простих примера. Да се условно укључи одређени елемент, као што је div елемент, једноставно додати tal:condition атрибут на елемент као што следи:

<div tal:condition="...">
  ...
</div>

Да контролишете шта се појављује у елементу, користите tal:content атрибут овако:

<h1><span tal:content="..."/></h1>
...

Коначно, да унесете или замените вредности атрибута, користите tal:attributes атрибут као испод. Можете користити Пајтон да промените href током покретања програма.

<a href="" tal:attributes="href python:'http://someurl.com/%s'%someobject">...</a>

Ово је веома површно објашњење Zope Шаблона Страница. Понашање Zope Шаблона Страница је скоро потпуно објашњено шаблонским језиком, фиксираном на TAL, TALES, и METAL спецификације:

  • Template Attribute Language (TAL),
  • Template Attribute Language Expression Syntax (TALES),
  • Macro Expansion Template Attribute Language (METAL).

Важни софтвер који користи Zope[уреди]

SchoolTool је систем информисања студената отвореног кода који користи Zope.

Види још[уреди]

Референце[уреди]

  1. ^ Lerner, Reuven M. „At the Forge - Assessing Ruby on Rails”. Linux Journal. Приступљено 26. 3. 2010. »Zope also pioneered the idea of object publishing, in which a URL describes the method that should be called on a particular object.« 
  2. 2,0 2,1 Philip J Eby (11. 12. 2003). „Comment on "Lisp and Productivity". Joel on Software. Приступљено 26. 3. 2010. »In 1997, Jim Fulton (the CTO at Zope Corp) developed a technique he called "Object Publishing", and implemented in a library called the Python Object Publisher (aka Bobo). The object publishing metaphor is found in many Python toolkits today; in other languages it's found only in crippled form, at best.« [мртва веза]
  3. ^ Lutz, Mark (2006). „18: Advanced Internet Topics”. Programming Python (3 изд.). O'Reilly Media. Приступљено 27. 3. 2010. »The use of Zope has spread so quickly that many Pythonistas have looked to it as a Python Killer Application - a system so good that it naturally pushes Python into the development spotlight.« 
  4. ^ Udell, Jon (2000). „Zope Is Python's Killer App.”. BYTE. Архивирано из оригинала на датум 2. 3. 2000. Приступљено 4. 6. 2011. 
  5. ^ Guido van Rossum Leaves Zope.com
  6. ^ „BlueBream documentation”. Приступљено 17. 1. 2010. 
  7. ^ „Zope Foundation Board of Directors meeting 2010-10-14”. Архивирано из оригинала на датум 21. 01. 2010. Приступљено 17. 1. 2010. 
  8. 8,0 8,1 1. Introduction — BlueBream v1.0b4 documentation
  9. ^ „Архивирана копија”. Архивирано из оригинала на датум 21. 01. 2010. Приступљено 11. 11. 2015. 
  10. ^ „FAQ - General 5: What is the license of Zope 3?”. Архивирано из оригинала на датум 22. 08. 2009. Приступљено 11. 11. 2015. »Zope 3 is licensed under Zope Public License, Version 2.1 (ZPL).« 
  11. ^ „Архивирана копија”. Архивирано из оригинала на датум 14. 08. 2012. Приступљено 11. 11. 2015. 

Литература[уреди]

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