WAMP Author: Jun Shao Project: Haiti What is WAMP? WAMP = Windows+Apache+MySql+PHP Note:WAMP5 does not work with Windows 98,Me WAMP Installation A single installation file downloaded from http://www.wampserver.com/en/download.php After Installation Application Service Apache wampapache PHP MySQL database wampmysql WAMP’s Menu Management Portals PHPmyadmin SQLitemanager Note: A user has to click on the icon tray to access WAMP's menu. WAMP’s Menu Configuration and Settings Loaded Modules Directory Access Shortcut WAMP’s Menu Services Apache MySQL Note: The icon tray reflects the status of your server. Haiti Migration Architecture Windows Server Windows Server Apache IIS Tomcat Tomcat Report Report PHP PHP SQLMySQL Server Perl (Replication) Perl (Replication) Login/off Login/off LDAP LDAP Haiti Migration New Applications Apache HTTPS Setting MySQL DDL DML Data Data Migration Haiti Migration DDL For example, MsSQL: CREATE TABLE <TABLENAME> ( <TABLENAME>_id bigint IDENTITY (1, 1) NOT NULL … MySQL: CREATE TABLE <TABLENAME> ( <TABLENAME>_id bigint NOT NULL AUTO_INCREMENT, … Haiti Migration DML For example, MsSQL: select top 10 * from patient; MySQL: select * from patient limit 0,10; Haiti Migration Data MsSQL: MySQL: Haiti Migration Data Migration We use ODBC to migrate data from the MsSQL database to the MySQL database. We use PHP to export data from the MySQL database and then import the data into the MySQL database. Haiti Migration MsSQL and MySQL follow the SQL92 standard. However, each of them have their own extensions. Source Common Full Name Name Development Method ANSI SQL/PSM SQL/Persistent Stored Module Standard IBM SQL PL SQL Procedural Language Proprietary Microsoft/ T-SQL Transact-SQL Proprietary MySQL MySQL Sybase MySQL Open Source/ Proprietary Oracle PL/SQL Procedural Language/SQL Proprietary Affected Applications Question Which applications will be affected if we install WAMP? Windows Server Windows Server Apache Apache Tomcat Tomcat Report Report PHP PHP MySQL MySQL Perl (Replication) Login/off Login/off LDAP LDAP Affected Applications PERL(Replication) PHP Tomcat Affected Applications PERL (Replication) It uses standard sql in inserting data. Conclusion: It requires a little change during the WAMP migration. Affected Applications Users Tomcat TOMCAT Presentation Embedded reports Application & Business Logic Servlets <aggregateItems>count(*) Config as 'Compte', ceiling(cast(count(*)/$total. *100… Jasper Data access qry = …+cast ( (sum(numerator) as unsigned)*100./.. url="jdbc:jtds:mysql://localhos t:1433/(resource.database)" Reports.xml Context.xml Jasper Library JDBC Libary for MySQL mysql-connector-java-5.0.6bin.jar MySQL database Affected Applications Conclusion: Most changes of reports are based on extension differences between MySQL and MsSQL. Affected Applications Users PHP PHP Presentation Patient Info Monitoring and Evaluation Administration Authentication Application & Business Logic Layout Function Utility Label cphr.ini installation -setting.php Layou menu.php mainbody.php Config Function genericsave.php DB Defination followup.php Utility Data access chkDate.js Label findLabels.php reports.xml SQL Scripts $mysql_access = mysql_connect (DB_SERV, DB_USER, DB_PASS ) or backend.php backendAddon.php die ("FATAL ERROR: Unable to connect to the database"); mysql_select_db (DB_NAME, $mysql_access) or die ("FATAL MySQL database ERROR: Unable to select database."); Affected Applications Changed reasons: Different extension of queries. For example, “Top 10” in MsSQL vs. “Limit 0,10” in MySQL “Convert” in MsSQL vs. “Cast” in MySQL “isDate” in MsSQL vs. “Length(Date(..))” in MySQL Different ways to connect to the database. Different data formats. For example, “mm/dd/yyyy” in MsSQL vs. “yyyy-mm-dd” in MySQL Different Error Messages Affected Applications Conclusion The migration is complex since we have to review every query. The suggestion is to create a wrapped-up interface using standard queries for other pages to call when they want to visit the database. Problem Left The performance of MySQL. We might tune the database to get decent performance. Overall WAMP is easy to install and it is free to use. Migration from IIS/PHP/MsSQL to WAMP is practical. The cost of migration is mainly to review queries and change them based on the SQL extension of MySQL. Q&A End