Skip to main content

End-to-end Ajax application development, Part 1: Set up an Ajax environment with a scenario

Separate your application tiers to produce a clean and elegant Web app

Senthil Nathan (sen@us.ibm.com), Senior Software Engineer, IBM 
Photo of Senthil Nathan
Senthil Nathan is a senior software engineer at the IBM T.J. Watson Research Center in Hawthorne, New York. He has 22 years of experience in building software for different kinds of enterprise applications. His current professional interests are fully buzzword-compliant -- including SOA, Web services, Java 2 Platform, Enterprise Edition (J2EE), PHP, Ruby On Rails, Web 2.0, and Ajax development.

Summary:  Ajax (Asynchronous JavaScript + XML) is quickly emerging as a modern way of bringing desktop-quality software features to Web applications running on browsers. Open source software such as Linux-Apache-MySQL-PHP (LAMP) and open standards-based Java™ 2 Platform, Enterprise Edition middleware, such as IBM® WebSphere® Application Server Community Edition, provide excellent capabilities to develop and deploy Ajax Web applications. This article is the first of a three-part series about developing an end-to-end Ajax application using an open source middleware stack. If you're a novice Web developer who can read and understand the code written in XHTML, CSS, JavaScript, PHP, and SQL, this article is for you. After you're done, you will have a good understanding of the basic concepts of Ajax and its potential in the context of a three-tier Web application scenario.

View more content in this series

Date:  05 Jun 2007
Level:  Intermediate
Activity:  7463 views
Comments:  

Ajax is part of the Web 2.0 technology umbrella that is gaining a lot of attention these days among architects, developers, and product managers on one side and consumers of Web-based applications on the other side. The Ajax programming technique comprises a stellar collection of proven technologies such as XHTML, JavaScript, CSS, and XML Http Request (XHR). Popular service access and data interchange techniques, such as Representational State Transfer (REST) and JavaScript Object Notation (JSON), also lend themselves as a natural fit to Ajax techniques. Such proven strengths on the client tier can be combined with open source technologies such as PHP, Python, and Ruby to extend the Ajax story into mid-tier application development. Added to this mix is the open source database success of MySQL in the data tier.

Other natural fits with Ajax programming techniques include an equally impressive array of Eclipse-based development tools, which are open source and free to download and use. Combined together, all of the previously mentioned client-tier, mid-tier, and data-tier technologies provide a compelling, dynamite combination to experiment with and learn about Web application development. But how do you go about developing and deploying an end-to-end Ajax application? This three-part article series answers that question by walking you through an end-to-end development scenario.

A typical enterprise-grade Web application deals with factors that make it highly robust. To learn about the core building blocks of the selected open source offerings, our scenario doesn't deal with critical enterprise-class features such as security, scalability, and availability -- you should learn about these features from other sources outside of this article. All the discussions in this article apply only to a particular class of Ajax application described in our scenario. In particular, this series provides details about creating a MySQL database, designing and developing mid-tier/database logic in a PHP runtime environment, and then creating a true single page Ajax client interface using JavaScript. This series includes code samples and shows you the necessary steps involved in developing and testing an Ajax application in Eclipse and then deploying it in Firefox (client tier), Zend PHP (mid tier), and MySQL (data tier). This end-to-end discussion, which incorporates XHTML, CSS, JavaScript, XHR, DOM, REST, SOAP, JSON, XML, PHP, MySQL, and Eclipse into your application, exposes you to many of the features built into the previously mentioned open source platforms. In a nutshell, this series introduces you to an approach that results in a clean and elegant Web application design by providing a nice separation between the application tiers.

Introduction

As the title suggests, this three-part series provides hands-on details about some of the core capabilities of developing an end-to-end Ajax-style application. Such capabilities include learning about specific technologies in the following three application tiers:

  • Client tier
  • Mid tier
  • Data tier

In the client tier, such technologies include XHTML, CSS, JavaScript, and XML Http Request (XHR). Among several wonderful mid-tier open source technologies already mentioned, this series uses PHP because of its simplicity and its current widespread availability. The MySQL database is used in the data tier. In addition, this series uses popular Web services technologies such as REST, SOAP, JSON, and XML. You will use all these technologies in the context of an all-in-one scenario.

Install and configure both the runtime and development environments you need to get going with your end-to-end Ajax application development by following the steps in the next sections. Then, instead of the usual Hello World application, for a change, you will analyze and understand a non-trivial banking scenario. This scenario explains the use of all the previously mentioned technology components in the context of a fictitious bank, its back-end database, a browser-based bank customer portal, and a real-life third party finance-related Web service.

Required software packages

To develop and deploy the bank scenario that spans into all three application tiers, you need to make the following choices in those tiers:

  • Web browser
  • Database server
  • Web server
  • Mid-tier server
  • IDE for mid-tier code development
  • IDE for client tier code development

Among the many open source offerings available to fill the need in every layer, the scenario in this series uses the following:

Web browser: Mozilla Firefox 2.0.0.4 or later. Among Firefox's many strengths are usability, online security, and customization through hundreds of add-on applications. You'll also use Firebug, a browser application debugger add-on to Firefox.

Database server: MySQL 5.0.41 or later. It works in client/server mode and embedded mode. It is completely written in C and C++. It is available in two editions: Enterprise server and Community server. Community server is free and is adequate for the needs of the bank scenario in this article.

Web server: Apache Web server 2.2.2. It is highly configurable and extensible with third-party modules.

Mid-tier server: Zend Core 2.0.1 or later. This free, open source server supports PHP 5. It enjoys strong community support. It bundles Apache Web server and supports databases such as MySQL, IBM DB2®, and Oracle. Zend Core for IBM is specially tuned to work well with IBM DB2. Figure 1 shows an overview of Zend Core.

Mid-tier IDE (Integrated Development Environment): Eclipse PDT 0.7 RC3 or later. PDT is the PHP Development Tools framework for the Eclipse platform that includes all development components necessary to develop PHP applications. PHP debugging is also supported in this IDE. Zend, IBM, and other companies are contributing it to open source. At the time of this writing, it is brand new and arrives just in time for developing our bank scenario's mid-tier logic.

Client tier IDE: Aptana Web IDE 0.2.8.14433 or later. This is a free, open source, cross-platform, JavaScript-focused development environment for building Ajax browser applications. It provides code support for JavaScript, HTML, and CSS. It supports JavaScript debugging and includes built-in support for several Ajax frameworks. Above all, it is based on Eclipse.

Follow the next sections to install and set up these open source packages that will lead you into developing and deploying an end-to-end Ajax application. (Note: All the installation and development directions in this article are for the Microsoft® Windows® operating system.)


Figure 1. Zend Core overview
Zend Core overview

Installing Mozilla Firefox

Use the following steps to install Mozilla Firefox:

  1. Create a temporary directory called c:\temp\dw-ajax where you can store all the install files for the different software packages.
  2. Download Mozilla Firefox version 2.0.0.4 or later from the Mozilla URL shown in the Resources section and save it to c:\temp\dw-ajax.
  3. Install Mozilla Firefox 2.0.0.4 by running the file you downloaded in Step 2:
    1. In the Mozilla setup wizard, click Next.
    2. Accept the license agreement and click Next.
    3. Select Custom and click Next.
    4. Ensure that both the DOM Inspector and Quality Feedback Agent options are selected and click Next.
    5. Accept the default installation folder and click Next.
    6. Make sure the first two options (On my Desktop and In my Start Menu Programs Folder) are not selected.
    7. Once the installation is complete, ensure that the Launch Mozilla Firefox now option is selected.
    8. Click Finish.
    9. If you are prompted to make Mozilla Firefox your default browser, select Yes.
    10. Start the Firefox browser and go to the Mozilla Firefox URL shown in the Resources section.
    11. Click Add-ons at the top of the page.
    12. In the search bar within the Firefox Web site, type Firebug and click Search.
    13. In the search results, click Firebug.
    14. Click Install now; in the resulting pop-up dialog box, click Install now.
    15. Click Restart Firefox.
    16. In Firefox, click Tools->Firebug->Open Firebug.
    17. If you see a message stating that Firebug is disabled at the bottom of the browser window, click Enable Firebug.
    18. Close the Firefox browser.

Installing MySQL

Perform the following steps to install the MySQL database server:

  1. Go to the MySQL URL shown in the Resources section.
  2. Click MySQL Community Server. (This normally takes you directly to the currently recommended GA version.)
  3. Download Windows (x86) Zip/Setup.EXE for version 5.0.41 or later and store it in the c:\temp\dw-ajax directory. (This .zip file contains only one file, which is an executable install file for MySQL.)
  4. Extract the MySQL executable install file from the .zip file and store it in the c:\temp\dw-ajax directory.
  5. Run the executable file (Setup.exe) you extracted in Step 4:
    1. Click Next.
    2. Select the setup type as Complete and click Next.
    3. Click Install.
    4. Select Skip Sign-Up and click Next.
    5. Ensure that Configure the MySQL Server now is selected and click Finish. The MySQL Server Instance Configuration Wizard opens.
    6. Click Next.
    7. Select Detailed Configuration and click Next.
    8. Select Developer Machine and click Next.
    9. Select Select Multifunctional Database and click Next.
    10. For InnoDB Tablespace Settings, accept the default options and click Next.
    11. Select Decision Support (DSS)/OLAP and click Next.
    12. Ensure that both the Enable TCP/IP Networking and Enable Strict Mode options are selected and click Next.
    13. Select Standard Character Set and click Next.
    14. Ensure that both the Install As Windows Service and Include Bin Directory in Windows PATH options are selected and click Next.
    15. Enter the new root password as webtech and click Next.
    16. Click Execute.
    17. Click Finish.

Installing Apache Web server and Zend Core PHP server

Zend Technologies Ltd. offers Zend Core free of cost. It includes the Apache Web server. Perform the following steps to install both the Apache Web server and the Zend Core PHP server.

To download Zend Core for free, you have to be registered at the Zend Web site. If you are not registered already, go to the Zend Core URL as shown in Resources and register.

  1. Once you are registered at the Zend Web site, go to the Zend Core URL shown in Resources and log in to enter the download area.
  2. Select the Agree to EULA check box and click Submit.
  3. In the Zend Core Generic section, download Zend Core Windows x86 (Version v2.0.1 or later) and save this .zip file in your c:\temp\dw-ajax directory. (This .zip file contains only one file, which is an executable install file for Zend Core.)
  4. Extract the Zend Core executable install file from the .zip file and store it in your c:\temp\dw-ajax directory.
  5. Run ZendCore-v2.0.1-Windows-x86.exe or a later version:
    1. Click Next.
    2. Accept the license agreement and click Next.
    3. Select setup type as Complete and click Next.
    4. Select Skip Sign-Up and click Next.
    5. Accept the default destination location and click Next.
    6. Select Install bundled Apache 2.2.2 and click Next.
    7. Accept the default port 80 and click Next.
    8. Accept the default extension association and click Next.
    9. Enter the administrative console password as webtech and click Next.
    10. Ensure that Zend Network Registration is set to No and click Next.
    11. Click Install to begin installation and wait until Zend Core is fully installed. After copying the Zend Core files, the installer installs a redistributable version of Microsoft Visual C++ on your machine. After that, the Zend Core install program ends by displaying a message dialog with the Zend Core Administration URL.
    12. Click OK to close the message dialog.
    13. Click Finish to close the install completion dialog.
    14. Go to the directory c:\Program Files\Zend\Apache2\bin on your computer and double-click the ApacheMonitor program. The Apache Monitor appears on the taskbar as a tray icon. You can use this tray icon to start and stop the Apache and Zend servers.
  6. Configure Zend Core:
    1. From the Windows Start Menu, select Programs->Zend Core->Zend Core Administration Console.
    2. Enter the password webtech.
    3. Click the Configuration tab (Refer to Figure 2).
    4. Click the Extensions tab.
    5. Locate curl - cURL in the list and click above the red circle on the Enable/Disable bar so that the red circle turns to green.
    6. Locate mysqli - MySQL improved in the list and click above the red circle on the enable/disable bar so that the red circle turns to green.
    7. Click Save Settings at the top right corner of this page.
    8. Click Logout.
  7. Click the Apache tray icon on the taskbar and select Apache2 HTTP Server->Restart.

Figure 2. Zend Core configuration screen
Zend Core configuration

Installing Eclipse's PHP Development Tool (PDT)

At the time of this writing, PDT is only a release candidate and not yet a fully released plug-in for the Eclipse platform. Perform the following steps to install and configure the Eclipse PDT. (The PHP Development Tool is available from both the Eclipse and Zend Web sites, but the Zend Web site adds a PHP Debugging Tool for Zend Core.)

  1. Go to the Eclipse PDT download page at zend.com as shown in the Resources section.
    1. Download Version 0.7 RC3 and store the all-in-one .zip file in the c:\temp\dw-ajax directory. (For instance: pdt-0.7.0.S20070401-RC3_debugger-0.1.7-all-in-one-win32.zip.)
    2. Note that Eclipse pdt-0.7.0.S20070401-RC3 was used to test all the instructions in this article series.
  2. Unzip the Eclipse PDT Zip file to c:\ (for instance: unzip.exe pdt-0.7.0.S20070401-RC3_debugger-0.1.7-all-in-one-win32.zip -d c:\. This should result in a directory called c:\eclipse with the PDT files in it.)
  3. Create an Eclipse workspace directory (for example: md c:\eclipse\workspace).
  4. Configure PDT with MySQL libraries:
    1. Go to the MySQL PHP connector Web site as shown in the Resources section.
    2. Click the link for mysqli extension (PHP 5.2.0).
    3. Download the .zip file (for instance: php_5.2.0_mysqli_5.0.27-win32.zip) and store it in the c:\temp\dw-ajax directory.
  5. Unzip the .zip file carefully into the c:\eclipse\plugins\org.zend.php.debug.debugger.win32.x86_0.1.7\resources\php5 directory (Unzip.exe php_5.2.0_mysqli_5.0.27-win32.zip -d C:\eclipse\plugins\org.zend.php.debug.debugger.win32.x86_0.1.7\resources\php5).
  6. Edit the C:\eclipse\plugins\org.zend.php.debug.debugger.win32.x86_0.1.7\resources\php5\php.ini file and replace all the contents in that file with the contents of Listing 1. Make the following required changes and save the file:
    1. After replacing the contents of your php.ini file, merge the first two lines below the [Zend] section as shown here: extension_dir=C:\eclipse\plugins\org.zend.php.debug.debugger.win32.x86_0.1.7\resources\php5
    2. If needed, modify it with the correct Zend debugger directory name as in your Eclipse installation.
  7. Switch to the c:\eclipse directory and start Eclipse by typing eclipse.exe.
  8. In the Workspace Launcher dialog box, change the workspace to c:\eclipse\workspace and click OK.
  9. Close the Welcome tab in the Eclipse IDE.
  10. In the Eclipse IDE, select Window->Open Perspective->Other, select PHP, and click OK.
  11. In the bottom left frame of the IDE, select the PHP Functions view. Ensure that you can see a list of built-in PHP library functions.
  12. In Eclipse, click Window->Preferences:
    1. Expand and select PHP->Debug.
    2. Select the Break at First Line check box and click Apply.
    3. In the same PHP Debug page, select PHP Servers ... that appears in the Debug Options section.
    4. In the list, select Default PHP Web Server and click Edit.
    5. Select the Publish Projects to this Server check box.
    6. In the Directory field, browse to c:\Program Files\Zend\Apache2\htdocs and click OK. (Refer to Figure 3.)
    7. Click OK.
    8. Click OK again to close the Preferences dialog.
  13. Select Window->Web Browser->Firefox.

Listing 1. Contents of php.ini file
                
; Remember to merge the first two lines below the [Zend] section
; to appear in one line.
; Otherwise, Eclipse PDT (PHP Development Tool) will not work properly.
; If needed, modify it with the correct Zend debugger directory name
; as in your Eclipse installation.

[Zend]
extension_dir=
  C:\eclipse\plugins\org.zend.php.debug.debugger.win32.x86_0.1.7\resources\php5
include_path="."
extension=php_mysqli.dll
zend_extension_ts=.\ZendDebugger.dll
zend_debugger.allow_tunnel=127.0.0.1/32
zend_debugger.allow_hosts=127.0.0.1/32
zend_debugger.expose_remotely=always
	      


Figure 3. Eclipse PDT configuration
Eclipse PDT configuration

Installing Aptana Web IDE

Aptana Web IDE installation is just a matter of adding a plug-in to the Eclipse PDT you installed previously. As of this writing, Aptana Web IDE version is 0.2.8.14433. Perform the following steps to install the latest version of Aptana Web IDE for Ajax development:

  1. From the Help menu in Eclipse, select Software Updates->Find and Install... to open an Install/Update pop-up window.
    1. On the Install/Update pop-up window, choose the Search for new features to install option and click Next.
    2. To set up a new remote site to scan for updates, click the New Remote Site... button to open a New Update Site pop-up window.
    3. On the New Update Site pop-up window, type Aptana in the Site Name text box.
    4. In the URL text box, type the URL for the Aptana update site: http://update.aptana.com/install/3.2/ and click OK.
    5. Click Finish to open the Updates window.
    6. In the Updates window, select the Aptana update check box and click Next.
    7. Choose the option to accept the terms of the license agreement and click Next.
    8. Click Finish.
    9. If you are prompted with a Feature Verification dialog box, select Install All.
    10. If you are prompted to restart Eclipse, click Yes to restart.
  2. In the Eclipse IDE, select Window->Open Perspective->Other, select Aptana, and click OK. If the Aptana perspective becomes active, then the installation is good.

If everything worked so far, you should have a fully working Eclipse IDE that you can use to develop, test, and debug the bank scenario application artifacts such as XHTML, JavaScript, XHR, PHP, and MySQL code. Your Eclipse IDE is also configured to work with the Zend Core PHP server, all in one box. This dynamite combination of Eclipse and Zend Core is ready to handle all your Ajax development and deployment needs. Now let's look at the non-trivial scenario that you will develop and deploy in this powerful environment.

Ajax-PHP-based scenario

Figure 4 depicts a non-trivial scenario that deals with providing certain banking-related functions in an Ajax-PHP environment. This scenario introduces you to some of the technology components and follows the traditional architecture style by spanning into the following three tiers:

  • Client tier
  • Mid tier
  • Data tier

In the client tier, this scenario uses browser-based controls enabled through single-page XHTML user interface elements along with XHR and JSON. In the middle tier, it uses PHP techniques such as SimpleXML, Services_JSON, HTTP request processor, and PHP SOAP client. In the data tier, it uses SQL and ODBC.

This scenario can also be segmented according to the applied technology components:

  • Browser
  • PHP server
  • PHP Web service client
  • Database server
  • .NET-based third-party Web service hosted on the Internet

As you can see, this scenario satisfies basic and important aspects of an Ajax environment. Out of the many possible technical solutions available, you will choose a particular implementation approach that maximizes your potential to learn more from this scenario. The overall design goal is not to complicate the scenario by providing unnecessary flashy screens on the client tier. Proper care is given to make it easier for you to understand the details involved in the development and deployment of various scenario artifacts within the context of the Eclipse IDE (PDT and Aptana) and Zend Core. In addition, the scenario also demonstrates the interoperability characteristics by including PHP Web service client access to a .NET-based, real-life Web service hosted on the Internet. As previously stated, to focus only on the core building blocks of the selected open source offerings, this scenario doesn't deal with security, scalability, or availability features -- you should take some time to learn about them from other sources outside of this article.


Figure 4. Bank scenario
Bank scenario

Scenario details

Refer to Figure 4 as you go through the following sections to understand the scenario details. This scenario highlights the implementation of a few of the commonly used bank teller functions implemented in an Ajax and PHP environment. This section dissects various modules that come together to form this scenario.

Bank data (MySQL) - Data

The bank's customer-related information is kept in a database table. You will create this table in the MySQL database. It is a compact-sized, yet powerful, community edition server. For the purposes of this exercise, all the customer data will be populated in the database table at once. After this, the stored customer data can be retrieved and updated through the ODBC driver provided with Zend Core. The type of database access, such as read or write, will be determined based on the nature of the bank teller function.

Bank Logic functions (PHP code) - Model

It is now time to think of the core bank logic required to provide the bank teller functions. In this scenario, you need to provide support for the following bank teller functions:

  • Get account information for all customers in the bank.
  • Deposit money to a particular account.
  • Debit money from a particular account.
  • Get a consolidated portfolio report for a particular account.

Because these four functions require access to the database, a PHP file is created to provide the necessary database functions. It allows the encapsulation of database functions from the rest of the mid-tier logic. By exposing the core bank teller functions this way, you can package database results in a common way for all the callers of these functions. A PHP associative array carries the results of the core bank logic.

Bank Portal user interface (Ajax) - View

Turn your attention now to providing a user interface for bank tellers to initiate the four core functions. The core bank logic encapsulated in the PHP code can be accessed through a thick or thin client. This scenario addresses developing a single, page-based Ajax browser user interface for the bank tellers.

When PHP is used in the mid tier, it is a normal practice for the PHP code to output the necessary XHTML, CSS, and JavaScript. In this scenario, we will completely relieve the PHP code from outputting any client user interface code. That means all the code associated with the Bank Portal will be delivered only during client startup time. You will code all the user interface elements in XHTML and CSS and the client-side logic in JavaScript. All of these artifacts (XHTML, CSS, and JavaScript) together will contain all the user interface elements that are needed to satisfy the Bank Portal requirements in your bank scenario. That means Apache Web server needs to deliver the client user interface-related content to the browser only once. This one-time code delivery to the browser is done when the bank teller visits the URL for this application. Subsequently, the Bank Portal client contacts the server only for data exchanges and not for presentation content such as XHTML, CSS, and JavaScript.

This is a departure from the usual practice of the Click and Wait paradigm, where the browser contacts the mid-tier server to download presentation content on each and every user action. One of the salient features of single page-based Ajax applications is not to do any further page fetching from the server after the initial download of the presentation content occurs at the time of startup. After that point, the single page-based Ajax client application contacts the mid-tier server logic only to do application-specific data exchange. This results in a compact mid-tier logic that focuses purely on the business logic rather than carrying the additional load of delivering presentation content to the browsers. This approach brings a nice separation between the application tiers that results in a clean and elegant Web application design.

Bank Actions module (PHP code) - Controller

Having discussed the browser user interface, it is now time for you to think about how the bank actions selected by the bank teller can be performed over the network. In this scenario, you send the teller-selected Bank Action command along with the required input data to a PHP code module, which acts as a broker/mediator between the browser and the core bank logic buried in a PHP module (as described in a previous section). The Bank Actions PHP module is designed to support REST-style invocation of the service functions in the mid tier. The Bank Actions PHP module receives the Bank teller Action command and issues a function call to the Bank Logic PHP module to get the required results. The appropriate bank logic is invoked to access the database and deliver the results. Once the Bank Logic module returns, the Bank Actions module relays the results back to the browser as JSON-formatted data. In summary, the Bank Actions PHP module acts as a dispatcher for bank teller requests to call the appropriate Bank Logic function to process those requests.

XML Web service client (SOAP access from PHP to .NET) - Helper

In addition to being a broker/mediator, the Bank Actions PHP module also acts as a PHP Web Service SOAP client to get the current stock value of a holding in a given customer portfolio. This is a good opportunity for you to learn about generating Web service clients in PHP. In this scenario, the Bank Actions PHP module makes a SOAP XML Web service call to a remote real-life Web service running on the Internet. This Web service is a .NET-based Web service that lets you experience the interoperability features of PHP. Here, you will also learn a little bit about XML parsing using PHP SimpleXML APIs.

By now, you should have a good idea about the high-level design goals of this scenario. More than anything, this outline should have equipped you with enough details to develop, test, integrate, and deploy the core modules in the bank scenario.

Major scenario tasks

In Parts 2 and 3 of this article series, you will perform the following tasks to complete the scenario and bring it to a state where you can run it, demonstrate it, and teach the underlying techniques of developing it in the Eclipse IDE and deploying it in Zend Core:

  • Task 1: Create a database table to hold bank customer accounts.
  • Task 2: Create a PHP code module to do the necessary business logic and the DB calls.
  • Task 3: Create XHTML and CSS artifacts to provide a single page-based Ajax Web user interface.
  • Task 4: Create a JavaScript module that will hold all the client-side logic and the asynchronous communication logic to do data exchanges with the server.
  • Task 5: Create a PHP code module that will contain the Web service SOAP client code for a remote stock quote Web service.
  • Task 6: Create a PHP code module that will act as a REST service to front-end the calls to the business logic in the other two PHP files.
  • Task 7: Integrate all the artifacts, deploy, and run the Ajax solution created for the bank scenario.

Conclusion

Simplicity and low cost are driving the reach of the revolutionary Web platform to millions of users around the globe. In particular, open source-based Eclipse tools and Zend Core together offer a wealth of possibilities for organizations considering a migration into open source platforms from proprietary platforms such as a .NET environment. For such customers, these offerings provide an excellent zero-cost basis to experiment with, side-by-side with their existing proprietary infrastructure. Be on the lookout for Part 2 of this series to get your feet wet in some real and fun Ajax-PHP development. Until then, feel free to familiarize yourself with the features of the Eclipse PDT, Aptana plug-ins, and the Zend Core runtime.


Resources

Learn

Get products and technologies

About the author

Photo of Senthil Nathan

Senthil Nathan is a senior software engineer at the IBM T.J. Watson Research Center in Hawthorne, New York. He has 22 years of experience in building software for different kinds of enterprise applications. His current professional interests are fully buzzword-compliant -- including SOA, Web services, Java 2 Platform, Enterprise Edition (J2EE), PHP, Ruby On Rails, Web 2.0, and Ajax development.

Comments



Trademarks  |  My developerWorks terms and conditions

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Web development, Open source, XML
ArticleID=228429
ArticleTitle=End-to-end Ajax application development, Part 1: Set up an Ajax environment with a scenario
publish-date=06052007
author1-email=sen@us.ibm.com
author1-email-cc=ruterbo@us.ibm.com

My developerWorks community

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Special offers