1 / 39

Ú vod do aplikačn í ho serveru Zope

http ://www.zope.org/. Ú vod do aplikačn í ho serveru Zope. SLT2001 Skalský dvůr, 15.-18. února 2001 Michal Mühlpachr <michalm@nextra.cz>. Co je to Zope ?. P řední Open Source aplikační server, specializovaný na interaktivní obsah (správa obsahu, portály) Web, ftp, WebDAV, XML-RPC server

harmon
Download Presentation

Ú vod do aplikačn í ho serveru Zope

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. http://www.zope.org/ Úvod do aplikačního serveru Zope SLT2001Skalský dvůr, 15.-18. února 2001 Michal Mühlpachr<michalm@nextra.cz>

  2. Co je to Zope ? • Přední Open Source aplikační server, specializovaný na interaktivní obsah (správa obsahu, portály) • Web, ftp, WebDAV, XML-RPC server • Hypertext procesor - DTML • ORB (Object-Request Broker) • Objektový transakční databázový server • Integrační server - provázání s RDBMS • Autorizační server - správa práv • Prostý SQL relační databázový server

  3. Kde se vzal, z čeho je ? • Digital Creations Inc. • Zkušenosti v oblasti aplikačních serverů • Zope je akuálně zralý produkt • Business model s Open Source a venture kapitálem • Založen na Pythonu - „executable pseudo-code“ • Zvládnutelný kód ~88k řádků Python, ~45k řádků C (PHP4 kód ~150K řádků C) • Nedodává se na 2CD, distribuce cca 10MB • Dříve BOBO, Object Publisher

  4. Podobné produkty • Allaire Cold Fusion • PHP - Hypertext Preprocessor • JSP - Java Server Pages • RoXen Challenger • Microsoft IIS ASP - Active Server Pages

  5. Výhody 1/2 • Jednoduchost, podpora standardů • Modulární architektura • Mocný objektový model • Vše přes web, integrovaná ODB • Řád převažuje nad chaosem • Srozumitelné URLs • Integrace s externími daty, aplikacemi • Flexibilní vyhledávání • Rozšiřitelná bezpečnost

  6. Výhody 2/2 • Separace rolí • Delegace zodpovědnosti / pravomocí • Integrované prostředí • Skutečné web objekty • Komunita nadšenců • Mail listy cca 100 zpráv denně • Škálovatelnost • rychlé proniknutí do technologie • vhoné pro jednoduché i složité řešení • možnost oddělení aplikace a ODB • na běžném HW 1M hit/den

  7. Architektura Zope

  8. Architektura: Python • Interpretovaný, interaktivní, objektově orientovaný, high-level programovací jazyk • Flexibilní, jednoduchý, mocný • Škálovatelnost • zvládá jednoduché i komplikované problémy • příjemný jak pro začátečníky tak pro experty • Snadná údržba a čitelnost kódu • Rozšiřitelnost, balíčky, moduly, knihovny • C API - moduly, SWIG • Snadno použitelný z jiných prostředí (C, Java, ...)

  9. Architektura: ZServer • Asynchronní multiprotokolový server • PCGI, FastCGI • HTTP, XML-RPC (brzy SOAP), WebDAV • FTP • Monitor klient (Python interface) • Založenna Meduse (Sam Rushing) • Podobná architektura jako dva nejvýkonnější web servery: thttpd a Zeus

  10. Architektura: ZPublisher • Převod URL na objekty a metody - HTTP ORB • Umožňuje znovupoužitelné objekty, které se prezentují prostřednictvím různých metod • Zajišťuje jednoduchý URL design: • http://www.firma.cz/Obchod/Zaměstnanciraději než: • http://www.firma.cz/cgi-bin/zaměstnanci.cgi?oddělení=obchod nebo • http://www.firma.cz/cgi-bin/aplikace.cgi?id=123456?dotaz=zaměstnanci?oddělení=obchod • Předávání proměnných • Vývojář se nemusí starat o low level HTTP

  11. Architektura: Framework • Poskytuje integrované prostředí pro design web prezentací a skripty vložené v HTML (Dokumentové šablony / DTML) • Základní třídy objektů • soubor, adresář, DTML metoda, DTML dokument, obrázek • SQL metody, Z Search Interface, Z Catalog, Version • Rozšiřování novými třídami (ZClasses) • Zabudovaná správa autorizací (přístupových práv), napojení na různé systémy pro správu identit, identifikací a autentizací uživatelů

  12. Zope management model • Zope je designován pro správu pomocí webu • Jen málo operací (např. přidávání produktů) vyžaduje přístup k file systému • Obsah není „rozeset“ po file systému • Dvoupanelové UI podobně jako Windows Explorer, HTML 3.2 s JavaScriptem • Dostupný na:http://server.cz/. . ./manage • Cut, Copy, Paste, Rename, Export, Import

  13. Integrované prostředí - správa

  14. Jednoduché DTML • Editace index_html objektu

  15. Komplikovanější DTML

  16. Objekt • Objekt - data, kód • Zope obsahuje základní třídy objektů • kontejnerové - např. adresář • prosté - např. soubor • Atributy • Instance • Objektová perzistence - automat. aktivace • Z Class • Python Class

  17. Atributy objektu • Vytvoření atributu contact_email Accounting adresáře

  18. Dědičnost a získávání • Přirozené (geny - DNA) / výchova (různé chování v závislosti na prostředí) • Získávání od předků - hierarchie instancí (chování objektu v závislosti na umístění) objekt je v objektu … • Dědění v rámci hierarchie tříd (funkcionalita objektu) - objekt je kategorie ...

  19. ZODB • Ve své třetí major verzi (ZODBv3) • Transparentní správa cache • API, dotazovací jazyk • Plně transakční databáze s distribuovaným commit, dvoufázový commit • ZEO (Zope Enterprise Option) • Transakce ODB integrovány s RDBMS • Subtransakce • Transakci nad mnoha objekty lze rozdělit na menší části (zapisovat do FS po částech) • Verze (long running transactions) • Úplné undo

  20. Verze • Umožňují připravovat změny na produkčním webu a přitom privátně • Novou podobu prezentace / aplikace není potřeba připravovat odděleně • Uvedení nové verze prezentace / aplikace jen commitem verze • Potvrzování změn po částech, možnost návratu

  21. Mnohaúrovňové Undo • Dostupné všechny transakce od poslední komprimace objektové databáze • Undo neohrožuje objektovou integritu

  22. Vyhledávání v ODB • Kde jsem použil tento atribut ? • Co bylo modifikováno od včerejška ?

  23. ZSQL Metody • Realizují vyspělou integraci s relačními daty • Dynamické generování dotazů • Transparetní caching výsledků • Výsledky SQL dotazu jsou objekty, mají funkcionalitu • Nezávislé na konkrétním DB Engine • Integrovány s hlavními DB technologiemi

  24. Architektura SQL integrace Zope Framework Z SQL Method Oracle (ODBC) Database Adapter httpd http/https Oracle (native) Database Adapter IPC/RPC Other Zope Server XML/RPC Client Web browser SQL RDBMS Results • RDBMS konektivita • RDBMS obsah je integrován s obsahem adresářů • Separace správce obsahu a DB administrátora

  25. Příklad ZSQL Metody • Jednoduchý příkladSELECT * FROM employees WHERE ssn = <dtml-var ssn> • sqlMakeLoanPaymentUPDATE account SET balance = balance - <dtml-var payment><dtml-var sql_delimiter>UPDATE loan SET balance = balance - <dtml-var payment>

  26. Bezpečnost • Robustní řešení bezpečnosti • Rozdíl mezi uživateli, rolemi a právy • Uživatelé mohou mít role i v lokálním kontextu s granularitou na úrovni objektů. • Hierarchie uživatelů • Správce obsahu, vývojář aplikační logika, správce relační DB SQL metody, administrátor aplikační server

  27. Práva a role

  28. Rozšiřitelnost • Zope je modularizován na produkty • SessionManager, SQLSession, FSSession • Zcatalog, Ultraseek DA • ZGadflyDA, ZPyGreSQLDA, ZOracleDA, ... • LDAPAdapter, UserFolder • COMObject, XML Document, ZCalendar • MIMETools, Portal Toolkit • WorldPilot http://www.worldpilot.org • ZClasses • Externí Python metody

  29. Distribuce • Binární • Linux tar.gz, RPM, Debian deb • Solaris Sparc • Microsoft Win32 • Zdrojová • Na jakoukoli platformu, kde je instalovaný Python • Dokumentace - Zope Guides • Document Template Markup Language Reference DTML • Administrator's Guide, Content Manager's Guide, SQL Methods User's Guide • Zope How-Tos, Zope Tips • Developer Documentation (UML Models, ZClasses, External Methods, ZODB,ZPublisher, Acquisition, Zope Products, DOM, WebDAV, XML-RPC, ...)

  30. Budoucnost • Produkty • ZODB • ZEO Zope Enterprise Option, OQL • Auditing, Nové metody úložiště ODB • Optimalizace, Zamykání, Cross database • Řešení konfliktů na aplikační úrovni • Integrované prostředí - Mozilla • XUL - Extensible User-Interface Language • RDF - Resource Description Framework • Python 2.0 – internacionalizace • Integrace s Perlem

  31. XUL

  32. RDF

  33. Odkazy 1/6 • Zope - Open Source Application Server • http://www.zope.org/ • Digital Creations Inc. • http://www.digicool.com/ • Zope Weekly News • http://www.zope.org/Members/MikeP/ZWN/ • Zope Solution Providers • http://www.zope.org/Resources/ZSP • How-To: Getting Started With Zope • http://www.zope.org/Members/klm/GettingStarted • http://weblogs.userland.com/zopeNewbies/faq • Zope Mailing Lists • http://www.zope.org/Resources/MailingLists

  34. Odkazy 2/6 • Python - interpreted, interactive, object-oriented high-level programming language • http://www.python.org/ • A Perl Hacker in the Land of Python • http://www.byte.com/feature/BYT20000201S0001 • Jon Udell: Internet/Web solutions • http://udell.roninhouse.com/ • Midgard - Application Server Suite • http://www.midgard-project.org/ • PHP - Hypertext Preprocessor • http://www.php.net/ • JSP - Java Server Pages • http://java.sun.com/products/jsp/

  35. Odkazy 3/6 • DTML - Document Template Markup Language • http://www.zope.org/Documentation/Guides/DTML • CFML - Cold Fusion Markup Language • http://www.coldfusion.com/handlers/index.cfm?ID=13381 • RXML - RoXen Macro Language • http://www.roxen.com/ • ASP - Active Server Pages • http://msdn.microsoft.com/workshop/server/ • http://support.microsoft.com/support/default.asp?SD=SO&PR=asp&RLD=22 • http://www.activescripting.org/ • FastCGI - Fast Common Gateway Interface • http://www.fastcgi.com/

  36. Odkazy 4/6 • XML - Extensible Markup Language • http://www.w3.org/XML/ • http://www.xml.org/ • http://www.xml.com/ • XMLRPC XML Remote Procedure Call • http://www.xmlrpc.com/ • WebDAV - Web-based Distributed Authoring and Versioning • http://www.webdav.org/ • http://www.ics.uci.edu/~ejw/authoring/ • http://webdav.zope.org/ • SOAP - Simple Object Access Protocol • IETF draft-box-http-soap-01.txt • http://www.develop.com/soap/

  37. Odkazy 5/6 • XUL - Extensible User-Interface Language • http://www.mozilla.org/xpfe/ • http://www3.sympatico.ca/ndeakin/mozilla/xultu/ • http://zvon.vscht.cz/HTMLonly/MozillaTutorial/General/book.html • RDF - Resource Description Framework • http://www.w3.org/RDF/ • DOM - Document Object Model • http://www.w3.org/DOM/ • Java Script - ECMA Script • http://www.ecma.ch/ECMA1/STAND/ECMA-262.HTM

  38. Odkazy 6/6 • LDAP - Lightweight Directory Access Protocol • http://www.directoryforum.org/ • http://www.openldap.org/ • http://www.innosoft.com/ldapworld/ • http://www.kingsmountain.com/ldapRoadmap.shtml • http://developer.netscape.com/tech/directory/ • DSML - Directory Services Markup Language • http://www.dsml.org/

  39. Diskuze Dotazy ? Komentáře ? Michal Mühlpachr<michalm@nextra.cz> Děkuji za pozornost

More Related