Implementation
FC assists organizations to implement Web Enabled, Service Oriented solutions and Enterprise Application Integration (EAI) projects using leading Open Source platforms. FC works closely with clients, utilizing its experience and technical excellence in developing, promoting and supporting software ICT applications using integrated, state-of-the-art technology. It applies its deep industry knowledge and enterprise scale delivery expertise to help clients increase efficiency, accelerate growth, manage risk and release their true potential.
FC undertakes the development of custom made solutions to satisfy specific needs by customers. FC is capable of providing a wide range of solutions based on numerous OSS tools, platforms and frameworks and covering the full life-cycle of software development.
FC follows recognised iterative methodologies (Extreme Programming and RAD) because the emphasis is on building highly skilled teams that stay with the project from beginning to end. Specifically for managing agile software development projects, combines Scrum with Extreme Programming.
To ensure results of the highest quality, FC follows the ISO 9001:2008 framework. Moreover, project specific metrics are defined and applied on project basis.
For the implementation of its projects FC makes extensive use of the following technologies and tools:
- Java, PHP, Python, HTML, CSS, XML;
- Application Servers (JBoss, Geronimo, Glassfish);
- Web Servers (Apache, Tomcat, Jetty, Jigsaw, Jo!, Sambuca, Cheyenne);
- J2EE Frameworks (Spring, AppFuse, Seam, Expresso);
- Web Frameworks (Struts, Tapestry, Cocoon, MyFaces, Vroom);
- Database systems (PostgreSQL, MySQL);
- IDE (Eclipse, NetBeans, jEdit);
- Web Services (Axis, UDDI4J, WSIF);
- XML Parsers (JDOM, XMLBeans, Xerces, Jakarta, dom4j);
- Persistence & Mapping technologies (Cayenne, Hibernate, iBatis);
- PDF Libraries (FOP, iText);
- JMS (ActiveMQ, OpenJMS);
- Job Schedulers (Quartz, cron4j, Job Scheduler);
- Charting and Reporting (JfreeChart, JasperReports, jCharts, JFreeReport);
- Various open source web framework which are compatible jsf, ajax and follow mvc or event driven patterns of development and design.
Search Engine Integration
For the integration of search into any Java application FC uses the Compass framework, an open source project built on top of Lucene aiming at simplifying the integration. Compass simplifies the creation of a distributed Lucene index by allowing the storage of the Lucene index in a database simply with Data Grid products such as Terracotta.
Compass integrates with Hibernate and JPA and supports local directory cache implementation (Local Directory Cache) to improve its performance.
Terracotta is open source JVM-level clustering software for Java. It delivers clustering as a runtime infrastructure service, which simplifies the task of clustering a Java application immensely, by effectively clustering the JVM underneath the application, instead of clustering the application itself. Combining Compass and Terracotta it is possible to cluster both the Lucene index and the application. For this, the application must be designed with clustering in mind, which means that objects that are clustered across JVMs must be instrumented. Doing this at a later stage requires more efforts, because it is not known which objects in the existing code base need instrumentation.Terracotta requires at least one extra dedicated server. This server holds all instrumented object and must therefore have enough memory (RAM) and disk. This server can be backed by a hot-standby.
Software Development for Cloud Computing
For software development taking advantage of cloud computing FC uses the following tools:
- Lighttpd - Open source web server: An open source web server (revised BSD license) designed and optimized
for high performance environments. With a small memory footprint compared to other web-servers, effective management of the cpu-load, and advanced feature set
(FastCGI, SCGI, Auth, Output-Compression,URL-Rewriting and many more) lighttpd is the perfect solution for every server that is suffering load problems. Lighttpd
powers several popular Web 2.0 sites like YouTube, wikipedia and meebo. Its high speed io-infrastructure allows them to scale several times better with the same
hardware than with alternative web-servers. This fast web server and its development team create a web-server with the needs of the future web in mind:
- Faster FastCGI;
- COMET meets mod_mailbox;
- Async IO;
- Hadoop - Java software framework for data intensive distributed applications: Apache Hadoop is a framework for running applications on large clusters built of commodity hardware. The Hadoop framework transparently provides applications both reliability and data motion. Hadoop implements a computational paradigm named Map/Reduce, where the application is divided into many small fragments of work, each of which may be executed or reexecuted on any node in the cluster. In addition, it provides a distributed file system (HDFS) that stores data on the compute nodes, providing very high aggregate bandwidth across the cluster. Both Map/Reduce and the distributed file system are designed so that node failures are automatically handled by the framework.
- MogileFS - File system that enables horizontal scaling of storage accross a number of machines: MogileFS provides static file replication across multiple servers. MogileFS is simply a system for storing data. However, MogileFS is not intended for typical filesystem usage. It is not a POSIX compliant filesystem. MogileFS is good for is protecting data from being lost and from being unavailable. MogileFS protects data by storing it on multiple disks that can be located on different servers. When a file is retrieved, one server is tried. If that server fails, another server is tried. So in case a hard disk fails or even a whole server fails no data will be lost and there will be no down time.