Client Requirement Client required a platform for advertisers, publishers and producers of images to communicate and reach each other for different purposes. An advertiser should be able to advertise on a publisher’s website with a variety of mediums in order to increase sales of their products or promote their services. They need to only pay for the views and visits. A publisher can earn revenue by publishing advertisements on their websites from various advertisers. Image producers can earn revenue by selling the images that they create. The client earns revenue by taking some part of the revenue that publishers and image creators earn in return for providing them with services. A hover over a displayed image, should display an appropriate advertisement.
Challenges The team faced the following challenges:
Implementing a robust framework that will efficiently handle millions of requests that will be generated from the publisher’s websites. Display of relevant ads such as contextual, video, music, search and image on publisher’s page was handled very efficiently using JS. For example, if the image on the publisher’s page is related with football then the advertisements related to football will appear and the type of ad (Video, Music, and Search) depends on the campaign type publisher has selected. Flex application needed to be built on the client side and PHP was needed to create web services on server side. Maintaining and securing heavy payment transactions that occur with each request. Account handling for advertisers, publishers and image creators needed to be accurate.
Technologies Used PHP (Server-side Language)
Most appropriately suited to create dynamic web pages. Enables fast extraction of data out of a database for presenting it on the webpage AMF PHP was used to interact with the FLEX application in the front-end.
JavaScript and AJAX (Client-side Language)
Crossover browser support & faster loading time with light web pages that require no plug-in downloads. Scalable JavaScript based controls to provide flexibility and enhance user experience and involvement. Engine Versatile, low-maintenance database management system. Cross-platform compatible database component of the LAMP platform. License-free, sturdy platform with powerful multitasking abilities. Open source code allowing for extensive customization.
MySQL Engine
Red Hat Linux
Apache Web Server
Ideal for serving static as well as dynamic content on the web in a safe and secure manner. Supports a variety of features while offering extendable core functionality.
Manpower Project Leader
1
Developers
4
Designers
3
Quality Assurance Testers
3
FLEX Developers
3
Planning Keeping in mind the enormous nature of the website, and challenges involved a four tier development approach was used. Database Layer – MySQL database, Tables, Stored procedures and so on. Interface Layer and Database Abstraction Layer - converting data between incompatible data types in databases and accessing data from the database. Business Logic Layer – consists of all the business logic procedures like advertisers, publishers, accounts, photo stock producers etc. User Interface Layer – Forms the GUI using FLEX.
Architecture Due to the advertising domain, the design architecture was built around PHP and MySQL server. In order to create an attractive website, the front end was created in FLEX. All the modules like Advertiser, Publisher, and Photo Stock Producers etc. were developed using FLEX. Payment was handled over a secure HTTP port. An interface that translated the object logic to the relational logic was used to communicate with relational databases in an object oriented manner. Stored procedures were used only for complex data retrieval. UI layer was kept free from business logic and images etc. were called from their respective servers.