Advice: General Development architecture

Sapphiron

Honorary Master
Joined
Jan 29, 2004
Messages
11,328
Reaction score
14,107
Location
Cape Town
Hi All

One of my Clients is a small to medium sized Software development company based here in cape town.

They have 2 full time developers and 3 others that do end-user support and look and feel developers. they are looking to double this over the next 2-3 years.

Their fully web based application has over the past 7 years grown from a simple workflow system with the average client site of 5 users, to a Jboss java powered Business Management system signing on new clients with 180-250 seats. Some of the features of the system include
- workflow managment
- CRM
- ERP
- Business process execution
- integrated email client, SMS
- Inventory management
- Shared Calendaring
- Document management system

The systems is quite extensive, with it excelling in certain areas (like workflow, ERP and CRM), but lacking and out-competed in other areas (email and shared calendaring)

The system currently runs in a Jboss application server, the development in done in Java (using Eclipse) and using MySQL5 as the DB.

Up to this point, their software has been a black box Linux solution with the company taking full control of it all from OS to DB and their Application. This is causing some challenges and creating extra work for them. It also does not work for small deployments or very large ones.

They need to expand their Client base in 2 areas:
1. Volume market (small number of seats)
- because their product is a black box solution, it requires an lengthy intervention from staff to deploy a client, making large numbers, or volume sales impractical.
2. Corporates and large business (more that 500 seats)
- Corporates and large business does not like the fact that it is a black box solution. They want something they can deploy on their existing web and database servers and have their own highly skilled IT system administrators look after.

The problem is that the current architecture of their software does not allow for growth in either of those areas. They are experiencing a number of practical and technical problems

They are now investigating changing their software architecture and development platform completely. Build the software from the ground up. As part of this investigation, they have enlisted my services as an IT consultant to come up with strategic recommendations on how to grow their product and client base.

I have come up with the following recommendations:

1. The Software and development and platform needs to be changed and satisfy the following requirements:
1.1 Be easy for general IT consultants to support (small to medium business)
1.2 Must be lightweight enough be deployable in shared hosted environments (ie, R200 per month windows or linux web hosting)
1.3 The software platform must be corporate infrastructure friendly. Work on the hardware and software systems that are already there. IE IIS web server with SQL server backends.
1.4 the platform must scale onto 5000-10000 users
1.5 must have an active development community with a long term support base, including professional support
1.6 their must be enough development skills available in the market

2. They must provide small clients with a Software-as-a-Service model. As in 1.2, they must offload the platform and hardware to a hosting specialists at low cost. This would be the volume market

3. Must be able to download and install without technical intervention
. ie use a platform people are familiar with.

4. They must look to integrate with existing successful and widely adopted systems instead of trying to mimic it. (IE get eMail and shared calendars from Exchange)

Now getting to the reason from my Post.
Which developer environment and platform should they choose. I do have a Development qualification in Java and C#, but have never developed in the real world.

From my knowledge I have short-listed 2 candidates.
1. The Microsoft route - Visual studio web development based on IIS and MS SQL server. From a platform perspective this one seems to fit all the requirements. The corporates especially would prefer this model. I have little knowledge of what developer tools and software they will need to develop this. What MS software do they need to purchase to effectively develop and test an Enterprise class Web based Application?

2. The LAMP/WAMP route - PHP + Perl + Apache + Mysql based on Windows or Linux. This seems to be the lowest cost route and would be a perfect fit for the volume market. I do have my doubts about how high this platform can scale. I have yet to see this platform scale over 1000 users for a system of this complexity. Something to take in account is that their software does about 5-8 times more processing than the equivalent SugarCRM deployment

Any comments and suggestions are welcomed!
 
Last edited:
IMHO for enterprise-scale applications go either the Java or .NET route. Speaking from a .NET background, they would need Visual Studio .NET (the latest version) and SQL Server 2005 / 2008 (depending on the licensing of your clients).
 
Hi All



2. The LAMP/WAMP route - PHP + Perl + Apache + Mysql based on Windows or Linux. This seems to be the lowest cost route and would be a perfect fit for the volume market. I do have my doubts about how high this platform can scale. I have yet to see this platform scale over 1000 users for a system of this complexity. Something to take in account is that their software does about 5-8 times more processing than the equivalent SugarCRM deployment

Any comments and suggestions are welcomed!



Then you havnt done your research properly, or you are blinded by microsoft and corporate branding.

PHP + Mysql are perfectly scalable, php is extremely stable and runs some of the most powerful and extensible sites out there, facebook anyone? 200m users, couple million hits every hour, thousands a second.

Memcached + APC = Friend.

I used both languages php and .net, but for web development i would rather go the php route. Yes yes, there are lots of sites written in .net, but the cost of hosting, the costs of licenses, the cost of this, the cost of that. It just makes it seem unappealing to the average person or company, companies like to break down there costs not add extra, where as php + mysql are free. And bull**** to anyone that says php is not as powerful as .net, because if they say that, they clearly have no clue what they are talking bout. and PHP is piss easy to learn.
 
tldr (fully) but from what I did get, going back to the client and telling them to throw their skills base out the window and re-write will get you kicked to the curb pretty quick hey.
 
tldr (fully) but from what I did get, going back to the client and telling them to throw their skills base out the window and re-write will get you kicked to the curb pretty quick hey.

He never mentioned the clients developers skills, and php has same syntax to java /c/c++, only his own. And they are looking at expanding.
 
tldr (fully) but from what I did get, going back to the client and telling them to throw their skills base out the window and re-write will get you kicked to the curb pretty quick hey.

The developers themselves are coming to that realization. I plan to reenforce it.

Regarding PHP vs MS. I believe the key to their success is in the easy integration with corporate systems. THey need to be able to integrate with the most popular systems in business. From what I have heard, this is easier with MS than it is with PHP. Has anyone got experience with integrating with Exchange using PHP?

I get the point on Facebook. Myspace however has changed to a MS platform on their back-end. but I see now that LAMP can scale.
 
The developers themselves are coming to that realization. I plan to reenforce it.

Regarding PHP vs MS. I believe the key to their success is in the easy integration with corporate systems. THey need to be able to integrate with the most popular systems in business. From what I have heard, this is easier with MS than it is with PHP. Has anyone got experience with integrating with Exchange using PHP?

I get the point on Facebook. Myspace however has changed to a MS platform on their back-end. but I see now that LAMP can scale.

Myspace has 120m users, and its terribly slow. :)

http://www.troywolf.com/articles/php/exchange_webdav_examples.php
 
Ok it seems that PHP will do what is required. The last 2 issues

1. Development speed (especially for easy of writing API to allow for 3rd party integration). Most Corporates in house developers only develop on MS platforms. Most of the time their system would require some integration with the corporates existing systems

2. Corporate Acceptance.
This is a really crucial one. I know there are plenty of Corporates out there that that would only go for MS based platforms. It also seems that small business does not mind it being MS based, they usually don't seem to mind. If they use a MS platform, there software would just drop onto the MS small business server that most small busiensses already have. What are your experiences?
 
Last edited:
writing a API is easy, and fast, you will just need todo research on it, but i can guarantee you that it is easy.

Generally from what i have dealt with clients dont usually tend to care, unless the software does the job. I can tell you now if you goto a client and say here is exactly what you want at a fraction of the cost, over the other option which will include CAL's, etc.. they will opt for the cheaper option.
 
firstly doing "large" scale development is not dependent on the IDE, You can use notepad for php, or use zendstudio or you can use Eclipse with a php plugin (there is another name for it)
 
Top
Sign up to the MyBroadband newsletter
X