AOJS: Aspect-Oriented JavaScript Programming Framework for Web Development
|
|
|
- Cameron Reed
- 10 years ago
- Views:
Transcription
1 AOJS: Aspect-Oriented JavaScript Programming Framework for Web Development Hironori Washizaki,Atsuto Kubo,Tomohiko Mizumachi,Kazuki Eguchi,Yoshiaki Fukazawa Waseda University, 3-4-1, Okubo, Shinjuku-ku, Tokyo, Japan {a.kubo, t.mizu, wirbelwind, Nobukazu Yoshioka, Hideyuki Kanuka, Toshihiro Kodaka National Institute of Infomatics, Hitachi, Ltd., Fujitsu Laboratories ltd. Nobuhide Sugimoto, Yoichi Nagai, Rieko Yamamoto Toshiba Solutions Corporation, NEC Corporation, Fujitsu Laboratories ltd. ABSTRACT JavaScript is a popular scripting language that is particularly useful for client-side programming together with HTML /XML on the Web. As JavaScript programs become more complex and large, separation of concerns at the implementation level is a signicant challenge. Aspect orientation has been a well known concept to realize improved separation; however, existing mechanisms require modications in the target modules for aspect weaving in JavaScript (i.e., not "complete" separation). In this paper, we propose an Aspect-Oriented JavaScript framework, named "AOJS", which realizes the complete separation of aspects and other core modules in JavaScript. AOJS can specify function executions, variable assignments and le initializations in JavaScript programs as the joinpoints of aspects. Moreover, AOJS guarantees the complete separation of aspects and core program modules by adopting a proxy-based architecture for aspect weaving. By utilizing these features, we conrmed that AOJS oers improved modiability and extendability for JavaScript programming. Categories and Subject Descriptors D.2.10 [Software Engineering]: Design; D.3.3 [Programming Languages]: Language Constructs and Features General Terms Design, Languages Keywords Aspect-Oriented Programming, JavaScript, Web Development, Separation of Concerns, AOJS Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. ACP4IS 09, March 2, 2009, Charlottesville, Virginia, USA. Copyright 2009 ACM /09/03...$ INTRODUCTION Web servers and corresponding application servers are the common infrastructures for business services, government/public services and community services. To enhance the usability of the service applications or realize the richclient applications mainly on the web, the client-side scripts have been widely accepted because the scripts are processed on each client (usually web browser) independently from the corresponding web servers. JavaScript (ECMAScript[1]) is a popular scripting language that is particularly useful for client-side programming together with HTML/XML on the Web. In JavaScript programming, there are many concerns that cannot be encapsulated and separated into independent modules due to the limitation of JavaScript's modularization mechanism. Such crosscutting concerns in JavaScript include both of conventional (language independent) concerns such as logging, and language specic ones such as Ajax (asynchronous JavaScript and XML)-based functions. For example, when conducting a beta-test (informal acceptance test) of a typical web application with JavaScript program, it might be necessary to log all value changes of specic variables in script les used on multiple web pages, and send each log to remote sever at runtime by asynchronous communications because of variety of web client environments such as browsers and OSs. Embedding remote-logging function codes into each location where variable assignments will take place is the traditional way for adding such logging to the original program. However since such additional code scatters on many locations and tangle with other concerns' codes, the maintainability of the program will decrease signicantly. To solve the scattering and tangling problems in JavaScript programming for the web client development, we propose an Aspect-Oriented JavaScript programming framework, named "AOJS", which realizes the complete separation of aspects and other core modules in JavaScript. Below, we rst introduce several conventional frameworks and their problems. Next we explain our new framework and how it solves these problems. Finally, we report a result of experimental evaluations and draw a conclusion from the result.
2 2. PROBLEMS IN CONVENTIONAL FRAME- WORKS To encapsulate and separate realizations of such crosscutting concerns into independent modules, there are several Aspect-Oriented Programming (AOP[2]) frameworks for JavaScript. Conventional AOP frameworks for JavaScript can be divided into two types: (a) weaving JavaScript codes as HTML handlers to HTML elements that have specic id/name attributes (such as Aspectjs[3] and Cerny.js[4]), and (b) weaving JavaScript codes to JavaScript codes by using the JavaScript language mechanism (such as Dojo[5], Ext JS[6], Yahoo! UI library[7] and Google Ajaxpect[8]). However there are several problems in conventional frameworks: P 1: Regarding all of conventional frameworks, it is necessary to modify the target program to include extended library and/or describe aspects in itself. It leads to incomplete separation between aspects (additional codes and rules for weaving) and the target programs. P 2: None of conventional frameworks can ensure the consistency between original programs and the ones with aspects weaved. In other words, conventional frameworks allow programmers to modify original JavaScript programs after the programmers weave aspects into the programs and deploy them on a Web server. Such possibility of incompatibleness leads to the maintainability and reliability problems. P 3: None of conventional frameworks can specify the location where variable assignments take place as joinpoints for weaving JavaScript codes. 1. The client requests web pages with JavaScript programs to the server via HTTP. 2. The reverse proxy fetches the target web pages with JavaScript programs from the existing web server. 3. The reverse proxy passes the JavaScript programs to the weaver. The weaver weaves JavaScript code fragments (advices) into the appropriate locations (joinpoints) in original JavaScript programs, and returns the results to the reverse proxy. These advices and joinpoints are specied in the aspect le in the XML format. 4. The reverse proxy returns the web pages and the JavaScript programs with aspects to the client. 5. The client runs the JavaScript programs in the web pages. AOJS server Client (1) Reverse proxy Weaver (5) (4) (2) (3) Aspectsincluding and advices (code weaving fragments) rules Original Web server JavaScript Program Other files Figure 1: Architecture of AOJS 3. AOJS: ASPECT-ORIENTED JAVASCRIPT PROGRAMMING FRAMEWORK To solve the above-mentioned problems P 1 P 3 we propose AOJS in below. AOJS is based on the proxy architecture for weaving aspects and the joinpoint model[9] for specifying program locations where the aspects will be weaved. 3.1 Proxy-based runtime weaving AOJS realize the complete separation of aspects and target programs by the proxy-based runtime weaving. This design solves the problem P 2 in addition to P 1; AOJS always ensures the consistency between programs and the ones with aspects weaved by the proxy. Moreover the client does not have to consider AOP nor the weaving process when requesting web pages with JavaScript programs; it is only necessary to know the proxy's URL. Figure 1 shows the architecture of AOJS. AOJS is realized as a server that communicates with web clients that request web pages via HTTP and web servers that store/provide original web pages and JavaScript programs. AOJS server consists of two parts: the reverse proxy for judging necessity of weaving and redirecting requests/outputs, and the weaver for weaving. We implemented the reverse proxy by using Perl because of its simplicity for implementing such proxy tool, and the weaver by using Java with JavaCC[10] for parsing and modifying JavaScript programs. Runtime behavior of AOJS is as follows: 3.2 Practical pointcuts To solve the remaining problem P 3, we design AOJS to deal with the following pointcuts including the variable assignment: Variable assignments: AOJS allows programmers to specify any variable assignment as a joinpoint by using the pointcut <var>. Figure 2 shows an example of the aspect le using the variable assignment pointcut targeting the Fibonacci program shown in Figure 3. The fourth line (<var varname="/b_gen_1/ret">) in Figure 2 species all of assignment locations for the variable ret dened in the function b_gen_1 (the fourth line in Figure 3). In AOJS, target variables can be specied with their scope hierarchies by using '/'. Since JavaScript is a dynamic and weakly typed language, we designed the variable assignment pointcut to specify target variables by variable names with the context hierarchy (NOT using types). Function executions: AOJS allows programmers to specify any function execution as a joinpoint by using the pointcut <function>. For example, the 16th line in Figure 2 species the execution location of the function b_gen_2 (the execution raised by the 24th line in Figure 3).
3 <?xml version="1.0"?> <aspectsetting> <initializefile>init.js</initializefile> <var varname="/b_gen_1/ret"> " + ret + "<br />");]]></before> <after><![cdata[window.alert("/ret@after: " + ret + "<br />");]]></after> <var varname= "/y"> <before><![cdata[document.write("/y@before: " + y + "<br />");]]></before> <after><![cdata[document.write("/y@after: " + y + "<br />");]]></after> <function functionname = "/b_gen_2"> <before><![cdata[var beg = (new Date()).getTime();]]> </before> <after><![cdata[var end=(new Date()).getTime(); sendlog( retvalue + ", " + (end - beg) + "ms");]]> </after> </function> </aspectsetting> Figure 2: Aspect le in XML format Initializations: AOJS allows programmers to specify the beginning part of the target JavaScript le as a joinpoint by using the pointcut <initializefile>. 3.3 Aspects AOJS allows programmers to write the before-advices (specied by <before> in Figure 2) and the after-advices (<after>) for any variable assignment and any function execution. Moreover, it is possible to weave any additional codes into the location where the initialization pointcuts specify. The before-advice means the additional codes that will run just before its corresponding joinpoint. For example, the fth line in Figure 2 species that the following statement ("window.alert(...)") will run before any variable assignment of the variable ret. Similarly, the after-advice means the additional codes that will run just after its corresponding joinpoint. Finally, in AOJS, all of described pointcuts and advices are encapsulated into an aspect le in the form of XML, like shown in Figure Weaving process AOJS's weaver uses a code template (shown in Figure 4) for code replacement. The template conducts the following four steps: var x = 0; var y = 1; function b_gen_1() { var dummy, ret; ret = x + y; x = y; dummy = y = ret; return ret; var z = 1; function b_gen_2() { function b_2(x) { if(x <= 0) { return 1; else if(x == 1) { return 1; else { return b_2(x-1)+b_2(x-2); return b_2(z++); function b_1() { var ret; ret = 100; y = 200; for(var i = 0; i < 30; ++i) document.form1.result.value = b_gen_1(); function b_2() { for(var i = 0; i < 30; ++i) document.form2.result.value = b_gen_2(); Figure 3: Fibonacci calculation program in JavaScript (excerpt) 1. Executes <before> 2. Executes <target>, and stores the return value of the <target> expression into the temporal variable retvalue 3. Executes <after> 4. Returns the value stored in retvalue By using the code template, the weaving process consists of the following two steps: Firstly, the weaver recognizes all of program locations where the described pointcuts specify by parsing the target JavaScript program les and aspect les. Secondly, for each location (joinpoint), the weaver generates the code for replacement based on the template, and replaces the original code to the code for replacement. Figure 5 shows the example of weaving when a variable assignment has been specied as a joinpoint, and Figure 6 shows that when a function execution has been specied. In each gure, the code portion surrounded by the dashed line will be replaced by the code for replacement based on the template. These replacements add new behavior into the target program while keeping the original functionality. (function(){ <before> var retvalue = <target>; <after> return retvalue ; ) (); Figure 4: Code template
4 function Target JavaScriptprogram vardummy, fib_gen_1() ret; { Code dummy ret = = x y + = y;x ret; = y; (function(){ for replacement based on the template window.alert("/ret@before: return ret; + ret + "<br/>"); " window.alert("/ret@after: var retvalue = ret = x + " y; return + + retvalue ;)(); "<br/>"); <varvarname="/fib_gen_1/ret"> Aspect Joinpointspecification by using the pointcut <before> </before> <![CDATA[window.alert("/ret@before:"+ret+"<br/>");]]> <after> </after> <![CDATA[window.alert("/ret@after:"+ret+"<br/>");]]> Figure 5: Weaving mechanism for variable assignment document.form2.result Target JavaScriptprogram Code.value=fib_gen_2(); (function() for replacement { based on the template varbeg=(new var retvalue =fib_gen_2(); Date()).getTime(); varend=(new sendlog( Date()).getTime(); + (end-beg) retvalue + "ms"); + "," Aspect return retvalue ;)(); <functionfunctionname= <before> "/fib_gen_2"> </before> <![CDATA[varbeg = (new Date()).getTime();]]> <after> <![CDATA[varend sendlog( retvalue = (new Date()).getTime(); </after> +", "+(end-beg)+"ms");]]> </function> Figure 6: Weaving mechanism for function execution 4. EXPERIMENTAL EVALUATIONS We conducted some experimental evaluations regarding the functionality and runtime performance of AOJS, under the following environments: AOJS server: AMD Athlon GB Memory Debian/GNU Linux 4.0r3 Apache Squid 2.6 Client: Intel Core2Duo U7500 2GB Memory Ubuntu Desktop Functionality To conrm the functionality of AOJS, we conducted a simple experiment. We tried to add a remote logging functionality to the Fibonacci program (shown in Figure 3) without any modication on the original program. This addition has been realized by only writing a small aspect shown in Figure 2, deploying the aspect on the AOJS server and accessing to the AOJS server (instead of the original web server). Figure 7 shows the time log le obtained remotely and asynchronously from a web client by accessing to the AOJS server. From this experiment, we conrmed that AOJS enables the complete separation between aspects and target original JavaScript programs because the functionality addition has been realized without any modication on the target Fibonacci program. Moreover, we conrmed that AOJS has enough ability to specify joinpoints including variable assignments. 09:34: , , , 266ms 431ms 161ms [Fri Jun 2709:34:26 09:34: ] [ xx] , , 694ms 1086ms Figure 7: The time log le obtained by executing the Fibonacci calculation program with the logging aspect (excerpt) 4.2 Runtime performance and the revised architecture From the viewpoint of the practicality, the runtime performance of the AOJS server is crucial because (a) good response time is often required for typical web applications, and (b) JavaScript programs are sometimes originally used for improving the usability of the target applications; the AOJS server should not decrease the runtime performance signicantly. To conrm the runtime performance of AOJS, we measured the throughput and response time when obtaining the web page containing the Fibonacci calculation program with/without aspects. Table 1 shows the obtained performance results when the Apache Benchmark Tool as the web client requested the same page totally 10 5 times. In Table 1, we conrmed that the throughput and response time of the case where the aspect has been weaved decreased signicantly compared with the case where no aspect has been weaved. It is because the weaving process will take place at each request time, and the process consumed 550ms for weaving the aspect to the Fibonacci program. To solve this performance problem, we re-designed the architecture of AOJS (shown in Figure 8) by adding a cache proxy in front of the reverse proxy, and modifying the reverse proxy to notify the recent update of aspects/pages/programs to the cache proxy. We implemented the cache proxy by using Squid[11]. By using the cache proxy, the weaving process takes place only at the rst request time while the target web pages, included JavaScript programs and aspects remain unchanged. As shown in Table 1, the runtime performance of AOJS with the cache proxy improved signicantly; the throughput and response time (median value) of the case where the aspect has been weaved with the usage of the cache proxy became almost the same values as those of the case where no aspect has been weaved. Therefore it is conrmed that AOJS with the cache proxy can be used practically from the viewpoint of the runtime performance. As our future work, we will try to integrate the weaver to the web server and compare its performance with the current proxy-based one. 5. RELATED WORK Regarding JavaScript, there are several existing AOP frameworks as mentioned in section 2, such as Aspectjs and Cerny.js. However none of these frameworks can realize the complete
5 Table 1: Performance measurement results Measurement No aspects and no cache proxy Aspect and no cashe proxy Aspect and the cash proxy Throughput [times/sec] Response time [median; msec] Client Cache proxy AOJS server Reverse proxy Aspectsincluding Weaver and advices (code weaving fragments) rules Original Web server JavaScript Program Other files Figure 8: Revised architecture with the cache proxy separation, and specify the location where variable assignments take place as joinpoints. AjaxScope is a proxy-based approach for performing onthe-y instrumentation of JavaScript code[12]. It can rewrite any JavaScript abstract syntax tree nodes by new instrumentation code such as the performance proling. Its fundamental mechanism is very similar to our framework. However it is not an AOP framework; it is unclear how easy to dene a new aspect (called "policy" in AjaxScope) corresponding to programmers' concerns. Regarding other languages for web development, Stamey et al proposed an AOP environment for PHP language, called AOPHP[13]. Although its mechanism of weaving aspect at the request time is similar to our framework, its language target and possible joinpoints are dierent from our framework. 6. CONCLUSION AND FUTURE WORK We built a new AOP framework for JavaScript programming, called AOJS. AOJS are useful to modularize crosscutting concerns in JavaScript programs, such as logging and Ajax mechanisms. By adapting proxy-based architecture for aspect weaving, AOJS guarantees the complete separation of aspects and target programs; it leads to the consistency between programs and the ones with aspects weaved by AOJS. It is also easy to weave/remove aspects at runtime by only changing the URL for accessing. These features have not been achieved by any conventional framework/research in JavaScript. As the result of experimental evaluations, we conrmed that AOJS enables the complete separation of aspects and target programs, and has enough ability to specify joinpoints including variable assignments. Moreover, it is possible to improve runtime performance by adding the cash proxy. As our future works, we have a plan to extend AOJS to cover other joinpoints (such as function calls), and to deal with the around advice[9]. Moreover we will evaluate the usefulness of AOJS for larger-scale web-based applications. Acknowledgement This research is partially supported by Joint Forum for Strategic Software Research (SSR) of International Information Science Foundation (IISF) and GRACE Center of National Institute of Informatics (NII). Our thanks go to the anonymous reviewers for their valuable comments. 7. REFERENCES [1] ISO/IEC 16262:2002, Information technology - ECMAScript language specication, [2] Gregor Kiczales, John Lamping, Anurag Menhdhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier and John Irwin: Aspect-oriented programming, Proc. European Conference on Object-Oriented Programming (ECOOP), pp , [3] LECACHEUR Sebastien: Aspectjs, [4] Robert Cerny: Cerny.js, [5] The Dojo Foundation: The Dojo Toolkit, [6] Ext, LLC: Ext JS: Cross-Browser Rich Internet Application Framework, [7] Yahoo! Inc.: The Yahoo! User Interface Library (YUI), [8] Google: Ajaxpect: Aspect-Oriented Programming for Ajax, [9] Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jerey Palm and William G. Griswold: An Overview of AspectJ, Proc. European Conference on Object-Oriented Programming (ECOOP), pp , [10] Java Compiler Compiler (JavaCC) - The Java Parser Generator, [11] Squid: Optimising Web Delivery, [12] Emre Kiciman and Benjamin Livshits: AjaxScope: a platform for remotely monitoring the client-side behavior of web 2.0 applications, Proc. 21st ACM SIGOPS Symposium on Operating Systems Principles, pp.1730, [13] John Stamey, Bryan Saunders and Simon Blanchard: The aspect-oriented web, Proc. 23rd Annual International Conference on Design of Communication: Documenting & Designing for Pervasive Information, pp.8995, 2005.
Aspect-Oriented Web Development in PHP
Aspect-Oriented Web Development in PHP Jorge Esparteiro Garcia Faculdade de Engenharia da Universidade do Porto [email protected] Abstract. Aspect-Oriented Programming (AOP) provides another way of
Aspect-Oriented Programming
Aspect-Oriented Programming An Introduction to Aspect-Oriented Programming and AspectJ Niklas Påhlsson Department of Technology University of Kalmar S 391 82 Kalmar SWEDEN Topic Report for Software Engineering
A COMPARISON OF AOP BASED MONITORING TOOLS
STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume LVI, Number 3, 2011 A COMPARISON OF AOP BASED MONITORING TOOLS GRIGORETA S. COJOCAR AND DAN COJOCAR Abstract. The performance requirements of a software system
An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0
An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0 September 2010 Copyright IBM Corporation 2010. 1 Overview Rational Application Developer, Version 8.0, contains
Generating Aspect Code from UML Models
Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany [email protected] Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,
Component-Based Software Development with Aspect-Oriented Programming
Vol. 4, No. 3 Special issue: GPCE Young Researchers Workshop 2004 Component-Based Software Development with Aspect-Oriented Programming Michael Eichberg, Departement of Computer Science, Darmstadt University
Using an Aspect Oriented Layer in SOA for Enterprise Application Integration
19 Using an Aspect Oriented Layer in SOA for Enterprise Application Integration Chinthaka D. Induruwana School of Computer Science, University of Manchester, Kilburn Building, Oxford Road M13 9PL [email protected]
Progress Report Aspect Oriented Programming meets Design Patterns. Academic Programme MSc in Advanced Computer Science. Guillermo Antonio Toro Bayona
Progress Report Aspect Oriented Programming meets Design Patterns Academic Programme MSc in Advanced Computer Science Guillermo Antonio Toro Bayona Supervisor Dr. John Sargeant The University of Manchester
Toward Configurable Access Control for. Healthcare Information Systems
Toward Configurable Access Control for Healthcare Information Systems Kung Chen a and Da-Wei Wang b a Department of Computer Science, National Chengchi University b Institute of Information Science, Academia
Encapsulating Crosscutting Concerns in System Software
Encapsulating Crosscutting Concerns in System Software Christa Schwanninger, Egon Wuchner, Michael Kircher Siemens AG Otto-Hahn-Ring 6 81739 Munich Germany {christa.schwanninger,egon.wuchner,michael.kircher}@siemens.com
Load balancing using Remote Method Invocation (JAVA RMI)
Load balancing using Remote Method Invocation (JAVA RMI) Ms. N. D. Rahatgaonkar 1, Prof. Mr. P. A. Tijare 2 1 Department of Computer Science & Engg and Information Technology Sipna s College of Engg &
Credits: Some of the slides are based on material adapted from www.telerik.com/documents/telerik_and_ajax.pdf
1 The Web, revisited WEB 2.0 [email protected] Credits: Some of the slides are based on material adapted from www.telerik.com/documents/telerik_and_ajax.pdf 2 The old web: 1994 HTML pages (hyperlinks)
Combining Static and Dynamic Impact Analysis for Large-scale Enterprise Systems
Combining Static and Dynamic Impact Analysis for Large-scale Enterprise Systems The 15th International Conference on Product-Focused Software Process Improvement, Helsinki, Finland. Wen Chen, Alan Wassyng,
IT3503 Web Development Techniques (Optional)
INTRODUCTION Web Development Techniques (Optional) This is one of the three optional courses designed for Semester 3 of the Bachelor of Information Technology Degree program. This course on web development
AJAX. Gregorio López López [email protected] Juan Francisco López Panea [email protected]
AJAX Gregorio López López [email protected] Juan Francisco López Panea [email protected] Departamento de Ingeniería Telemática Universidad Carlos III de Madrid Contents 1. Introduction 2. Overview
AjaxScope: Remotely Monitoring Client-side Web-App Behavior
AjaxScope: Remotely Monitoring Client-side Web-App Behavior Emre Kıcıman [email protected] Ben Livshits [email protected] Internet Services Research Center Microsoft Research Runtime Analysis &
Curl Building RIA Beyond AJAX
Rich Internet Applications for the Enterprise The Web has brought about an unprecedented level of connectivity and has put more data at our fingertips than ever before, transforming how we access information
AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev
International Journal "Information Technologies & Knowledge" Vol.5 / 2011 319 AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev Abstract: This paper presents a new approach
Performance Testing for Ajax Applications
Radview Software How to Performance Testing for Ajax Applications Rich internet applications are growing rapidly and AJAX technologies serve as the building blocks for such applications. These new technologies
Introducing a Graduate Course on. called Aspect-Oriented Software Development
Int. J. Engng Ed. Vol. 21, No. 2, pp. 361±368, 2005 0949-149X/91 $3.00+0.00 Printed in Great Britain. # 2005 TEMPUS Publications. Introducing a Graduate Course on Aspect-Oriented Software Development*
IT3504: Web Development Techniques (Optional)
INTRODUCTION : Web Development Techniques (Optional) This is one of the three optional courses designed for Semester 3 of the Bachelor of Information Technology Degree program. This course on web development
Distance Examination using Ajax to Reduce Web Server Load and Student s Data Transfer
Distance Examination using Ajax to Reduce Web Server Load and Student s Data Transfer Distance Examination using Ajax to Reduce Web Server Load and Student s Data Transfer Ridwan Sanjaya Soegijapranata
Front-End Performance Testing and Optimization
Front-End Performance Testing and Optimization Abstract Today, web user turnaround starts from more than 3 seconds of response time. This demands performance optimization on all application levels. Client
Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application
Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application First Generation HTTP request (URL or Form posting) W HTTP response (HTML Document) W Client Tier Server Tier Data Tier Web CGI-Scripts
Transition your MCPD Web Developer Skills to MCPD ASP.NET Developer 3.5 (VB)
Transition your MCPD Web Developer Skills to MCPD ASP.NET Developer 3.5 (VB) Course Number: 70-567 UPGRADE Certification Exam 70-567 - UPGRADE: Transition your MCPD Web Developer Skills to MCPD ASP.NET
Oracle Application Express MS Access on Steroids
Oracle Application Express MS Access on Steroids Jules Lane Principal Consultant Tactical Database Development options Spreadsheets Encourage data duplication and inconsistency, clog
ASP.NET Using C# (VS2012)
ASP.NET Using C# (VS2012) This five-day course provides a comprehensive and practical hands-on introduction to developing applications using ASP.NET 4.5 and C#. It includes an introduction to ASP.NET MVC,
Data Visualization in Ext Js 3.4
White Paper Data Visualization in Ext Js 3.4 Ext JS is a client-side javascript framework for rapid development of cross-browser interactive Web applications using techniques such as Ajax, DHTML and DOM
Framework as a master tool in modern web development
Framework as a master tool in modern web development PETR DO, VOJTECH ONDRYHAL Communication and Information Systems Department University of Defence Kounicova 65, Brno, 662 10 CZECH REPUBLIC [email protected],
PESTO: A Tool for Migrating DOM-based to Visual Web Tests
2014 14th IEEE International Working Conference on Source Code Analysis and Manipulation PESTO: A Tool for Migrating DOM-based to Visual Web Tests Andrea Stocco 1, Maurizio Leotta 1, Filippo Ricca 1, Paolo
Web Cloud Architecture
Web Cloud Architecture Introduction to Software Architecture Jay Urbain, Ph.D. [email protected] Credits: Ganesh Prasad, Rajat Taneja, Vikrant Todankar, How to Build Application Front-ends in a Service-Oriented
Unification of AOP and FOP in Model Driven Development
Chapter 5 Unification of AOP and FOP in Model Driven Development I n this chapter, AOP and FOP have been explored to analyze the similar and different characteristics. The main objective is to justify
Whitepapers at Amikelive.com
Brief Overview view on Web Scripting Languages A. Web Scripting Languages This document will review popular web scripting languages[1,2,12] by evaluating its history and current trends. Scripting languages
Evaluation of Load/Stress tools for Web Applications testing
May 14, 2008 Whitepaper Evaluation of Load/Stress tools for Web Applications testing CONTACT INFORMATION: phone: +1.301.527.1629 fax: +1.301.527.1690 email: [email protected] web: www.hsc.com PROPRIETARY
Client-side Web Engineering From HTML to AJAX
Client-side Web Engineering From HTML to AJAX SWE 642, Spring 2008 Nick Duan 1 What is Client-side Engineering? The concepts, tools and techniques for creating standard web browser and browser extensions
Extending an Open-Source BPEL Engine with Aspect-Oriented Programming
Extending an Open-Source BPEL Engine with Aspect-Oriented Programming Alejandro Houspanossian and Mariano Cilia UNICEN, Faculty of Sciences Campus Universitario Tandil, Argentina. {ahouspan,mcilia}@exa.unicen.edu.ar
The Nature and Importance of a Programming Paradigm
Multiple Software Development Paradigms and Multi-Paradigm Software Development Valentino Vranić [email protected] Abstract: While OOP (including OOA/D) is reaching the level of maturity of structured
Using AOP Techniques as an Alternative Test Strategy
Using AOP Techniques as an Alternative Test Strategy Lian Yang [email protected] Abstract Ever since its inception [1], researchers and software professionals saw that Aspect-oriented Programming (AOP)
IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience
IBM Digital Experience Using Modern Web Development Tools and Technology with IBM Digital Experience Agenda The 2015 web development landscape and IBM Digital Experience Modern web applications and frameworks
Programming IoT Gateways With macchina.io
Programming IoT Gateways With macchina.io Günter Obiltschnig Applied Informatics Software Engineering GmbH Maria Elend 143 9182 Maria Elend Austria [email protected] This article shows how
Integration of Application Business Logic and Business Rules with DSL and AOP
Integration of Application Business Logic and Business Rules with DSL and AOP Bogumiła Hnatkowska and Krzysztof Kasprzyk Wroclaw University of Technology, Wyb. Wyspianskiego 27 50-370 Wroclaw, Poland [email protected]
Keywords Aspect-Oriented Modeling, Rule-based graph transformations, Aspect, pointcuts, crosscutting concerns.
Volume 4, Issue 5, May 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Functional and Non-Functional
Preface. Motivation for this Book
Preface Asynchronous JavaScript and XML (Ajax or AJAX) is a web technique to transfer XML data between a browser and a server asynchronously. Ajax is a web technique, not a technology. Ajax is based on
Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology [email protected] Fall 2007
Internet Engineering: Web Application Architecture Ali Kamandi Sharif University of Technology [email protected] Fall 2007 Centralized Architecture mainframe terminals terminals 2 Two Tier Application
Distributed Systems Development: Can we Enhance Evolution by using AspectJ?
Distributed Systems Development: Can we Enhance Evolution by using AspectJ? Cormac Driver Siobhán Clarke Distributed Systems Group, Computer Science Department, Trinity College Dublin, Ireland {Cormac.Driver,
A CLOUD-BASED FRAMEWORK FOR ONLINE MANAGEMENT OF MASSIVE BIMS USING HADOOP AND WEBGL
A CLOUD-BASED FRAMEWORK FOR ONLINE MANAGEMENT OF MASSIVE BIMS USING HADOOP AND WEBGL *Hung-Ming Chen, Chuan-Chien Hou, and Tsung-Hsi Lin Department of Construction Engineering National Taiwan University
Aspects for Testing Aspects?
Aspects for Testing Aspects? Dehla Sokenou, Stephan Herrmann Technische Universität Berlin Software Engineering Group Sekr. FR 5-6, Franklinstr. 28/29, D-10587 Berlin [dsokenou stephan]@cs.tu-berlin.de
<Insert Picture Here> Michael Hichwa VP Database Development Tools [email protected] Stuttgart September 18, 2007 Hamburg September 20, 2007
Michael Hichwa VP Database Development Tools [email protected] Stuttgart September 18, 2007 Hamburg September 20, 2007 Oracle Application Express Introduction Architecture
Caplin Trader 1.4. Catalog Of Documents. August 2009 C O N F I D E N T I A L
August 2009 C O N F I D E N T I A L Contents Contents 1 Preface... 1 1.1 1.2 1.3 1.4 1.5 What... this document contains 1 Who... should read this document 1 Related... documents 1 Feedback... 1 Acknowledgments...
Developing ASP.NET MVC 4 Web Applications MOC 20486
Developing ASP.NET MVC 4 Web Applications MOC 20486 Course Outline Module 1: Exploring ASP.NET MVC 4 The goal of this module is to outline to the students the components of the Microsoft Web Technologies
CrownPeak Playbook CrownPeak Hosting with PHP
CrownPeak Playbook CrownPeak Hosting with PHP Version 1.0 2014, Inc. All rights reserved. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical,
ASP.NET: THE NEW PARADIGM FOR WEB APPLICATION DEVELOPMENT
ASP.NET: THE NEW PARADIGM FOR WEB APPLICATION DEVELOPMENT Dr. Mike Morrison, University of Wisconsin-Eau Claire, [email protected] Dr. Joline Morrison, University of Wisconsin-Eau Claire, [email protected]
A Tool for Evaluation and Optimization of Web Application Performance
A Tool for Evaluation and Optimization of Web Application Performance Tomáš Černý 1 [email protected] Michael J. Donahoo 2 [email protected] Abstract: One of the main goals of web application
GUI and Web Programming
GUI and Web Programming CSE 403 (based on a lecture by James Fogarty) Event-based programming Sequential Programs Interacting with the user 1. Program takes control 2. Program does something 3. Program
Developing ASP.NET MVC 4 Web Applications
Course M20486 5 Day(s) 30:00 Hours Developing ASP.NET MVC 4 Web Applications Introduction In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5 tools
Designing and Implementing Support for Web Browser-Based UIs by Using Ajax Technology
Designing and Implementing Support for Web Browser-Based UIs by Using Ajax Technology Asim Cihan Erdemli Onur Hazar Master in Information Systems Submission date: June 2011 Supervisor: Hallvard Trætteberg,
AJAX Toolkit Framework
IBM Software Group AJAX Toolkit Framework Emerging Internet Technologies Group Ajax - What s our vision Grow Ajax adoption to the next phase Evolve tools that significantly reduce the development costs
Performance Analysis of Aspect Oriented Programming for Cloud Service Monitoring
Performance Analysis of Aspect Oriented Programming for Cloud Service Monitoring TejasN.Rao 1,, Akash Kumar, S. V. Shanmuga Sunder and K. Chandrasekaran Department of Computer Science and Engineering,
Monitoring the Real End User Experience
An AppDynamics Business White Paper HOW MUCH REVENUE DOES IT GENERATE? Monitoring the Real End User Experience Web application performance is fundamentally associated in the mind of the end user; with
Eliminating SQL Injection and Cross-Site Scripting With Aspect Oriented Programming
ABSTRACT OF THESIS Eliminating SQL Injection and Cross-Site Scripting With Aspect Oriented Programming Cross Site scripting (XSS) and SQL injection are two of the most common vulnerabilities found in applications.
Business Application Services Testing
Business Application Services Testing Curriculum Structure Course name Duration(days) Express 2 Testing Concept and methodologies 3 Introduction to Performance Testing 3 Web Testing 2 QTP 5 SQL 5 Load
A Typing System for an Optimizing Multiple-Backend Tcl Compiler
The following paper was originally published in the Proceedings of the Fifth Annual Tcl/Tk Workshop Boston, Massachusetts, July 1997 A Typing System for an Optimizing Multiple-Backend Tcl Compiler Forest
How To Combine Feature-Oriented And Aspect-Oriented Programming To Support Software Evolution
Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution Sven Apel, Thomas Leich, Marko Rosenmüller, and Gunter Saake Department of Computer Science Otto-von-Guericke-University
Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution
Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution Sven Apel, Thomas Leich, Marko Rosenmüller, and Gunter Saake Department of Computer Science University of Magdeburg,
PROJECT MANAGEMENT SYSTEM
Requirement Analysis Document v.2 14.12.2009 CENG-401 SOFTWARE ENGINEER PROJECT MANAGEMENT SYSTEM (Project Manager) Ahmet Edip SEÇKİN 07010555 (Developer) Erhan ŞEN 07010507 (Developer) Semih Serdar CENGİZOĞLU
Document management and exchange system supporting education process
Document management and exchange system supporting education process Emil Egredzija, Bozidar Kovacic Information system development department, Information Technology Institute City of Rijeka Korzo 16,
MEGA Web Application Architecture Overview MEGA 2009 SP4
Revised: September 2, 2010 Created: March 31, 2010 Author: Jérôme Horber CONTENTS Summary This document describes the system requirements and possible deployment architectures for MEGA Web Application.
Building Rich Internet Applications with PHP and Zend Framework
Building Rich Internet Applications with PHP and Zend Framework Stanislav Malyshev Software Architect, Zend Technologies IDG: RIAs offer the potential for a fundamental shift in the experience of Internet
ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM
ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM Ashish Patel, Lead Eclipse Committer for ARM, IBM Corporation Oliver E. Cole, President, OC Systems, Inc. The Eclipse Test and Performance Tools
LAMP [Linux. Apache. MySQL. PHP] Industrial Implementations Module Description
LAMP [Linux. Apache. MySQL. PHP] Industrial Implementations Module Description Mastering LINUX Vikas Debnath Linux Administrator, Red Hat Professional Instructor : Vikas Debnath Contact
Considering Additional Adaptation Concerns in the Design of Web Applications
Considering Additional Adaptation Concerns in the Design of Web Applications Sven Casteleyn 1, Zoltán Fiala 2, Geert-Jan Houben 1,3, and Kees van der Sluijs 3 1 Vrije Universiteit Brussel, Pleinlaan 2,
How To Write An Ria Application
Document Reference TSL-SES-WP-0001 Date 4 January 2008 Issue 1 Revision 0 Status Final Document Change Log Version Pages Date Reason of Change 1.0 Draft 17 04/01/08 Initial version The Server Labs S.L
Efficiency of Web Based SAX XML Distributed Processing
Efficiency of Web Based SAX XML Distributed Processing R. Eggen Computer and Information Sciences Department University of North Florida Jacksonville, FL, USA A. Basic Computer and Information Sciences
Web Programming Languages Overview
Web Programming Languages Overview Thomas Powell [email protected] Web Programming in Context Web Programming Toolbox ActiveX Controls Java Applets Client Side Helper Applications Netscape Plug-ins Scripting
How to Model Aspect-Oriented Web Services
How to Model Aspect-Oriented Web Services Guadalupe Ortiz Juan Hernández [email protected] [email protected] Quercus Software Engineering Group University of Extremadura Computer Science Department Pedro
Multivariate Testing of Native Mobile Applications
Multivariate Testing of Native Mobile Applications Clemens Holzmann University of Applied Sciences Upper Austria Department of Mobile Computing Softwarepark 11, 4232 Hagenberg, Austria [email protected]
A review and analysis of technologies for developing web applications
A review and analysis of technologies for developing web applications Asha Mandava and Solomon Antony Murray state University Murray, Kentucky Abstract In this paper we review technologies useful for design
4PSA DNS Manager 3.7.0. Translator's Manual
4PSA DNS Manager 3.7.0 Translator's Manual For more information about 4PSA DNS Manager, check: http://www.4psa.com Copyrights 2002-2010 Rack-Soft, Inc. Translator's Manual Manual Version 48807.9 at 2010/03/10
Google Analytics for Robust Website Analytics. Deepika Verma, Depanwita Seal, Atul Pandey
1 Google Analytics for Robust Website Analytics Deepika Verma, Depanwita Seal, Atul Pandey 2 Table of Contents I. INTRODUCTION...3 II. Method for obtaining data for web analysis...3 III. Types of metrics
Server-Side Scripting and Web Development. By Susan L. Miertschin
Server-Side Scripting and Web Development By Susan L. Miertschin The OOP Development Approach OOP = Object Oriented Programming Large production projects are created by teams Each team works on a part
