SEMay 8, 2014
Structured Approach to Web DevelopmentJohn Francisco, Victor Sadikov
In today's world of Web application development, programmers are commonly called upon to use the Hypertext Markup Language (HTML) as a programming language, something for which it was never intended and for which it is woefully inadequate. HTML is a data language, nothing more. It lacks high level programming constructions like procedures, conditions, and loops. Moreover it provides no intrinsic mechanism to insert or associate dynamic application data. Lastly, despite the visibly apparent structure of a web page when viewed in a browser, the responsible HTML code bears little to no discernible corresponding structure, making it very difficult to read, augment, and maintain. This paper examines the various drawbacks inherent in HTML when used in Web development and examines the various augmenting technologies available in the industry today and their drawbacks. It then proposes an alternative, complete with the necessary constructs, structure, and data associating facilities based upon server-side, Extensible Stylesheet Language Transforms (XSLT). This alternative approach gives rise to an entirely new, higher level, markup language that can be readily used in web development.
SEMay 2, 2014
Complete Separation of the 3 Tiers - Divide and ConquerVictor Sadikov, Walter Pidkameny
Most Java applications, including web based ones, follow the 3-tier architecture. Although Java provides standard tools for tier-to-tier interfaces, the separation of the tiers is usually not perfect. E.g. the database interface, JDBC, assumes that SQL statements are issued from the application server. Similarly, in web based Java applications, HTML code is assumed to be produced by servlets. In terms of syntax, this turns Java source code into mixtures of languages: Java and SQL, Java and HTML. These language mixtures are difficult to read, modify, and maintain. In this paper we examine criteria and methods to achieve a good separation of the 3 tiers and propose a technique to provide a clean separation. Our proposed technique requires an explicit Interface and Data Definitions. These allow isolation of the back-end, application server, and front-end development. The Definitions also enable application design in terms of aggregated data structures. As a result significant amounts of auxiliary code can be generated from the Definitions, enabling the developers to concentrate on the business logic. By and large the proposed approach greatly facilitates development and maintenance, and overall improves the quality of the products.