The IBM i platform, which evolved from System i, i5, iSeries, and AS/400, is a highly reliable, secure, self-managing, and integrated operating environment with a loyal, devoted following among thousands of businesses. A PHP developer who knows how to speak "IBM i" will be differentiated in the job market, gaining interesting employment and consulting opportunities.
In this talk, Alan Seiden will introduce you to the world of IBM i, covering the basics of this unique platform.
Streamlining Python Development: A Guide to a Modern Project Setup
IBM i: Fertile Ground for PHP Developers
1. IBM i
Fertile ground for PHP developers
Alan Seiden Consulting
alanseiden.com
Thursday, February 6, 14
2. My focus
Advancing PHP on IBM i
• PHP project leader, Zend/IBM Toolkit
• Contributor, Zend Framework DB2/i enhancements
• Developer, Best Web Solution, IBM/Common
• Authority, subsecondweb performance
on IBM i/iSeries
Alan Seiden Consulting
Thursday, February 6, 14
2
IBM i: Fertile Ground for PHP Developers
4. Where to download these slides
From my site
http://alanseiden.com/presentations
On SlideShare
http://slideshare.net/aseiden
The latest version will be available on both sites
Alan Seiden Consulting
Thursday, February 6, 14
4
IBM i: Fertile Ground for PHP Developers
5. What we’ll discuss today
•
•
•
•
•
•
Why work with IBM i ?
PHP a perfect fit for i
Opportunities
How to speak ‘i’
Resources
Q&A
To rate this talk:
https://joind.in/6820
Alan Seiden Consulting
Thursday, February 6, 14
5
IBM i: Fertile Ground for PHP Developers
6. IBM i for
your career
Alan Seiden Consulting
Thursday, February 6, 14
6
IBM i: Fertile Ground for PHP Developers
7. Advantages to knowing IBM i
• Work with midsize to large size companies
IBM i runs mission-critical operations
Real budgets
• Raise your profile in a specialized universe
Gain interesting assignments
Make an impact
Command premium fees for your expertise
• In the words of an IBM’er: “Once joined to the IBM i
application brotherhood you may be set for life”
Alan Seiden Consulting
Thursday, February 6, 14
7
IBM i: Fertile Ground for PHP Developers
8. IBM i Facts
• Designed, marketed, built by IBM
in Rochester, Minnesota
• Heritage dates back to the 1970s
• Currently runs on Power Systems hardware, also
used by AIX
ibm.com/systems/id/power/hardware/power7ent.html
Alan Seiden Consulting
Thursday, February 6, 14
8
IBM i: Fertile Ground for PHP Developers
9. Who uses ‘i’?
Alan Seiden Consulting
Thursday, February 6, 14
9
IBM i: Fertile Ground for PHP Developers
10. Who uses IBM i?
• Over 150,000 companies in more than 115 countries
40 language translations
51 national language versions
• From small to very large
70%: small-to-medium size organizations
30%: larger, with 1000+ employees
• Reference: IBM i Strategy and Roadmap white paper
• ibm.com/systems/power/software/i/strategy.html
Alan Seiden Consulting
Thursday, February 6, 14
10
IBM i: Fertile Ground for PHP Developers
11. Typical industries
• The ‘i’ was designed to sail through commercial
transaction processing workloads
• According to IBM, typical industries include:
Wholesale and retail distribution
Manufacturing
Financial services such as banking, insurance
Travel, transportation
Media, entertainment
• music publishing, casino management
Local government
• including lottery agencies
School administration
Alan Seiden Consulting
Thursday, February 6, 14
11
IBM i: Fertile Ground for PHP Developers
12. Selected companies using IBM i
Transportation/Logistics
• Enterprise Rent-a-Car
• FedEx
Education management
• EDR/Crosspointe (software for school districts)
Food and beverage
• AriZona Beverages (iced tea)
• Polar Beverages (Worcester, Mass.)
Retail
• Bed Bath & Beyond
• Starbucks
• United Rentals
Alan Seiden Consulting
Thursday, February 6, 14
12
IBM i: Fertile Ground for PHP Developers
14. Resilient business processing
• How IBM describes IBM i:
• More than an OS: an operating environment
#IBMi question for @Steve_Will_IBMi
Is IBM i an OS or an Operating Environment?
http://linkd.in/ArNo5w
@stevencpitcher #IBMi
DB2 is architecture. On other platforms, it is a software package.
Alan Seiden Consulting
Thursday, February 6, 14
14
IBM i: Fertile Ground for PHP Developers
16. DB2 database at its heart
• DB2 built in
Transaction processing workhorse
Database implemented below operating system level!
• IBM i’s “Machine Interface (MI)” between OS and hardware
Journaling, auditing, commitment control very commonly used
Never corrupted
• Doesn’t lose data even if knock out power plug
• Database often taken for granted
So self-managing that DBAs are rare
• MySQL also supported (Zend DBi)
Can connect to DB2 via DB2 Storage Engine
Alan Seiden Consulting
Thursday, February 6, 14
16
IBM i: Fertile Ground for PHP Developers
17. Data and programs last forever
• IBM has been dedicated to legacy app longevity and
data longevity
RPG (and occasionally COBOL) running for 30-40 years
DB2 data evolving 30-40 years
Middleware insulates applications from hardware changes
IBM i Heritage chart from Trevor Perry
http://blog.angustheitchap.com/?p=415
Alan Seiden Consulting
Thursday, February 6, 14
17
IBM i: Fertile Ground for PHP Developers
18. Long-serving back ends, new front ends
• What does this mean to you?
RPG and DB2, mature and evolving for years, can be part of your
data model, accessed by PHP
Create web GUI interfaces and web services around these
venerable resources
• Business logic is encapsulated in RPG/COBOL/DB2
• You can keep your hands somewhat clean of business details
Case studies later in this presentation
Alan Seiden Consulting
Thursday, February 6, 14
18
IBM i: Fertile Ground for PHP Developers
20. Nondisruptive business growth
• Scales vertically
• One system can handle large and diverse workloads
• Total Cost of Ownership (TCO), including reduced operator costs, is said
to be competitive or cheaper than assembling server farms
• Can activate additional processors without restarting system
• Dependable
• Resistant to viruses
• Object-based system since the 1970s
• Journaling, commitment control, replication, high availability
• Security features galore
• Keeps on running
• You will sleep soundly at night
Alan Seiden Consulting
Thursday, February 6, 14
20
IBM i: Fertile Ground for PHP Developers
21. IBM i can “phone home” with problems
Alan Seiden Consulting
Thursday, February 6, 14
21
IBM i: Fertile Ground for PHP Developers
22. PHP’s role on i
Alan Seiden Consulting
Thursday, February 6, 14
22
IBM i: Fertile Ground for PHP Developers
23. PHP on i
• 2004: i5php.net
Unofficial PHP binary for “i” available online
• 2005: IBM and Zend got together
• 2006: Zend Core for i5/OS
Official release with help from IBM, technical support from Zend
• 2007: Zend Studio: IDE/code editor
and Zend Platform: performance booster and code tracer/monitor
• 2008: Zend Framework supports “i” variant of db2
• 2009: Zend Server Beta for “i”
• 2010: Zend Server released
• 2011: New toolkit on “i” beta...GA in 2012
Pin from IBM booth, ZendCon 2011
Alan Seiden Consulting
Thursday, February 6, 14
23
IBM i: Fertile Ground for PHP Developers
24. Zend/IBM’s commitment from 2005-6
from 2006: “[Andi] Gutmans says Zend intends to
port all its products to System i, treating the
platform's users as first-class citizens.”
http://mcpressonline.com/programming/web-languages/zend-brings-php-to-ibms-i5os.html
Alan Seiden Consulting
Thursday, February 6, 14
24
IBM i: Fertile Ground for PHP Developers
25. IBM + Zend
• IBM i systems ship with Zend Server (PHP)
• PHP on IBM i packaged and supported by Zend
IBM’s Tony Cairns and Alan S.
working on new toolkit, ZendCon 2011
IBM booth, ZendCon 2010
Alan Seiden Consulting
Thursday, February 6, 14
25
IBM i: Fertile Ground for PHP Developers
26. Zend Server for IBM i
• PHP stack for IBM i
• Download
• http://www.zend.com/en/products/server/downloads-ibmi
• Zend Server 5.x license types
• Zend Server Community Edition (CE) and regular Zend Server
• Same download, different license
• Zend Server 6.x editions
• http://www.zend.com/en/products/server/editions
• Free, Small Business, Professional, Enterprise
• Same download, different license
Alan Seiden Consulting
Thursday, February 6, 14
26
DB2 and PHP Best Practices on IBM i
27. Installation
•Prerequisites
• http://static.zend.com/topics/ZS-560-IBMi-
ReleaseNotes-20111215-04.txt
• Zend Server 5.6 works on v5r4 and higher
• Zend Server 6.x needs 6.1 or higher
•Try Zend Studio’s IDE (no charge, courtesy of IBM)
• “Zend Studio for Eclipse, IBM i Edition”
• http://zend.com/en/products/studio/downloads
• Look for “IBM i Edition”
Alan Seiden Consulting
Thursday, February 6, 14
27
DB2 and PHP Best Practices on IBM i
28. Zend Server event list
Alan Seiden Consulting
Thursday, February 6, 14
28
IBM i: Fertile Ground for PHP Developers
29. ibm_db2 middleware
• Manual page
http://php.net/ibm_db2
• Source code and additional documentation at the
“PECL” PHP extension repository
http://pecl.php.net/package/ibm_db2
Alan Seiden Consulting
Thursday, February 6, 14
29
IBM i: Fertile Ground for PHP Developers
30. db2_connect() example with $options
$database = 'MYDB';
$user = 'MYUSER';
$password = 'MYPASS';
$options = array('i5_naming' => DB2_I5_NAMING_ON,
'i5_libl'
=> 'MYLIB1 MYLIB2'
);
$conn = db2_connect($database, $user, $password, $options);
if ($conn) {
echo "Connection succeeded.";
} else {
echo "Connection failed.";
}
// MYTABLE will be found, if in library MYLIB1 or MYLIB2
$stmt=db2_exec($conn,"SELECT * FROM MYTABLE");
Alan Seiden Consulting
Thursday, February 6, 14
30
IBM i: Fertile Ground for PHP Developers
31. e-Commerce
Case Study #1
Alan Seiden Consulting
Thursday, February 6, 14
31
IBM i: Fertile Ground for PHP Developers
32. Medrano Express: four into one
Alan Seiden Consulting
Thursday, February 6, 14
32
IBM i: Fertile Ground for PHP Developers
33. Screen #1, Order header
Alan Seiden Consulting
Thursday, February 6, 14
33
IBM i: Fertile Ground for PHP Developers
34. Screen #2, Order detail
Alan Seiden Consulting
Thursday, February 6, 14
34
IBM i: Fertile Ground for PHP Developers
35. Screen #3, Content package from detail
(Option 4 from order header)
Alan Seiden Consulting
Thursday, February 6, 14
35
IBM i: Fertile Ground for PHP Developers
36. Screen #4, Notes from order detail
F9 key launches this
Alan Seiden Consulting
Thursday, February 6, 14
36
IBM i: Fertile Ground for PHP Developers
37. Web page combines all 4 “green screens”
Alan Seiden Consulting
Thursday, February 6, 14
37
IBM i: Fertile Ground for PHP Developers
38. One PHP script, four RPG programs
• Call each RPG, filling a table with data to read
Repeat 4x !
“header” RPG returns useful information for calling “detail” RPG,
etc.
• Show results in one PHP view
• Zend/IBM PHP Toolkit helps PHP call RPG
Info about Toolkit coming up
• (application by Jessie Clark)
Alan Seiden Consulting
Thursday, February 6, 14
38
IBM i: Fertile Ground for PHP Developers
39. Toolkit welcomes PHP to ‘i’ family
• Call RPG, COBOL, CL
• Including IBM i apis
• Most popular use of toolkit
• Commands
• ADDLIBLE LIB(MYLIB)
• More command types (details later)
• Read/write objects that store data
• Data areas
• User spaces
• Send/receive data queues
• Get lists, read data or attributes from these:
•
•
•
•
•
Spooled files
Job logs
Active jobs
Objects
System values
Alan Seiden Consulting
Thursday, February 6, 14
39
IBM i: Fertile Ground for PHP Developers
40. Where to get new toolkit
•Included with Zend Server 5.6+
• http://zend.com/en/products/server/downloads
• Approved QA version in latest PTF or hotfix
• Look for latest PTF and hotfix, install in sequence
•Young i Professionals (YiPs) site
• Latest version is here
• http://youngiprofessionals.com/wiki/XMLSERVICE
• Also: a Git repository for collaboration
Alan Seiden Consulting
Thursday, February 6, 14
40
IBM i: Fertile Ground for PHP Developers
41. How it’s put together
• PHP calls XMLSERVICE through generic stored
procedures (installed automatically with package)
• Any environment that can send/receive XML can
use XMLSERVICE
• PHP is the first major “client” to use XMLSERVICE
but there will be more, further strengthening
XMLSERVICE as a back-end
Alan Seiden Consulting
Thursday, February 6, 14
41
IBM i: Fertile Ground for PHP Developers
42. e-Commerce
Case Study #2
Alan Seiden Consulting
Thursday, February 6, 14
42
IBM i: Fertile Ground for PHP Developers
43. Allied Beverage Group
Alan Seiden Consulting
Thursday, February 6, 14
43
IBM i: Fertile Ground for PHP Developers
44. Original 5250-mode order entry process
• Aimed at expert customer service users
• Sales reps accessed it using Jadvantage java
applet in browser
Better than nothing
S-l-o-w logon
Forced reps to have expert knowledge of system
• Dicey wireless signals on the road = lost sessions
• RPG was powerful but too complex to be updated
with major new functionality
Alan Seiden Consulting
Thursday, February 6, 14
44
IBM i: Fertile Ground for PHP Developers
45. Intro screen
Alan Seiden Consulting
Thursday, February 6, 14
45
IBM i: Fertile Ground for PHP Developers
46. Intro with error message (customer)
•f
Alan Seiden Consulting
Thursday, February 6, 14
46
IBM i: Fertile Ground for PHP Developers
47. Intro with error message (“return to number”)
Alan Seiden Consulting
Thursday, February 6, 14
47
IBM i: Fertile Ground for PHP Developers
48. Main screen
Alan Seiden Consulting
Thursday, February 6, 14
48
IBM i: Fertile Ground for PHP Developers
49. Search for a product by description
Alan Seiden Consulting
Thursday, February 6, 14
49
IBM i: Fertile Ground for PHP Developers
50. Select a product
Alan Seiden Consulting
Thursday, February 6, 14
50
IBM i: Fertile Ground for PHP Developers
52. What Allied wanted in web-based order entry
• Good for sales reps and customers
Keep speed while making it easier for newcomers
Reps can copy from past orders
Lots of information at fingertips (fewer clicks)
• Users can save drafts of orders
Drafts are brand-new functionality
We use the old RPG logic, but we’re not tied to it
• No problem if temporarily disconnected
Stateless web connection can easily resume later
• Overcome 90-item limit
So we didn’t have to treat that as an error
Internally we split order into 90-item bunches and sent multiple orders to RPG
Alan Seiden Consulting
Thursday, February 6, 14
52
IBM i: Fertile Ground for PHP Developers
53. Web ordering intro page
Alan Seiden Consulting
Thursday, February 6, 14
53
IBM i: Fertile Ground for PHP Developers
54. Web with account type/search box
Alan Seiden Consulting
Thursday, February 6, 14
54
IBM i: Fertile Ground for PHP Developers
55. Web Mode #1: Quick Order Entry
Alan Seiden Consulting
Thursday, February 6, 14
55
IBM i: Fertile Ground for PHP Developers
56. Search results
Alan Seiden Consulting
Thursday, February 6, 14
56
IBM i: Fertile Ground for PHP Developers
57. Web Mode #2: Standard Order Entry
Alan Seiden Consulting
Thursday, February 6, 14
57
IBM i: Fertile Ground for PHP Developers
58. AJAX loads dynamic info
Alan Seiden Consulting
Thursday, February 6, 14
58
IBM i: Fertile Ground for PHP Developers
59. How to speak ‘i’
Alan Seiden Consulting
Thursday, February 6, 14
59
IBM i: Fertile Ground for PHP Developers
60. What veteran users call the ‘i’
• IBM i (correct modern name)
• You will also hear
iSeries
System i
The AS/400
• or “The ’400”
Alan Seiden Consulting
Thursday, February 6, 14
60
IBM i: Fertile Ground for PHP Developers
61. Database terms
• Modern and traditional terminology coexist
Modern term
Traditional term or phrase
Schema
Library
Table
Index
File or Physical File
Logical File*
Row
Record
Column
Field
* a logical file resembles an “index + view”
Modern views, triggers, etc. are supported by DB2
Alan Seiden Consulting
Thursday, February 6, 14
61
IBM i: Fertile Ground for PHP Developers
62. Learning more
Alan Seiden Consulting
Thursday, February 6, 14
62
IBM i: Fertile Ground for PHP Developers
63. Conferences and User Groups
• ZendCon
Has an IBM i track
Speaking opportunities for ‘i’ savants
• Common
Common.org
Largest IBM i and Power Systems user group
• Other user groups
https://www.ibm.com/developerworks/community/wikis/home?
lang=en#!/wiki/Power%20Systems/page/IBM%20i%20Local
%20User%20Groups
Alan Seiden Consulting
Thursday, February 6, 14
63
IBM i: Fertile Ground for PHP Developers
64. Searching the ’net
• Official IBM i site
ibm.com/systems/power/software/i/
• Midrange.com: treasure trove of information
midrange.com, wiki.midrange.com/index.php/Main_Page
• Search for “IBM i”
Lowercase ‘i’ not easily indexed
If no luck, try:
•
•
•
•
iSeries
System i
i5
AS/400 (for older information)
Alan Seiden Consulting
Thursday, February 6, 14
64
IBM i: Fertile Ground for PHP Developers
65. IBM i on the cloud (practice your ‘i’ skills)
• IBM i Infrastructure as a Service (IaaS)
• Several vendors:
iDevCloud.com (for personal, noncommercial projects)
iInTheCloud.com (commercial hosting)
us.logicalis.com/microsites/cloud-computing.aspx
MindShift.com
• Full list of i-cloud vendors, compiled by Joe Hertvik
http://joehertvik.com/?p=816
Alan Seiden Consulting
Thursday, February 6, 14
65
IBM i: Fertile Ground for PHP Developers
66. Zend Server and PHP resources
• Support
Zend Server CE includes one year of email support
• Upgrade to Zend Server for more years and fast phone support
Register at http://www.zend.com/en/products/server/downloadsibmi and also get Zend’s IBM i newsletter
• Web:
Zend’s recorded webinars: http://www.zend.com/resources/
webinars/i5-os
Zend Forums: forums.zend.com
• Look for IBM i Zend Server forums
http://alanseiden.com
• Blog, articles, tips newsletter
Alan Seiden Consulting
Thursday, February 6, 14
66
IBM i: Fertile Ground for PHP Developers
67. DB2 and PHP Resources
• IBM
IBM_DB2 manual and open source repository
• http://php.net/ibm_db2, http://pecl.php.net/package/ibm_db2
DeveloperWorks wiki
• http://ibm.com/developerworks/ibmi
Performance tips from IBM’s Tony Cairns
• http://www.youngiprofessionals.com/wiki/FastCGI
• Zend
Zend Server for IBM i
• http://www.zend.com/en/products/server/zend-server-ibm-i
Forums for PHP on IBM i
• http://forums.zend.com/viewforum.php?f=67
Alan Seiden Consulting
Thursday, February 6, 14
67
IBM i: Fertile Ground for PHP Developers
68. More resources
• IBM i blogs
Jon Paris, Susan Gantner: ibmsystemsmag.blogs.com/iDevelop/
Trevor Perry: blog.angustheitchap.com
Mandy Shaw: iperimeter.blogspot.com
Steve Will: ibmsystemsmag.blogs.com/you_and_i/
• PHP on i blogs
Mike Pavlak: mikepavlak.blogspot.com
Alan Seiden: alanseiden.com
• Publications:
iPro Developer, MC Press Online, IBM Systems Magazine
Alan Seiden Consulting
Thursday, February 6, 14
68
IBM i: Fertile Ground for PHP Developers
71. Contact | Get tips
Alan Seiden
Alan Seiden Consulting
Ho-Ho-Kus, NJ
alanseiden.com
alan@alanseiden.com
Alan Seiden Consulting
Thursday, February 6, 14
●
201-447-2437 ● twitter: @alanseiden
71
IBM i: Fertile Ground for PHP Developers