WAMP = MicrosoftWindows + ApacheSoftwareFoundation WebServer + MySql + (PerlLanguage or PythonLanguage or PhpLanguage) Like LampPlatform, only with MicrosoftWindows as the base OS. -- MikeSmith ---- LampPlatform is used for web serving, what is the advantage of using WAMP? Surely not many people do it this way, mixing both environments and reducing the effectiveness of the server? ''One major advantage is the lessened organizational resistance. Many shops are wary of using linux, but still embrace OpenSource. OpenSource software running on MicrosoftWindows makes perfect sense there.'' Besides who said anything about "mixing environments"? Apache, MySQL, and Perl/Python/PHP all run just fine on Windows - I've got just such a server running at home. -- MikeSmith ---- It's a PathOfLeastResistance thing. I imagine it going something like this: "We need a Web server." "Well, we have some old [Windows] PCs in the back, and we can load Apache and Perl on one for free." The next day, they have a working web server. [Yeah, I know you can do much the same with Debian, but they don't know Linux] A few weeks / months pass by... "We need a real database, this flat file thing is too slow." "Well, we can put MySQL on it for free." After that, they just add more hardware to make it "fast enough". ---- If your application needs to interact with Windows stuff (especially Exchange), running on a Windows box can make that interaction much easier, as lots of APIs are only available from Windows DLLs. ---- Note that box packages like EasyPHP and Server2Go make Windows-based implementations of web service solutions pretty simple. ''Don't you mean "web serv'''er''' solutions"? WebServices are something very different.'' Perhaps. How does one differentiate between a web server and the service being provided? When the object is to put up a service then the package type solution is just one integrated application program from the user's perspective. That's what these box packages are all about. ''I think you're misunderstanding. '''WebServices''' are specific technologies and standards used to provide RemoteProcedureCall-like mechanisms for constructing distributed applications. '''Web servers''' provide access to resources via the HyperTextTransferProtocol. The two may sometimes be related -- a Web server is sometimes used to route messages to and from WebServices -- but they are otherwise quite distinct. A Web server -- which is what these box packages are -- may or may not provide access to WebServices. The Web server packages described here usually do not. The packages described here are typically used to host dynamic, end-user oriented Web sites. WebServices are '''not''' dynamic, end-user oriented Web sites. You do not "surf" WebServices with FireFox! WebServices are essentially RemoteProcedureCall nodes that often form much of the infrastructure of a ServiceOrientedArchitecture. A typical ServiceOrientedArchitecture doesn't serve Web pages, or any content that will be seen directly by an end-user's Web browser. They only serve content that will be "seen" by applications.'' Gotcha. We all certainly understand the differences between a "service" in terms of a client-server exchange mechanism versus a "service" in terms of some work provided by a web-based content or processing provider. Perhaps this Wiki needs to rework the C''''''ategoryWeb* categories to provide some distinction here and to qualify what we're really trying to discuss. Yeah, the LAMP and WAMP platforms make for a near-instant means of deploying a network-based service solution. As long as you can get the data to me I can process it and return usable results to you. The platforms are a means of providing the underlying structure, but they really can't be used without integrating the processing application into the structure provided. Perhaps we need to spend some time qualifying what the layers mean and just how much actual abstraction there actually is. For instance, I am working right now on a project that uses a PHP listener to UDP data broadcasts. The messages are coming in as a package containing a single string of printable characters, two text lines, each terminated with a CR/LF pair. On Windows boxes I can analyze the string as two text lines with newline terminators. On *NIX and Crapples the newline is different, so does PHP translate this for me based on some definition of newline that I provide or do I have to analyze the character stream for this character sequence myself? This question is because the underlying OSes act differently. The WWW is full of such network/server issues. Is the platform responsible or not? ---- See: LampPlatform, AmpAndPlatforms