You are on page 1of 54

Wi400

the PHP i-framework

by S.I.R.I. Informatica

: quando il funzionale
è anche bello
Agenda

 L'evoluzione dei modelli culturali: il “web 2.0”

 Nuovi strumenti: l'open-source

 Le novità in IBMi: il PHP

 L'integrazione tra IBMi e PHP

 Uso dell'open-source

 Sviluppare per il WEB

 Esperienze
|2

 Question time
|2 |
Evoluzione dei modelli culturali

rss – feed – wsdl

notebook

b2b smartphone

|3 | 07/05/10

|3 |
Nuove richieste all'IT

Implementare I servizi Connettere il DB2 ad altri DB


Web server Database

Integrazione con
altre Piattaforme Proteggere gli investimenti

O.S RPG/COBOL

Ottenere benefici da applicazioni F.O.S.S.


OpenSource

|4 | 07/05/10

|4 |
Nuovi strumenti Open-Source

# - la storia php
Storia del PHP

ZF and PDT

released,
PHP 4 EOL
Zend Framework announced
& Eclipse project (PDT)
announced

IBM, Oracle Endorse


PHP 4 PHP 5.0PHP 25
•1M Internet Released (XML,SOAP,OOP) M
domains IDE Studio
•Zend Engine
•Zend Founded PHP 20
Proliferation M

Zeev Suraski & Yahoo! Standardizes 15


Andi Gutmans on PHP M
lead the
development
10
Rasmus of PHP 3
Lerdorf M
Introduces
php/fi 5M

PHP
Internet Domains

|6 | 07/05/10
|6 |
Trend linguaggi programmazione

java

PHP

dot.net

|7 |
PHP – peculiarità

Bassa curva di Apprendimento


apprendimento rapido

Robusto, Multi-Piattaforma,
Performance, Sicurezza, Scalabilità Affidabile

Larga
Folta Community
diffusione

|8

|8 |
PHP in IBMi

# - quali sono le novità ?


PHP & IBMi

3 Aprile 2006: IBM annuncia l'accordo con “Zend technologies”


per avere il PHP nativo sul sistema

ZendCore/ZendServer for I5/OS


PHP nativo
ZendCore
Disponibile per V5R3, V5R4, V6R1 e V7R1 ZendServer

Free of charge

ZendStudio for Eclipse i5 Edition


Sistema di sviluppo client basato su Eclipse
Disponibile su Windows, Linux, Mac OSx
Ide Studio
Free of charge

| 10 | 07/05/10

| 10 |
PHP & IBMi – scalabilità: ZendServer

Power Systems
i5/OS IFS

Access from
PASE
Internet 5722SS1 Opz.33

PHP <?php
......
fast-cgi<?php
Request ......
Apache PHP
HTTP Server fast-cgi
Response :porta 10088 Database
PHP
fast-cgi
RPG/COBOL

OS

| 11 |
PHP & IBMi – scalabilità: ws

IBM i
DMZ
HTTP SERVER
(WEB SEVER)
WSDL PUBLIC

INTERNAL
LAN
Internet/ ZendServer
intranet
Win/Linux Server
ZendServer

RPG/COBOL

| 12 |
PHP & IBMi – scalabilità: easycom-toolkit

No ODBC Driver

| 13 |
Integrazione in IBMi

# - in che modo ?
PHP & IBMi – i5OS/PASE

ZendServer for i5/OS “gira” nell'ambiente PASE

–i5/OS PASE is the


AIX® runtime in
i5/OS
–it is not an
emulated
environment

| 15

| 15 |
PHP & IBMi – integrazione

da uno script PHP


è possibile eseguire
un i5/OS command

| 16

| 16 |
PHP & IBMi – integrazione

risultato di un
i5/OS command

| 17

| 17 |
PHP & IBMi – integrazione

visualizza gli spool


in una pagina web

| 18

| 18 |
PHP & IBMi – integrazione

| 19

| 19 |
PHP & IBMi – risorse

versione “community”
versione “community”
di librerie PHP pdf
| 20
di librerie PHP pdf

| 20 |
PHP & IBMi – i5OS/PASE

la richiesta del cliente:


“print my invoices to pdf format in i5”
1) Hold spool
2) Call php script
from CL program

lo script:
merge tra un “template pdf” vuoto
e il contenuto dello spool
| 21

| 21 |
PHP & IBMi – i5OS/PASE

......una settimana dopo....


“send my invoices via mail”

| 22

| 22 |
OpenSource & IBMi – MySQL

PASE IBMi MySQL Server


Connection Pool
Authentication – Thread – Connection Limits – Check Memory- Cache

SQL Interface Parser Optimizer Cache & buffers


DDL, Store Query Access Path, Global and
Procedure, Translation, Statistics Engine Specific
Views,Triggers ,etc Object Privilege caches

Pluggable Storage Engines


memory, Index & Storage Management

MyIsam InnoDB Memory CSV

RPG trigger

New IBM Redbook SQL


“Using IBM DB2 for i Storage Engine of MySQL”

ancl200f Query
SG24-7705 trigger “accounts”
| 23

| 23 |
OpenSource & IBMi – F.O.S.S.

attraverso l'engine ibm_db2 sono “a portata di


mano” l'utilizzo di tipiche applicazioni opensource
dello stack Lamp

•SUGARCRM for i5 - CRM


http://www.sugarcrm.com
•MANTIS400 - HELP DESK
http://www.mantisbt.org

| 24

| 24 |
OpenSource & IBMi – F.O.S.S.

| 25 |
OpenSource & IBMi – F.O.S.S.

| 26
| 26 |
Cosa posso fare con PHP

# - quali tematiche
- l'open-source
Utilizzo del PHP

Content Management Wiki E-Commerce

Bug Tracking CRM GDO


| 28

| 28 |
L'Azienda

# - PHP e S.I.R.I.
PHP & Siri

Approccio PHP
 2003: Realizzazione del primo applicativo in ambiente win/linux

 2006: inizia l'avventura dello sviluppo PHP in ambito “I”

 2007: forte investimento nella tecnologia PHP ponendo le basi per la


propria architettura PHP: Wi400

 2008: diventa partner ufficiale Zend con il programma “Powered by Zend”

 2008: realizza e manutenziona applicazioni PHP “business critical” per PMI


e multinazionali

 2009: il team PHP Wi400 cresce: 8 persone dedicate al progetto

| 30
 2010: inizia la distribuzione del framework Wi400 sia in CE che PE

| 30 |
PHP & Siri

Certified Support
 nell'ambito IBMi, vanta oltre 20 anni di esperienza

 personale tecnico Zend Certified Engineer

 ha acquisito le migliori competenze e “best-practice” in PHP


adattandole all'i5OS

| 31

| 31 |
Sviluppare per il Web con
PHP

# - metodologia
- strumenti rapidi
Sviluppare Web con PHP

<html>
<title>hello world !<title>
<body>
<br>Benvenuti in Wi400</br>
<br>
<?php
print “<h1>Il
“Il magico
magico
mondo
mondo
del PHP”;
del PHP</h1>”;
?>
</body>
</html>

| 33

| 33 |
Sviluppare Web con PHP – l'mvc

HTTP Execution
request parameters

browser HTTP controller Resulting model


response Data arrays

Gui Resulting
Content Data arrays

view

| 34 |
Sviluppare Web con PHP – l'mvc di Wi400

WI400 Action Architecture

azioni/menù su DB2 i5OS

gateway

HTTP Execution
request parameters

browser HTTP controller Resulting model


response Data arrays

Gui Resulting
Content Data arrays

validation

| 35 view

| 35 |
Sviluppare Web con Wi400

WI400 Action Architecture


/wi400/modules/ modulo/ CodiceAzione_Contesto.php

Contesti:
GATEWAY
_gateway
_model
_view
_validation

MODEL

VIEW
ERROR
Azione menù

Contenitore/menù

Validation Az.semplice
form
Az.batch

TRUE
| 36

| 36 |
Sviluppare Web con Wi400: codice

1.istanzio
la classe
<?php
$_myList = new wi400List("EXAMPLE1_LIST", true);
2.seleziono $_myList->setFrom("ZWIDEMO".$settings['i5_sep']."ANCL200F");
tabella $cols = getColumnListFromTable("ANCL200F", "ZWIDEMO");
$_myList->setCols($cols);
$_myList->dispose();
4.assegno campi
3.reperisco alla classe
descrizione campi istanziata
da tabella 5.“rendering”
del risultato

| 37 |
Sviluppare Web con Wi400: codice

Il risultato con 5 righe di codice

esportazione
record paginazione
personalizzazione automatica
della “griglia” record

| 38 |
Sviluppare Web con Wi400: codice

<?php
$_myList = new wi400List("EXAMPLE1_LIST", true);
$_myList->setFrom("ZWIDEMO".$settings['i5_sep']."ANCL200F");
$cols = getColumnListFromTable("ANCL200F", "ZWIDEMO");
$_myList->setCols($cols);
$_myList->dispose();
Istanzio filtro $_myFilter = new wi400Filter("RASCL","Name","STRING");
di tipo “fast” $_myFilter->setFast(true);
$_myList->addFilter($_myFilter);

$_myFilter = new wi400Filter("CDCLI", "Code","STRING");


$_myList->addFilter($_myFilter);
$_myFilter= new wi400Filter("LOCCL", "City","STRING");
$_myList->addFilter($_myFilter);
Aggiunta
$_myList->dispose();
di filtri “advanced”

| 39 |
Sviluppare Web con Wi400: codice

Il risultato con altre 7 righe di codice


ricerca
veloce

Ricerca “advanced” Salvataggio della


attivabile a ricerca “personale”
richiesta da parte dell'utente

| 40 |
Sviluppare Web con Wi400: il controllo

Controllo e
visualizzazione
del job e dei log

| 41 |
Sviluppare Web con Wi400: news

Nuove “features” disponibili da Luglio 2010

 SSC – SnapShot Session Control


possibilità per lo sviluppatore Wi400 di “clonare” la
sessione dell'utente nel momento desiderato per
news ! le attività di debug

 JSC – Job Schedulation Control


possibilità di “sottomettere” in vere e proprie JOBQ di
IBMi alcune azioni considerate “pesanti”.
L'utente potrà essere avvisato tramite mail del
completamento dell'elaborazione

| 42 |
Sviluppare Web con Wi400: news -SSC

 Snapshot Session Control

Messaggio
all'utente finale

Possibilità di
“agganciare” la
sessione dell'utente Lo sviluppatore
può visualizzare e
“catturare” tutte le info
della sessione

| 43 |
Sviluppare Web con Wi400: news -JSC

 Job Schedulation Control

Gestione opzioni
per singolo lavoro

| 44 |
Wi400: cases

# - esperienze
- casi di successo
Wi400: cases

| 46 |
Wi400: esperienze

| 47 |
Wi400: esperienze

PHP Layer
RPG/COBOL
IN
richiamo
WSDL
applicativi
Bus integrazione

tab.interfaccia
OUT
User space

| 48 |
Wi400: esperienze

| 49 |
Wi400: esperienze

| 50 |
Wi400: esperienze

Statistiche venduto

| 51 |
Wi400: riferimenti

http:// www. wi400. com

http://www.linkedin.com/groups?gid=2896949

info@wi400.com

| 52

| 52 |
ARRIVEDERCI

“Non è la specie più forte che sopravvive,


né la più intelligente,
ma quella più ricettiva ai cambiamenti.”
Charles Darwin
# - Question Time ?