IBM STG, Czech Republic
ZEND produkty pro System i
Václav Matoušek
[email protected]
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Agenda Vytváření nových aplikací pro i/OS pomocí PHP Tvorba GUI pro tradiční 5250 aplikace pomocí Zend 5250 Bridge MySQL v DB2 datastore
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Vytváření nových aplikací pro i/OS pomocí PHP
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Tradiční aplikace - ukázka
Common_demo_1.htm
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Aplikace vytvořená pomocí PHP - ukázka
Common_demo_2.htm
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Produkty, technologie a znalosti potřebné pro tvorbu nových aplikací na i/OS pomocí PHP Zend Core for i5/OS Zend Studio nebo jiný nástroj pro psaní HTML, PHP a JavaScript
kodu CSS technologie AJAX technologie JSON technologie PHP, HTML a JavaScript programování DoJo Framework Vyhledávání pomocí Google, …
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Zend Core a Zend Studio for i5/OS Volně stažitelné z URL: http://www.zend.com/en/products/platform/downloads http://www.zend.com/products/studio/downloads
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Jak pracuje Zend for i5/OS ? i5/OS i5/OS PASE
Workstation i5/OS HTTP Server
Browser
Zend Studio
Apache HTTP Server
Web server
25.4.2009
Zend Core
Resources
PHP engine
© 2009 IBM Corporation
IBM STG, Czech Republic
CSS technologie
CSS je zkratka pro Cascading Style Sheets Styly definují jak zobrazovat HTML elementy Styly jsou normálně uchovávány ve Style Sheetech Externí Style Sheety mohou ušetřit mnoho práce Externí Style Sheety jsou uchovávány v CSS souborech Více style definicí je zkaskádováno do jednoho –
Browser default (nejnižší priorita)
–
Externí style sheet
–
Interní style sheet (uvnitř tagu)
–
Inline style (uvnitř HTML elementu) (nejvyšší priorita)
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
AJAX Ajax je technika, která Vám může pomoci zvýšit využitelnost a zrychlit aplikační webovské stránky tím, že mění v jednom okamžiku data jen části stránky tam, kde by bylo jinak nutné na základě požadavku uživatele natáhnout celou stránku. Díky technice Ajax, si mohou stránky Vaší aplikace vyměnit se serverem jen malou část dat bez toho, aby se prováděl submit formuláře. Ajax technika využívá následující technologie:
•
JavaScript, který dovoluje vzájemnou vazbu s web prohlížečem a reakci na události
•
DOM (Document Object Model) pro zpřístupnění a manipulaci se strukturou na HTML stránkách
• • •
XML, který reprezentuje data přenášená mezi serverem a klientem. XMLHttpRequest objekt pro asynchronní výměnu XML dat mezi klientem a serverem.
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
AJAX - schematické zobrazení 1.) Uživatel generuje událost, jako např. kliknutí na tlačítko, což vyvolá provedení JavaScript kodu. 2.) Je vytvořen XMLHttpRequest objekt a konfigurován s požadovanými parametry, které zahrnují ID komponent, které událost generovaly a dále jakékoliv data, které uživatel zadá. 3.) XMLHttpRequest objekt vytvoří asynchronní požadavek na web server. Object (jako servlet nebo jiný posluchač) přijme požadavek, zprocesuje ho, případně uchová jakékoliv data z požadavku. 4.) Object, který procesoval požadavek vrátí XML dokument obsahující jakékoliv změny, které je třeba vrátit uživateli. 5.) XMLHttpRequest objekt přijme XML data, zprocesuje je a provede update HTML DOM reprezentující stránku s novými daty.
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
JSON
JSON je zkratka pro? JavaScript Object Notation.
JSON je syntaxe pro posílání objektů, které obsahují páry jméno/hodnota, pole a jiné objekty.
Příklad dat ve formátu JSON: {"skills": { "web": [ {"name": "html", "years": "5" }, {"name": "css", "years": "3" }] "database": [ {"name": "sql", "years": "7" }] } }
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
JSON versus XML JSON je podobný XML protože: Oba jsou 'sebe-popisující‘, což znamená, že hodnoty jsou pojmenovány a
jsou tedy 'čitelné pro lidi' Oba jsou hierarchické. (t.z., že je možno mít hodnoty uvnitř hodnot.) Oba mohou být parsovatelné a jsou podporovány mnoha programovacími jazyky Oba mohou být propagovány pomocí AJAXu (t.j. httpWebRequest)
JSON je rozdílný od XML protože: XML používá lomené závorky s tagovými jmény na začátku a konci
elementu: JSON používá složené závorky se jménem pouze na začátku elementu. JSON je méně popisný, tím definitivně rychlejší pro lidi i procesor pro zápis i čtení. JSON může být parsován jednoduše použitím procedury eval() v JavaScriptu. JSON zahrnuje pole {kde každý element nemá svoje vlastní jméno} V XML je možno použít libovolné jméno pro element, v JSON není možno používat rezervovaná slova z javascriptu.
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Dojo Framework Co je Dojo? – Dojo je JavaScript framework uvolněný jako open source software. Tento JavaScript toolkit poskytuje mnoho komponent k vývoji internet aplikací. – Dojo toolkit je možno použít k vývoji dynamických web aplikací. Dojo toolkit oživí web aplikace a změní je na vysoce interaktivní aplikace. Pomocí Dojo Toolkitu je možno změnit web aplikaci na web aplikaci podobné desktop aplikaci. – Dojo nabízí mnoho widgetů, utilit nebo ajax knihoven k vývoji aplikací. – Dojo je uvolněna pod BSD nebo AFL licencí – Dojo je zadarmo a může být použito k vývoji jak zadarmo šiřitelných nebo komerčních aplikací.
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Dojo Framework - možnosti, komponenty,… Možnosti Dojo Frameworku –
Dojo je založeno na HTML a JavaScriptu, je tedy pro vývojáře jednoduché se ho rychle naučit.
–
Není nutno se učit žádný nový programovací jazyk. Jsou dostatečné pouze znalosti HTML a JavaScriptu.
–
Dojo poskytuje pro programátory vysoce abstraktní úroveň, což pomůže programátorům vyvíjet velice snadno i mocné funkce .
–
Dojo již je vyspělý produkt a programátoři mohou nyní pouze Dojo api používat ve svých aplikacích
Zde je seznam komponent, které přichází s Dojo frameworkem: –
DOJO Tree
–
DOJO Button
–
DOJO Calendar control
–
DOJO Grid
–
DOJO List box
–
A mnoho dalších..
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
HTML, JavaScript, PHP - ukázka kodu Obecně lze říci: –
HTML pro vytváření GUI
–
Javascript pro obsluhu událostí
–
PHP pro práci s daty
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Tvorba GUI pro tradiční 5250 aplikace pomocí Zend 5250 Bridge
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Tradiční aplikace - ukázka
Common_demo_3.htm
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Aplikace vytvořená pomocí Zend 5250 Bridge - ukázka
Common_demo_4.htm
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Produkty, technologie a znalosti potřebné pro tvorbu GUI tradičních 5250 aplikací na i/OS pomocí Zend 5250 Bridge Zend Core for i5/OS Zend Studio nebo jiný nástroj pro psaní HTML, PHP a JavaScript
kodu Zend Platform for i5/OS CSS technologie AJAX technologie JSON technologie PHP, HTML a JavaScript programování DoJo Framework Vyhledávání pomocí Google, …
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Zend Platform for i5/OS Zend Platform for i5/OS je robustní PHP Web Application Server, který pomáhá aplikacím napsaných v PHP běžet efektivněji a rozšiřuje dosaženou investici do technologie pomocí snadného převedení existujících 5250 aplikací a poskytnutím přístupu do obchodní logiky existujících aplikací na aplikační úrovni. Je navržen pro IT pracovníky a podniky, které požadují web aplikace na komerční úrovni a ve vysoce dostupném produkčním prostředí. Zend Platform nabízí uživatelům vysokou výkonnost, dostupnost a integrační možnosti ve vylepšeném a produktivním Web prostředí. Jednou z klíčových funkcí v Zend Platform je 5250 bridge. Toto API umožňuje přístup do interaktivních aplikací v prostředí i/OS. To znamená, že PHP aplikace mohou přistupovat k 5250 data streamům, což dovoluje vytvořit Web GUI k existujícím aplikacím. A navíc bez jakéhokoliv přepisování existujících aplikací.
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Zend Platform for i5/OS http://www.zend.com/en/products/platform/downloads Trial License Pouze licence pro jedno konkurenční připojení po uplynutí trial periody
IBM katalogová cena: 5619-ZP1 5809 A0BZAB
Zend Platform for i5/OS Supply OTC per Processor Serial: N/A
25.4.2009
1 1 1 Total
N/C N/C 88 434,00 ________________ 88 434,00 KCS
OTC
B
OTC
© 2009 IBM Corporation
IBM STG, Czech Republic
Zend 5250 Bridge - Procedural API zend_5250_open($jobId = null) – Description: Starts a session according to the provided job id. – Return Values: @return Zend_5250_Resource_Connection – Parameters: – @param string $jobId zend_5250_connect($connection, $username = '', $password = '') – Description: Creates a connection to the 5250 Bridge with the provided username, password and library. – Return Values: @return Zend_5250_Response – Parameters: – @param Zend_5250_Resource_Connection $connection – @param string $username – @param string $password – @param string $lib
zend_5250_is_connected($connection) – Description: Returns true if the bridge was already connected, otherwise - false – Return Values: @return boolean – Parameters: – @param Zend_5250_Resource_Connection $connection
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Zend 5250 Bridge - Procedural API zend_5250_submit($connection, $command = 'ENTER'); – Description: Sends a request to the 5250 bridge. Once the user sets all desired data in the input fields (using the setInputField() method), this function should be called with the command the user has selected (commands, can be one of the 'F' keys, enter, page up, etc.) – Return Values: @return Zend_5250_Response – Parameters: – @param Zend_5250_Resource_Connection $connection – @param string $command zend_5250_disconnect($connection) – Description: Disconnects the 5250 bridge (closing the connection to the application) – Return Values: – Parameters: – @param Zend_5250_Resource_Connection $connection zend_5250_set_input_field($connection, $id, $value); – Description: Sets data into an input field specified by $id – Return Values: – Parameters: – @param Zend_5250_Resource_Connection $connection – @param int $id – @param mixed $value
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Zend 5250 Bridge - Procedural API zend_5250_set_focused_field($connection, $filed); – Description: Sets the focus of the page to a specified field –
Return Values:
–
Parameters:
–
@param Zend_5250_Resource_Connection $connection
–
@param array $field
zend_5250_get_screen_size($response) – Description: Returns the size of the screen, width x height –
Return Values: @return array with 2 elements: height and width
zend_5250_get_color_palette(); – Description: Returns an array containing the i5 5250 Bridge color palette Color code is the key of the array and the color name is the value – Return Values: @return array
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Zend 5250 Bridge - Procedural API zend_5250_get_input_fields($response); – Description: Returns all input fields available at this stage – Return Values: @return array of arrays – Parameters: – @param Zend_5250_Response $response zend_5250_get_input_field($response, $id); – Description: Returns an input field specified by the given ID – Return Values: @return array – Parameters: – @param Zend_5250_Response $response – @param int $id zend_5250_get_focused_field($response); – Description: Returns the field currently in focus – Return Values: @return array – Parameters: – @param Zend_5250_Response $response
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Zend 5250 Bridge - Procedural API zend_5250_get_input_fields_count($response); – Description: Returns the number of input fields available at this stage – Return Values: @return int – Parameters: – @param Zend_5250_Response $response zend_5250_get_output_fields($response) – Description: Returns the number of output fields available at this stage – Return Values: @return array of arrays – Parameters: – @param Zend_5250_Response $response zend_5250_get_output_field($response, $id); – Description: Returns an output field specified by the given ID – Return Values: @return array – Parameters: – @param Zend_5250_Response $response – @param int $id
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Zend 5250 Bridge - Procedural API zend_5250_get_output_fields_count($response); –
Description: Returns the number of output fields available in this stage
–
Return Values: @return int
–
Parameters:
–
@param Zend_5250_Response $response
zend_5250_get_application_error($response); –
Description: Returns an application error if it occurred
–
Return Values: @return string
–
Parameters:
–
@param Zend_5250_Response $response
–
@param Zend_5250_Response $response
–
zend_5250_get_error()
–
Description: Returns a function error if it occurred
–
Return Values: @return string
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
5250 Bridge, Procedural API - ukázka kodu To try again please click
here'); } $sign = zend_5250_get_output_field_value($response, 2); if ($sign != 'Flight Reservation System') { header('Location: signout.php'); die(); } // write $option on command line and press Enter zend_5250_set_input_field($bridge,'0',$option); $response = zend_5250_submit($bridge); function zend_5250_get_output_field_value($response, $id) { $fieldData = zend_5250_get_output_field($response, $id); return trim($fieldData['value']); } ?>
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
MySQL v DB2 datastore
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
MySQL v DB2 datastore
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
MySQL v DB2 datastore
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
MySQL v DB2 datastore
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
MySQL v DB2 datastore
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Instalace a další poznatky Detaily v redbooku Using IBM DB2 for i as a Storage Engine of MySQL na URL: http://www.redbooks.ibm.com/abstracts/sg247705.html Možné problémy při instalaci - postupovat podle scriptu Před instalací IBMDB2I pluginu nainstalovat PTF-ka
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
/etc/my.cnf - příklad ************Beginning of data************** # Created at installation. ŁmysqldŃ basedir = /QOpenSys/usr/local/mysql/mysql datadir = /QOpenSys/usr/local/mysql plugin_dir = /QOpenSys/usr/local/mysql/mysql/lib/plugin default_storage_engine=ibmdb2i user = MYSQL ************End of Data********************
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Sugarcrm s MySQL daty v DB2
Common_demo_5.htm
25.4.2009
© 2009 IBM Corporation
IBM STG, Czech Republic
Trademarks and Disclaimers 8 IBM Corporation 1994-2007. All rights reserved. References in this document to IBM products or services do not imply that IBM intends to make them available in every country. Trademarks of International Business Machines Corporation in the United States, other countries, or both can be found on the World Wide Web at http://www.ibm.com/legal/copytrade.shtml. Adobe, Acrobat, PostScript and all Adobe-based trademarks are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, other countries, or both. Intel, Intel logo, Intel Inside, Intel Inside logo, Intel Centrino, Intel Centrino logo, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. IT Infrastructure Library is a registered trademark of the Central Computer and Telecommunications Agency which is now part of the Office of Government Commerce. ITIL is a registered trademark, and a registered community trademark of the Office of Government Commerce, and is registered in the U.S. Patent and Trademark Office. UNIX is a registered trademark of The Open Group in the United States and other countries. Cell Broadband Engine and Cell/B.E. are trademarks of Sony Computer Entertainment, Inc., in the United States, other countries, or both and are used under license therefrom. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others. Information is provided "AS IS" without warranty of any kind. The customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer. Information concerning non-IBM products was obtained from a supplier of these products, published announcement material, or other publicly available sources and does not constitute an endorsement of such products by IBM. Sources for non-IBM list prices and performance numbers are taken from publicly available information, including vendor announcements and vendor worldwide homepages. IBM has not tested these products and cannot confirm the accuracy of performance, capability, or any other claims related to non-IBM products. Questions on the capability of non-IBM products should be addressed to the supplier of those products. All statements regarding IBM future direction and intent are subject to change or withdrawal without notice, and represent goals and objectives only. Some information addresses anticipated future capabilities. Such information is not intended as a definitive statement of a commitment to specific levels of performance, function or delivery schedules with respect to any future products. Such commitments are only made in IBM product announcements. The information is presented here to communicate IBM's current investment and development activities as a good faith effort to help with our customers' future planning. Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve throughput or performance improvements equivalent to the ratios stated here. Prices are suggested U.S. list prices and are subject to change without notice. Contact your IBM representative or Business Partner for the most current pricing in your geography.
25.4.2009
© 2009 IBM Corporation