Page 180 - DCAP606_BUSINESS_INTELLIGENCE
P. 180

Unit 12: Understanding Data Mining Tools




                                                                                                Notes
             Developers write code at basically a constant rate so we chose Python which was (and is)
             the highest level language I’ve ever seen that is also flexible enough to be generally
             useful.”
             Architecture

             From the beginning, Timesheet was designed and implemented as a web application. It
             uses three-tiered web application architecture with separate layers for web presentation,
             business logic, and data storage. As time has progressed, the application’s functionality
             has advanced considerably, and Curt’s decision to use Python for an implementation
             language has proven to be good choice. Python is currently used for all application logic
             in the Timesheet application. This includes all code between the initial Apache dispatch,
             where mod_python is employed to expedite interpreter instantiation, through the
             application logic, and down to the point of call out to the database transport layer. Timesheet
             uses not only the Python standard library but also several independently developed open
             source Python subsystems, such as PyXML and ActZero’s SOAP support. PyXML is used to
             implement certain business rules and to develop jxAPI, which is a SOAP-based API into
             the application logic. Work is in progress to extend this API to define Web Services
             Description Language templates for the jxAPI functions. The application currently builds
             and ships with Python 2.1.1. Timesheet also incorporates several non-Python technologies.
             The Unix and Linux distributions are packaged with the Apache HTTP server and
             PostgreSQL database. The Timesheet distribution for Windows ships with an optional
             Microsoft Desktop Engine (MSDE) database and integrates with Microsoft IIS. Timesheet
             can be configured to use a variety of third-party databases.
             Results

             The Timesheet project has succeeded spectacularly, generating millions in revenue and
             allowing Journyx to grow every year, even under the current economic conditions. Journyx,
             like many of our customers, uses Timesheet internally as a mission critical part of the
             company infrastructure. It is used extensively for project tracking, billing, and payroll. To
             date, approximately 11 person-years have gone into the Journyx Timesheet product,
             resulting in over one hundred fifty thousand lines of Python code. In developing Journyx,
             the two greatest benefits of Python were the speed with which features could be written
             and deployed, and its true write-once-run-anywhere cross-platform capabilities. Journyx
             developers have found that the simplicity and clarity of Python combine with its object-
             oriented properties to make it a very powerful and productive language. Python’s rich
             standard library, which includes modules for things like string manipulation and HTML
             generation, further supports programmers in meeting aggressive development schedules.
             Because of these properties of the language, Python has enabled Journyx to add features
             more quickly than our competitors. We’ve been able to implement SOAP/XML and WSDL
             support and extended other aspects of the application’s functionality well ahead of
             competitive products. One of the key enablers of this efficiency in maintenance and
             improvement is the inherent clarity and readability of the Python language. Other
             important factors are the vibrant and responsive Python development community, and
             the high degree of backwards compatibility and stability we have seen as the language
             design evolves over time. Python’s cross-platform standard library and platform-
             independent byte code file format allow the deployment of Python modules to any
             platform, regardless of which platform the module was prepared on. This helped not only
             in avoiding per-platform development overhead but also facilitates customer support for
             the Timesheet software product. For example, a patch module built on a Redhat 6.2 system
             can be sent to a customer for installation on Windows XP or any other operation system
             without the need for cross-compilation or translation of any kind.
                                                                                 Contd....



                                           LOVELY PROFESSIONAL UNIVERSITY                                   175
   175   176   177   178   179   180   181   182   183   184   185