Software languages and development platforms used in 's eCan product
and their functionality are an important aspect of any Information Systems and Technology project due to the potential performance and functional gains that it provides. This section will compare the available technologies and whether they are executable and will specify the drains on the resources. The licensing issues, hardware requirements and feasibility will be considered.
Background information on hardware and software
such as, RedHat Enterprise 4.0 and Windows Server System require reasonable high-specification computer systems to run on due to the inherent drag on resources as the systems are used by remote clients and local administrators to serve websites, active directories and synchronise Windows and NIS authentication systems.
The average server systems these days comprise of:
Intel (or equivalent) CPU ~ 2.1Ghz
1Ghz RAM
NFS/Samba Share or 80GB HDD
Peripherals
o CD-ROM/DVD-ROM
o Back-up Tape Drives
o NIC Interface (10/100/1000 Mbps)
Average server software installations include:
Enterprise Server
Windows Server System
Windows 2000/NT
Windows Server 2003
Enterprise Linux
RedHat Enterprise 4.0
CentOS
Debian Sarge
Ubuntu Enterprise
NetBSD/FreeBSD
o WebServer
o Shared Resources
o Shared I/O
Enterprise-class products are those that have specific functionalities embedded in the core aspects of the software to allow administrators to control the use of the network and the available resources. There are "free" (as in "free" to use and "free" to share) distributions as well as "paid-for" products which often include support contracts and priority security updates delivered directly to the system using advanced transparent delivery mechanisms.
There are several points that must be considered:
Price
Availability
Scalability
Features
Frequency of updates
License Type
o OpenSource GNU licences
o Closed-source proprietary licenses
.NET framework
Mono .NET framework provides developers with the programming power and flexibility to engineer applications for Windows and Linux while maintaining cross-platform capabilities that have previously only been thought to exist with Java and the Sun JVM. One of the great advantages of Mono is that it allows developers and engineers to cross-compile and thus, develop applications which can theoretically function properly on both Windows and Linux.
Cross-Language Interface Layer
It is aim to utilise some advanced features available in several semantically different languages. This can only be achieved by creating a Cross-Language Interface Layer, which will allow the various languages to function together properly. This will require the usage of messaging systems and pointer passing to allow the transfer of data from one programming language to the other.
PHP and Perl both allow the dynamic loading of Linux Shared libraries directly at run-time which will allows the creation of entry points for those specific languages. ASP.NET will require either the creation of COM classes which are installed as system-wide libraries or the usage of Dynamic Linked libraries (DLLs) which can be loaded at run-time.
Reasons for the application of multiple languages and their benefits:
PHP:
PHP is extremely simple and has advanced features.
PHP has excellent text processing features, from the POSIX Extended or Perl regular expressions to parsing XML documents.
For parsing and accessing XML documents, PHP 4 supports SAX and DOM standards. The XSLT extension can also be used to transform XML documents. PHP 5 standardizes all the XML extensions on the solid base of libxml2 and extends the feature set by adding the SimpleXML and XMLReader support.
Integrated MAIL function.
Perl:
Perl is structurally similar to C-like languages
Excellent regular expression handling and pattern matching functions
Excellent extensibility
Easily embeddable into command shell
Common language semantics
TCL:
Fast access to shell and system commands
Rapid Development platform
Extensible
A large database of OpenSource Libraries
.NET:
Core Microsoft Languages allowing Intercommunication
A large array of Database connectivity functions
Compiled instead of interpreted
Access to Microsoft foundation classes
Provides some interoperability with Java
The Cross-Language Interface Layer will aim to provide interface functionality for all these languages either through XML interpretation of scripts or via core changes made to specific Open Source distribution.