PHPlus Framework + IDE for Rapid Web Application Development using PHP



Similar documents
Firewall Builder Architecture Overview

IBM Rational Web Developer for WebSphere Software Version 6.0

LAMP Server A Brief Overview

HTML5. Turn this page to see Quick Guide of CTTC

SOFTWARE TESTING TRAINING COURSES CONTENTS

WebRatio 5: An Eclipse-based CASE tool for engineering Web applications

Software Automated Testing

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

Software Development Kit

AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev

Rocket AS v6.3. Benefits of upgrading

Chapter 12 Programming Concepts and Languages

Reusability of WSDL Services in Web Applications

Proposal for a Vehicle Tracking System (VTS)

OpenText Information Hub (ihub) 3.1 and 3.1.1

Automation using Selenium

LICENSE4J FLOATING LICENSE SERVER USER GUIDE

Open EMS Suite. O&M Agent. Functional Overview Version 1.2. Nokia Siemens Networks 1 (18)

Choosing a Content Management System (CMS)

How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip

Online Enrollment and Administration System

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

Short notes on webpage programming languages

Pattern Insight Clone Detection

XML Processing and Web Services. Chapter 17

Avaya Aura Orchestration Designer

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS

design coding monitoring deployment Java Web Framework for the Efficient Development of Enterprise Web Applications

About This Document 3. Integration and Automation Capabilities 4. Command-Line Interface (CLI) 8. API RPC Protocol 9.

Efficiency of Web Based SAX XML Distributed Processing

Log Analyzer Reference

Sports Management Information Systems. Camilo Rostoker November 22, 2002

An Easier Way for Cross-Platform Data Acquisition Application Development

Advantage of Jquery: T his file is downloaded from


USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE

Framework as a master tool in modern web development

WEB INTERFACE FOR CDS/ISIS. GENISISweb VERSION Deepali Talagala, General Secretary, Sri Lanka Library Association Colombo

A Database Re-engineering Workbench

LAMP [Linux. Apache. MySQL. PHP] Industrial Implementations Module Description

COMPANIES REGISTRY. Third Party Software Interface Specification. (Part 1 Overview)

Sabre Red Apps. Developer Toolkit Overview. October 2014

VOL. 2, NO. 1, January 2012 ISSN ARPN Journal of Science and Technology ARPN Journals. All rights reserved

Image Management Suite. Mini Thesis. Roland Foster. Supervisors: Mr. Mehrdad Ghaziasgar and Mr. James Connan. B.Sc. Honours

SECURE YOUR NETWORK WITH FIREWALL BUILDER

An Electronic Journal Management System

GUI and Web Programming

MDSplus Automated Build and Distribution System

PHP on IBM i: What s New with Zend Server 5 for IBM i

Performance Management Platform

Chapter 13: Program Development and Programming Languages

ASP &.NET. Microsoft's Solution for Dynamic Web Development. Mohammad Ali Choudhry Milad Armeen Husain Zeerapurwala Campbell Ma Seul Kee Yoon

Case Study. Data Governance Portal Brainvire Infotech Pvt Ltd Page 1 of 1

Semantic Stored Procedures Programming Environment and performance analysis

Business Application Services Testing

Web Application Development and Frameworks

MALAYSIAN PUBLIC SECTOR OPEN SOURCE SOFTWARE (OSS) PROGRAMME. COMPARISON REPORT ON NETWORK MONITORING SYSTEMS (Nagios and Zabbix)

Data Sheet VISUAL COBOL WHAT S NEW? COBOL JVM. Java Application Servers. Web Tools Platform PERFORMANCE. Web Services and JSP Tutorials

Open Source Content Management System for content development: a comparative study

Network operating systems typically are used to run computers that act as servers. They provide the capabilities required for network operation.

Last Updated: July STATISTICA Enterprise Server Security

AUTOMATING THE WEB APPLICATIONS USING THE SELENIUM RC

JAVA/J2EE DEVELOPER RESUME

How To Develop A Web Dialog For An Org Database With A Database On A Computer (Oracle)

10CS73:Web Programming

<Insert Picture Here> What's New in NetBeans IDE 7.2

Application Testing Suite: A fully Java-based software testing platform for testing Oracle E-Business Suite and other web applications

Document management and exchange system supporting education process

How To Understand Programming Languages And Programming Languages

Web Pages. Static Web Pages SHTML

Automate Your BI Administration to Save Millions with Command Manager and System Manager

Modern Software Development Tools on OpenVMS

Zend Server 4.0 Beta 2 Release Announcement What s new in Zend Server 4.0 Beta 2 Updates and Improvements Resolved Issues Installation Issues

Construction of a Web Server with a Database Facility Using Open Source Software

OVERVIEW HIGHLIGHTS. Exsys Corvid Datasheet 1

Microsoft Office System Tip Sheet

Visualization Service Bus

Administrator s Guide

Student Attendance Through Mobile Devices

Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server

Chapter 1. Dr. Chris Irwin Davis Phone: (972) Office: ECSS CS-4337 Organization of Programming Languages

RFID Based 3D Indoor Navigation System Integrated with Smart Phones

Instructor Özgür ZEYDAN BEU Dept. of Enve. Eng. CIV 112 Computer Programming Lecture Notes (1)

A Monitored Student Testing Application Using Cloud Computing

2 SQL in iseries Navigator

In this Lecture you will Learn: Implementation. Software Implementation Tools. Software Implementation Tools

V16 Pro - What s New?

Open Source & XBRL: the Arelle Project

DIABLO VALLEY COLLEGE CATALOG

2) Xen Hypervisor 3) UEC

BIRT Document Transform

Whitepapers at Amikelive.com

user guide version 4.1

Automating Testing and Configuration Data Migration in OTM/GTM Projects using Open Source Tools By Rakesh Raveendran Oracle Consulting

Advantages of PML as an iseries Web Development Language

CA Aion Business Rules Expert r11

Transcription:

PHPlus Framework + IDE for Rapid Web Application Development using PHP http://www.cse.mrt.ac.lk/~nabeelmy/phplus/ Hasitha Gajanayake, Mohamed Nabeel, Mohamed Nasly, Sampath Thilakumara Department of Computer Science & Engineering, University of Moratuwa, Sri Lanka. November, 2003 Abstract This white paper describes the PHPlus, an open source object oriented framework and an IDE (Integrated Development Environment) for rapid web application development using PHP 5 (PHP, PHP5 beta 2) for Linux Platforms. The framework strictly follows the MVC (Model-View- Controller) architecture where the presentation is clearly separated from the application logic and the approach is completely object oriented. In other words, our framework provides a clear boundary between the tasks of web designers and PHP programmers. The popularity of any framework largely depends on the ease of use. The framework is incorporated with the IDE, which has been developed as part of the project. (The IDE can be used with or without the framework, but it is encouraged to use the framework as it provides many advantages). The IDE provides project management, code editing facilities, deployment, auto-generation of clients for web services, autogeneration of skeletons of unit test cases, auto-generation of project documentation and CVS (Concurrent Versioning System) support, which are the core functions. The framework together with the IDE truly helps the rapid web application development. Contents 1. Introduction... 1 1.1 Importance of an open source framework and an IDE... 1 1.2 PHPlus: Framework. 2 1.3 PHPlus: IDE.... 5 2. Project objectives and goals 7 3. Conclusion 8 4. Acknowledgement 8 5. More information.. 9 6. Contact details...9 7. References. 9 1. Introduction 1.1 Importance of an open source framework and an IDE PHP (PHP) is a most widely used server side scripting language and its popularity has grown at a tremendous rate over the last few years. Current statistics (PHP Usage, Nov 2003) show that it is used in over 14 million domains. The main reasons for its popularity are multiplatform support, ease of use, higher performance and being an open source project. PHP allows scripts to be embedded inside HTML pages. When it comes to large-scale business application, it is experienced that this approach introduces a lot of overhead on future modifications and maintenance of the web site. In many cases it is found that the cost of maintenance far exceeds the cost of development. Many people have identified this problem and some have proposed their solutions in the form of frameworks as well. Eocene (EOCENE) is one such framework. Even though, these frameworks try to solve the problem mentioned above, frameworks themselves 1

introduce some serious problems. For example, Eocene uses a set of custom defined tags to generate dynamic content in HTML files and this introduces problems during the designing/redesigning of the web pages. In particular, the visual designing capability is lost and it does not completely separate the logic and the design. Our approach to solve this problem uses widely industry-accepted techniques. Our proposed framework closely follows the principles of Enhydra framework (ENHYDRA), which is used by millions of Java web application developers. Some of the drawbacks of this java-based framework are the resource intensiveness and low responsiveness. PHPlus framework works closely with DOM (DOM Level 1 spec, XML Spec v1) programming of PHP to generate dynamic content and is completely object objected. The framework is written for the latest version of PHP (version 5 beta2, released in Nov 2003, experimental). During the early research on the project, need for an IDE, which is easy to use and install was identified. PHPlus IDE, also open source, provides facilities that one finds in popular IDEs for other languages. The framework is integrated to this IDE to make the web development still faster. IDE provides many wizards to make the life of developers easier. IDE is developed using the Qt (QT) library, which supports multi-platform and in Red Hat Linux 9.0. 1.2 PHPlus: Framework Open source framework for rapid PHP web application development PHPlus is a completely object oriented framework developed for PHP version 5.0 or higher. It separates out the presentation and the business logic of the web pages, which is the core of any MVC architecture. The context model, which relates the system under consideration with the out side world, of the framework is shown below. Web Server Session Cache Configuration Config data Presentation + Controller Database DB storage Cached data Conversion System + DOM manipulator PHP DOM files Fig 1 Context model of the PHPlus framework 2

The framework consists of two main modules. 1. XMLCPlus parser 2. PHP class library. The XMLCPlus parser converts any HTML file (which is nearly XML compliant) in to a PHP class representing the content of the HTML file in PHP Document Object Model. The parser is able to tolerate a level of XML syntax errors. The parser uses XMLWrapp (XMLWRAPP), an open source DOM manipulation library written for C++, to parse HTML files. The PHP class library provides a comprehensive set of functionality to manipulate the PHP DOM class generated by the parser. It also provides facilities to perform frequently used tasks such as database manipulation, editing form controls during run time, etc. A brief description of the modules in the class library is listed below. Presentation Management This module handles incoming page requests and responsible for initialization process for the first request by any user. As a standard, each html file has a corresponding presentation PHP class and that presentation class may in turn utilize one or more business PHP classes. Database Access Management The user is provided a high-level class library to communicate with external databases. The main advantage of this module is that the user can change the underlying database server with a little or no modification to the existing PHP codes. Session Management Most of the production level web applications require to keep the data across multiple web pages during a user session. This module wraps the session functionalities that PHP engine provides and the user is provided with an easy-to-use interface. DOM manipulation PHPlus framework is based on the DOM of PHP. Each html file is converted to corresponding PHP class where the content of the html file is represented using the DOM of PHP. The DOM manipulation API provides users with a set of very powerful and easy-to-use functionalities to manipulate the DOM during run time. For example, the API provides methods to populate/clone tables when the result set from a SQL query is supplied as the argument, cutting down a considerable amount of development time. Form Controls This module provides users with a set of methods to manipulate standard form elements such as combo boxes, text boxes, radio buttons and so on. This facility comes in handy especially when one wants to dynamically update a form element during run time. Caching Caching improves the subsequent access to the page. The important parameters are what content should be cached and how long it should be cached. These parameters largely depend on the type of content, amount of traffic to the web site and the resources available in the server. 3

XML Controls XML being a platform independent way of representing data widely used to exchange data thorough the network. This module provides functionalities to manipulate the data and presentation of XML files. Data Flow Data flow diagram for request processing is shown below. Session Generated PHP DOM classes Page Request Receiver Controller + DOM manipulator HTML Generator HTML file Config Database User Classes (business & presentation) Config Data DB Data Cache Cached Data Fig 2 Data Flow Diagram for Request Processing Work Flow Work flow of using the framework is illustrated below. Web designer designed Static pages (eg: welcome.htm) with IDs inserted at the locations where the dynamic content should be generated. PHPlus Framework Class Library Business Classes <html><head> <title> welcome to PHPlus </title></head> <body> <h1> Welcome to the PHPLus framework </h1><br/> <h3> The time is <span id= time > [current time] </span></h3> </body> </html> XMLCPlus parser <?php /** * XMLCPlus generated code */ class WelcomeHTML extends DomHTML { }?> Presentation classes (eg: WelcomePrese ntation.php) HTML files displayed on the browser with dynamic content embedded Parser generated PHP classes (eg: WelcomeHTML.php) which represent HTML data in PHP DOM. High level methods are provided to manipulate the DOM. PHP Programmer creates these classes Fig 2 Work Flow Involved in Using the PHPlus Framework 4

1.3 PHPlus: IDE Open source IDE, with PHPlus framework integrated, for Linux platform PHPlus is an integrated development environment for developing PHP web applications rapidly and painlessly incorporating the features of PHPlus framework. It is developed on the Red Hat Linux 9.0 platform, extensively incorporating the Qt (QT) library 3.1. The support for the PHPlus framework is built into the IDE. The developer can call a wizard to parse the web pages designer created to produce the PHPlus framework compliant PHP web application, so he/she needs not to worry about the framework; rather he/she can concentrate on providing functionalities and making the application efficient. To ease the development of web applications and more importantly to make the process faster (note: Time to develop and market largely decides the success of any software project) the IDE supports many of the PHP code editing features such as syntax highlighting, and method discovery. Apart from the code editing features wizards such as documenter, unit test generator are provided to encourage good PHP programming practices. Further, the IDE provides supports for creating clients for SOAP (SOAP Spec v1.1) (Simple Object Access Protocol) web services on the fly, keeping up with the current trend of distributed application development. Once the project has been successfully completed, the IDE provides facility to deploy the web site to a web server. Some of the wizards make use of open source libraries to provide the intended functionalities, in keeping with our design goals. Fig 3 snap shot of PHPlus IDE 5

Main Modules of the IDE The following diagram illustrates the main modules present in the PHPlus IDE. CVS Configurator Project XMLCPlus Parser ApplicationWindow PHPClassParser Deployer SOAP Client Gen Documenter Unit Test Gen Wizards Editor SyntaxHighlighter DynamicTextParser Main Application Window The functionalities of the IDE are controlled by this module. This is the module which provides capabilities of a Multiple Document Environment (MDE) to the IDE. Project This module handles the creation of new projects either from scratch or from an already existing web application and maintenance of the project. Syntax Highlighter This provides keyword highlighting features for the PHPlus IDE. It can handle both the HTML and PHP syntax highlighting. Since the keyword highlighting rules are extracted from an external database it can cater for future changes in either language. Further, it can easily be extended for syntax highlighting of any other language. Class Parser It is through this module that the dynamic method discovery is achieved. For this it uses two parsers; dynamic parser and static parser. Static parser implements the logic for parsing a PHP file and the dynamic parser handles the presentation of the features discovered by the static parser. This feature is very essential for rapid application development. CVS Client When a team of developers work together, it is very important to use a facility to productively share codes among developers without creating any conflicts. Further, one of the most expensive areas of software development is software change management (adding or improving functionalities) and maintenance. The time and cost can be greatly reduced using several techniques. Making use of CVS (Concurrent Versioning System) is one such method. It Keeps track of changes done to the files in web applications by different developers and controls the software versions. This module eases this task by providing a graphical interface for the CVS server. It can handle many of the commonly used CVS commands such as add, commit, update, remove, etc. Wizards 6

The PHPlus IDE provides several built-in wizards to ease the task of the developer and to facilitate rapid application development by cutting down the time on repeatedly performed tasks. Each of the wizards is briefly described below. o XMLCPlus Parser Wizard XMLCPlus parser, as mentioned earlier, converts any HTML file into a corresponding PHP class. This wizard allows user to generate PHP classes easily and quickly. o Deployer Wizard As the name suggests, Deployer is a graphical tool to deploy the web site to a web server. o Documentor Wizard Documentation is a very essential part of any successful project. The user writes the codes with java-doc compliant comments inserted. This wizard produces a separate documentation making use of these comments. Open source PEAR::Documentor (PEAR::Documentor) PHP class library is used for this purpose. o Unit Test generator Wizard Testing the web application for making sure older functionalities work as expected when a change is done to one part of the application is not only time consuming but also frustrating activity, if care has not been exercised to incorporate some proven techniques. Unit testing is one such technique widely used in many programming languages. This wizard creates skeleton test cases for any PHP class. Open source PEAR::PHPUNIT (PEAR::PHPUNIT) PHP library is used for this purpose. o SOAP client generator Wizard With web services becoming the de facto standard of developing distribute applications in a platform neutral manner any useful web application should be able to consume the functionalities of web services. This wizard generates SOAP clients for web services which can in turn be used to consume the services provided. Open source PEAR::SOAP (PEAR::SOAP) PHP library is used for this purpose. 2. Main Project Objectives/Goals Open source for Linux platform PHP engine itself is freely available and the majority of software development with PHP is carried out on UNIX-like platforms. The main reasons for this are cost benefits, wide support by different user communities and the web servers are reliable and hardly crash. Our framework and the IDE make use of many open source libraries and applications. Because of the above reasons, PHPlus is made open source. Further, we believe we can reach larger developer community (more feedback) and encourage anyone to join with us to further develop this project. Separation of design and logic The main objective of the framework is to separate the tasks of web designers and web developers. This approach paves way for collaborative effort and rapid application development. This is achieved through the existing HTML tags and no new tags are introduced to the web pages. Use of PHP 5 PHP framework for the future PHP 5 beta 1 was released in May, 2003 and beta 2 was released very recently in Nov, 2003. Even though these versions still contain known bugs and are not suitable for production level web sites, we still decided to use PHP 5 due following reasons. It provides better object oriented programming support through Zend Engine2 (Zend Engine2). DOM programming is made completely object oriented and no backward compatibility is provided. It provides functionalities to manipulate XML files which were absent in previous versions. As these features are at the core of our framework, if the framework was developed using PHP 4.3 (existing stable version), the framework would be soon obsolete and not support many OOP features. Mainly due to this fact and incorporation of many open source libraries, our project followed a research based approach. 7

Use of DOM of PHP to manipulate HTML files industry standard Millions of Java web application developers use Java DOM based framework, Enhydra, to develop production level large scale web sites. The main reasons for this are ease of use for novices and experienced users have more control over the framework by extending the existing functionality to manipulate the DOM. PHPlus framework follows a similar approach in terms of principles. PHP DOM is based on libxml2 (LIBXML2) which is the fastest freely available XML manipulation library. We believe following the standard techniques rather than custom made one increase the acceptance of the framework. Rapid application development without compromising the efficiency of the application Speed and quality are no longer considered to be two contradicting ends. The objective of framework API is not to wrap the PHP functions into PHP classes but rather to provide developers methods to perform complex and time consuming tasks which require considerable amount of coding. Efficiency of the framework class library is very important for quick response time in accessing web pages. Easy-to-use IDE Any GUI application should be user-centered, logical and consistent to obtain a wide user acceptance. As the IDE is developed for the Linux platform, it closely follows the style (menu options, dialog boxes, wizards and help) of the major open source IDEs in Red Hat Linux 9.0. (Examples: Qt Designer, KDevelop (KDEVELOP) Environment) Framework is incorporated to the IDE, in keeping with the fact that the popularity of any framework largely depends on its ease of use. In addition to the framework, IDE plays a major role in rapid application development. IDE needs to provide most of the features found in popular IDEs for other languages and encourage good programming practices through the incorporation of wizards for unit test case generation and project documentation. To cater for current trends, IDE should provide tools to auto-generate clients for web services. The idea is to make the PHP web development still faster cutting down cost and development time. 3. Conclusion In keeping with our design goals and objectives, we were able to achieve many successes. The most important one out of them was our successful development of a Framework and an IDE for PHP to truly support rapid application development. The architecture of the framework alone provides a great platform for the developers to produce quality software without compromising the speed. We were able to put many software engineering principles into practice, while gaining invaluable experience in team work. We believe we have done a great team work and were able to successfully face several great challenges during the past 6 months to come up with PHPlus. We hope to see this work continue into the future adding more functional and non-functional capabilities to both the framework and the IDE. 4. Acknowledgements PHPlus has been developed successfully with a great contribution of several people for a period of six months. We like to appreciate their guidance, encouragement and willingness since without their support the project would not have been a success. We would like to give our sincere gratitude to Dr. Sanath Jayasena (sanath@cse.mrt.ac.lk), who is the supervisor of our project for helping us in many ways to make our project a success. We are also grateful to Mr. Shantha Fernando (shantha@cse.mrt.ac.lk) who has been behind us guiding all the projects from the very first day and giving us very valuable feedbacks. We would also like to thank our Software Engineering lectures, Mr. Samisa Abesinghe and Dr. Chandana Gamage, for their inspiring lectures on the subject and the practical feedbacks. We are also grateful to the whole staff of the Department of Computer Science and Engineering 8

including the head of the department Dr. Ashok Peris, and all the CSE colleagues for their support in many forms and enthusiasm. 5. More Information Please visit http://www.cse.mrt.ac.lk/~nabeelmy/phplus/ to learn more about the project and to download latest versions of the software (PHPlus framework and PHPlus IDE), documentation and the user guide. 6. Contact Details This project is a collaborative effort of four members and any of them can be contacted through the following emails. Hasitha Gajanayake <hasithag@cse.mrt.ac.lk> Mohamed Nabeel <nabeelmy@cse.mrt.ac.lk> Mohamed Nasly <naslymym@cse.mrt.ac.lk> Sampath Thilakumara <sampathx@cse.mrt.ac.lk> Internal Supervisor : Dr. Sanath Jayasena <sanath@cse.mrt.ac.lk> Project Coordinator : Mr. Shantha Fernando <shantha@cse.mrt.ac.lk> 7. References Books: BALL, B. and PITTS, D. et al., 1999. Red Hat Linux 6 Unleashed, 1 st edn. (Ch. 9, 30, 25) ELMASRI, R. and NAVATHE, S.B., 2000. Fundamentals of Database Systems, 3 rd edn. (Ch. 3, 7, 9) HERMANS, P. and NORTH, S., 1999. XML in 21 Days, 1 st edn. (Ch.1 to 7, 15, 16, 18) KULCHENKO, P., TIDWELL, D., SNELL, J., 2002. Programming Web services with SOAP, 1 st edn. (Ch. 1, 2, 3, 5) PRESSMAN, R.S., 1997, Software Engineering A Practitioner s Approach, 4 th edn. SOMMERVILLE, I., 2001. Software Engineering, 6 th edn. Important Web Sites/Pages: ENHYDRA - http://www.enhydra.org, a web development framework for Java, which extensively uses Java DOM programming. Lasted accessed on 15/11/2003 EOCENE - http://www.eocene.net, a web development framework for PHP, which uses a set of custom defined tags. Last accessed on 15/11/2003 DOM level 1 spec. - http://www.w3.org/tr/rec-dom-level-1/ - Document Object Model Level 1 Specification. Provides details on core DOM and HTML DOM. Last accessed on 15/11/2003 KDevelop, (1998 2003) - http://www.kdevelop.org/ a C/C++ IDE for UNIX like platform and publicly available under the GPL. Last accessed on 19/11/2003 LIBXML2 - http://www.xmlsoft.org/intro.html XML C parser and toolkit developed for the Gnome project and it is free software available under the MIT License. 9

Last accessed on 20/11/2003 PEAR - http://pear.php.net/ - Provides many reusable components for PHP and available under PHP license. Last accessed on 22/11/2003 PEAR::Documentor - http://pear.php.net/package/phpdocumentor - provides automatic documenting of php API directly from the source. Author - Greg Beaver <http://pear.php.net/user/cellog> Latest version 1.2.3 (released on 13/10/2003) Last accessed on 21/11/2003 PEAR::PHPUNIT - http://pear.php.net/package/phpunit - Regression testing framework for unit tests. Author - Sebastian Bergmann < http://pear.php.net/user/sebastian> Latest version 1.0.0 alpha 2 (released on 25/9/2003) Last accessed on 20/11/2003 PEAR::SOAP - http://pear.php.net/package/soap - Authors - Shane Caraveo <http://pear.php.net/user/shane> Arnaud Limbourg <http://pear.php.net/user/arnaud> Latest version 0.8RC2 (released on 17/9/2003) Last accessed on 20/11/2003 PHP http://www.php.net home page of the PHP engine which is widely used for web based application development. Online manual, latest PHP version (5.0 beta 2) can be downloaded. Last accessed on 20/11/2003 PHP 5 beta 2 - http://www.php.net/get/php-5.0.0b2.tar.bz2/from/a/mirror - place where PHP 5 beta 2 can be downloaded. Last accessed on 25/11/2003 PHP Usage, Nov 2003 - http://www.php.net/usage.php, survey on PHP usage carried out by NetCraft (http://www.netcraft.com). Last accessed on 15/11/2003 QT - http://www.trolltech.com/download/qt/x11.html - C++ library for developing GUI based applications for UNIX-like platforms. (Windows version is also available) Free Edition is provided under both the Q Public License ("QPL") and the GPL. A free visual designer is available for Qt. Last accessed on 15/11/2003 SOAP Spec 1.1 - http://www.w3.org/tr/soap/ - Simple Object Access Protocol version 1.1. Last accessed on 3/11/2003 XMLWRAPP - http://pmade.org/software/xmlwrapp/ - C++ library for working with XML data. It provides a simple and easy to use interface for the very powerful libxml2 XML parser and the libxslt XSLT engine. Last accessed on 21/11/2003 XML Spec 1.0 - http://www.w3.org/tr/rec-xml Paper describes the XML specification version 1.0 and the second edition. Last accessed on 25/10/2003 Zend Engine2 - http://www.php.net/zend-engine-2.php - PHP engine handles OOP through this module. Last accessed on 22/11/2003 10