Poised Solutions

Web Development

poised solutions
software and web development
Library Poised Solutions

Web Development

Web Development

Web development covers both the client side (browser) development, and the server side (application) development of web sites. Poised Solutions has been developing websites for well over a decade and has kept abreast of the latest development practices and techniques of building full web application solutions.

Web client side development revolves around the trinity of HTML, CSS, and JavaScript, Poised Solutions offers the full spectrum of these browser based skills along with ActionScript (Flash) and Java Applets.

Web server side development is a fairly varied environment, Poised Solutions tends to develop using Perl in mod_perl embedded into Apache, FastCGI, or CGI. Python is the preferred web server side language for mid level projects, and like Perl, Python is used alongside mod_python, FastCGI, and CGI, (proxying to web aware application servers is also used). For larger web applications that require high scalability and distribution Erlang is the language and environment of choice.


Web Development Benefits

Web Development offers many benefits to most organisations as HTTP (HyperText Transport Protocol) and HTML are so ubiquitous development methods for Web Development abound and cover most of the possible scenarios. The World Wide Web (WWW) via the Net gives graphical multi user access to computer systems from nearly anywhere on the planet. And Intranets (Web sites inside an organisation) allow for applications to be accessed multi user from any attached computer system. The flexibility coupled with the accessibility that web applications offer is unparalleled in the field of development. Web applications are generally the first port of call when considering new projects or converting legacy systems.


Web Development Elements

Web Development Diagram
Web Development Diagram

Web Development Elements Explained

Web Development as can be seen from the above diagram is actually quite a complex system. The complexity aids the actual production, but it should be realised that web development is perhaps one of the more advanced forms of Information Technology projects, there generally are quite a few distinct components to a web application build. The operating system also plays a large part in a stable web application project.

Web development is very modular, and by approaching the challenge in this way it can also be split into a number of distinct and interrelated elements to allow many experts to work on the various parts.

Web Development Elements Explained Client Side
Web Browser
The web browser is often termed the client program or just client. The web browser is responsible for making requests to the web server and then receiving information back which it then renders and displays, or executes (runs). Web browsers have become quite central to modern day computing, and not only can they retrieve information using either the HTTP or HTTPS protocol, but they can also do various other tasks such as file browsing and file transfer.
HTML Document
An HTML document is generated or delivered over HTTP from a web server. The HTML document (or XHTML or even XML) is parsed by the web browser and the content is then rendered. The HTML document can cause other documents or objects such as images, Cascading Style Sheet (CSS), JavaScript programs, flash movies to also be downloaded and included in the render of the document.
JavaScript Program
JavaScript Programs are generally small scripts that allow manipulation of the document object model (can change look and feel of the document) to allow more advanced interface techniques to be used, that are dynamic and event related. JavaScript can also be created to do basic network communication, this allows for extra information to be requested or for information to be sent without having to drive that request by the user.
CSS Config
CSS (Cascading Style Sheet) is a set of style configuration rules, that can be applied to elements in an HTML document. CSS is the primary way the layout, and look and feel of a document is created and standardised across a web site. Efficient and effective use of CSS can improve development times significantly as well as making the project as whole more understandable for all parties involved.
Flash Movies
Flash was one of the first readily accepted vector graphic and timeline based plugin for web browsers. Instead of transmitting raster based imagery, vector imagery instead was sent which generally occupied a much smaller space. Flash can be scripted using action script commands, and it is possible to have a site completely in Flash (no HTML required). There are some drawbacks to Flash, it tends to be harder to maintain and to optimise for SEO (Search Engine Optimisation), but if it is treated in the same way as JavaScript, and used in moderation it can lend itself to quite compelling elements of an interface.
Media Stream
Media Stream is a bit of a catchall for the elements not fully described above, it most accurately refers to media such as movies, films, and audio, but to be complete it could also refer to elements such asPython and Java applets. Again used in moderation these elements can be quite compelling, but they generally require the browser to have some non default capability.
Browser Plugins
Browser Plugins are modules that can extend the functionality of a browser. Browser plugins tends to be specific to the type of browser targeted, and generally have to be rewritten for different web browsers. Plugins though can change the browser and make it capable of doing more things and reacting in different ways to the data delivered to a browser. Common plugins are generally freely available, and plugins for intranets are an interesting way of distributing workload off main servers and onto the client nodes (which is something that JavaScript and Applets can also do, though perhaps in a more limited fashion).
Web Development Elements Explained Server Side
Web Server
A Web Server is an application server or daemon that binds to a network port and listens for incoming requests. Examples of general purpose web servers are Apache, Lighttpd and IIS (Internet Information Services). A general webserver is capable of doing a lot of tasks, it can deliver static documents and media, it can fork or thread to service more than one client at a time (concurrency), it can also use various features to send and receive information from programs running behind it. A web servers primary function though is to deliver content to the client which is normally a web browser, the web server generally forms the gateway between the client and the server side application or documents.
Module
A module in this instance is a piece of code used to extend the functionality of a web server, it can be a complete web application coded in C, Perl, Python or Lua. The module becomes part of the web server, and this has its advantages and disadvantages; the advantage is the code doesn't have to be written in a concurrent style, as the web server forks or threads the modules is also duplicated (note you still need to be aware of concurrency but only in how it pertains to the web server API), the disadvantage is the same as the advantage, each duplicating web server will tend to carry over the module even if it is not being used for that transaction. mod_php is perhaps the best known module, and it allows for programs written in PHP to also be included in the web server. To avoid some of the overhead on duplication when large modules are used, web server can be split into serving different requests often by the use of virtual hosts. mod_fastcgi should all get a mention, as this is quite a lite weight way of communicating with an application server sitting being the web server, here CGI environment variables are passed to an application server that then communicates back to the web server over the fastcgi module.
CGI
CGI (Common Gateway Interface) is a way in which a web server can start an application and pass CGI environment variables to the application and then read back the results from stdout (standard out). This method is quite quick to implement, but it comes with the overhead of restarting the application on each request, on some operating system such as those with Linux kernels the application is often stored in memory, so a restart can actually be very fast, in some instances faster than a daemon blocking on a port.
Proxy
Proxying is where the request is just sent though the web server to another web server, and when the other web server communicates back it sends to the first web server. This method may seem odd at first, but it is highly portable, and building a basic web server as an application server is not too onerous a task. Another advantage is the use of standard principles, other methods tend to introduce yet another protocol, whereas HTTP is a well known protocol. Proxying can be used for other tasks as well such as load balancing.
IPC
IPC (InterProcess Communication), is another catchall, this is a general term to describe a web server communicating to an application, or any application communicating to another application. The lower the overhead of communication generally the better an application can perform. And how the communication is switched is also a factor. IPC allows for the creation of a pipe line of general applications to produce a specific result, and is the main stay of modern development, building on the "shoulder's of giants".
Media
Media refers to both documents and images, in particular it highlights documents and images that are static in nature. One of the important things to realise in web development is that most information is static in nature, and that dynamic information that is calculated for each request generates additional overhead in the system. If you deliver static media in a dynamic way, then there is room in the system to improve the performance. Caches, not shown on the diagram, are often used to improve performance where some media is in fact more static than it is dynamic, but still there an overhead is introduced. Poised Solutions specialises in producing systems that run with minimal overhead, and it is by understanding this element that the biggest savings are found.
Template
Templates or template systems, match well with the idea of delivering static information as explained above. It is generally better to template as much as possible in a development environment to produce static information using dynamic techniques, and just upload as static media. A template system has many extra advantages, beyond the above, and is used also to deliver dynamic content. A template allows for Rapid Application and Document Development (RADD), as any repeated elements can be or systems, can be reduced to minimal amounts of typing or identification. Templating also allows for fast changes to be made across a number of documents. Poised Solutions makes extensive use of templating and it cannot be understated just how effective proper templating can be for a web project.
Database
A database is used to separate data from business logic, a database allows for tight control of a system's data, and also allows for many systems to pull from the same data source. A database is generally an application in its own right, but databases such as SQLite can also be embedded directly into a web server, application or daemon. Whilst the instructions coded to work on data are obviously very important, data is perhaps more important for a running business, as data is much harder to replace than code in most instances, as such it is wise to use a datastore.
Web App
Web App or Web Application is the core of the system, this is where most of the business logic is expressed. Most programming language are capable of acting as some form of web application, the IPC is a common factor that allows a web application to communicate with a web server, and any Turing complete language is generally capable of achieving this. Selection of web application programming language is based on a number of criteria, such as in-house knowledge, existing infrastructure, performance requirements, maintenance requirements, stability and security requirements, also speed of development and mathematical proof can also play a part in the selection of a web application programming language or environment.

Web Developer Services Poised Solutions

Python Developer
Python Developer
Erlang DeveloperPerl Developer
Erlang DeveloperPerl Developer
HTML DeveloperCSS DeveloperJavaScript Developer
HTML DeveloperCSS DeveloperJavaScript Developer
Web DesignWebserver AdministrationPHP DeveloperJava Developer
Web DesignWebserver AdministrationPHP DeveloperJava Developer

Web Development Resources

Web Development Resources
Web











































Poised Solutions Web Development services. Web Developer for Hire. If you have a web development project then Poised Solutions has the development skills to make that project into a reality. Contact Poised Solutions to discuss your IT Project today.

Poised Solutions Web Design and Web Development by Poised Solutions