Introduction to Web Programming
Total Page:16
File Type:pdf, Size:1020Kb
BORYANA DELIYSKA INTRODUCTION TO WEB PROGRAMMING SOFIA 2018 ISBN 978-619-90990-1-8 1 This book is meant for professionals and anyone with an interest in WWW, information and communication technologies (ICT). Given the vigorous rate of development in the area, the book is in electronic form, which facilitates its regular update. 2 CONTENT CONTENT 3 INTRODUCTION 7 ABBREVIATION LIST 8 LIST OF FIGURES 12 LIST OF TABLES 13 Theme 1. WEB PROGRAMMING. ESSENCE. TYPES. RESOURCES 14 1.1. Nature and purpose of web programming 14 1.2. Web programming types 14 1.3. Protocols, standards, technologies and platforms for web application building and exploitation 15 1.3.1. Protocols 15 1.3.2. Web technologies and standards 16 1.3.3. Software platforms 17 1.4. Content management systems 21 Theme 2. WEB PROGRAMMING LANGUAGES. NATURE AND CLASSIFICATION. SYNTAX AND GRAMMAR. COMPARATIVE ANALYSIS 2.1.2. Key features 2.2. Historical reference and review of web programming languages 2.3. Classification of web programming languages 2.3.1. Client-side languages 2.3.2. Server-side languages 2.5. Web programming language comparison 2.5.1. Perl 2.5.2. Java and Scala 2.5.3. PHP 2.5.4. C# and F# 2.5.5. JavaScript (JS) 2.5.6. VBScript 2.5.7. Python and Boo 2.5.8. Ruby 3 2.5.10. Gо 2.5.11. Summary Theme 3. WEB APPLICATIONS 3.1. Web applications. Nature and types. Folder structure 3.1.1. Web application architecture 3.1.2. Access devices 3.1.3. Web application purpose 3.2. Declaring and running scripts in web applications 3.2.1. Declaring languages and scripts in the page head 3.2.2. Declaring languages and executing scripts in the page body 3.2.3. Server scripts declaring and execution 3.3. СОМ, COM+, DCOM, OLE Automation and ActiveX components 3.4. Rich internet applications 3.4.1. RIA resources 3.4.2. RIA development stages Theme 4. WEB PROGRAMMING FOR MOBILE SYSTEMS 4.1. Mobile OS 4.1.1. Mobile Windows OS 4.1.2. Apple iOS 4.1.3. Google Android 4.1.4. WebOS of LG Electronics 4.1.5. Tizen of Samsung and Intel 4.1.6. Sailfish OS 4.2. Specialized web programming languages for mobile applications 4.3. Mobile app platforms 4.3.1. Appcelerator 4.3.2. App Inventor 4.3.3. Buzztouch 4.3.4. EachScape 4.3.5. Corona SDK 4 4.3.6. Apache Cordova 4.3.7. Meme 4.3.8. Mobile Roadie 4.4. Mobile app development libraries 4.4.1. jQueryMobile 4.4.2. Zepto.js 4.4.3. jQT 4.4.4. React Native 4.5. Mobile app stories Theme 5. DATA SOURCES IN WWW. DATABASE INTERFACE 5.1. Structured server DB 5.1.1. Structured server DBMS 5.1.2. Structured server DSMS 5.2. Non-structured server DBs 5.2.1. Column DBs 5.2.2. Document DBs 5.2.3. Key-value DB (key-value store) 5.2.4. Graph DB 5.2.5. Hybrid (multi-model) DB 5.2.6. Semantic DB 5.3. Data source interface. Technologies 5.3.1. DB access models 5.3.2. Microsoft DB access technologies 5.3.3. JDBC technology Theme 6. TECHNOLOGIES AND PLATFORMS FOR WEB APPLICATIONS. COMPARATIVE ANALYSIS 6.1. Gateway technologies 6.1.1. CGI 6.1.2. SAPI 6.1.3. SSI interface 6.2. Java technologies 6.2.1. Interfaces for communication between remote applications 5 6.2.2. Java platforms 6.3. ASP technology 6.4. LAMP (Linux, Apache, MySQL, PHP) platform 6.4.1. LAMP components 6.4.2. LAMP resources 6.5. .NET platform 6.5.1. .NET Framework 6.5.2. .NET API 6.5.3. Visual Studio platform 6.6. ASP.NET technology 6.6.1. ASP.NET essence 6.6.2. ASP.NET components 6.7. ColdFusion technology 6.8. PostgreSQL + Perl 6.9. RIA resources 6.9.1. AJAX (Asynchronous JavaScript and XML) technologies 6.9.2. JavaFX 6.9.3. JavaScript platforms for SPA 6.9.4. Other platforms 6.10. Package managers 6.10.1. npm (Node Package Manager) 6.10.2. Gulp.js 6.10.3. Yeoman 6.10.4. Bower 6.10.5. PEAR (PHP Extension and Application Repository) 6.10.6. СPAN (Comprehensive Perl Archive Network) REFERENCES APPENDICES APPENDIX 1. LIST OF WEB APPLICATION PLATFORMS AND ENVIRONMENTS APPENDIX 2. Terminological dictionary 6 INTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity related to method, technology, design and codification of applications (web apps) representing organized software structures of content and functionality in the web. In the simplest case, web apps are static web pages, but lately these are very rarely encountered. The contemporary web apps are sites consisting of linked (static and dynamic) web pages, scripts and databases (DB). For their developing WWW and desktop ICT are used. There is great number of software platforms – one- or multi-language and possessing all resources for web apps development and implementation. Nevertheless, even experienced professionals find it difficult to be uptake about the dynamic development of ICT theory and practice and many firm technologies, including huge variety of languages, databases and frameworks. The purpose of this book is to present optimally the current state of web technologies, clearly recognizing that they are extremely dynamic and very often with a commercial orientation. Moreover, there is vastly ambiguity in the terminology in the area. Due to that, the book is available in an electronic form with a periodical update and possibility to feedback with the readers. My wish is to create a useful tool for beginners and for specialists also. I have aspired to summarize the most important features, technologies and languages related to web programming. The effective understanding of the content, separated into six themes, requires preliminary knowledge of basic ICT. In Theme 1 essence, purpose and classification of web programming is considered as well as used web protocols, standards and platforms. Theme 2 is an overview of features of the widespread general-purpose and scripting languages for web programming. Theme 3 refers to kind of web apps, their declaration and execution. A special attention is being paid to Rich Internet Applications (RIA). Theme 4 is dedicated to mobile web application programming as the most dynamically developing branch in the area. In Theme 5 online database management systems (DBMS) are presented, including their interface, access methods and technologies. In Theme 6, the most popular current web programming platforms and technologies are considered. There are two appendices: Appendix 1 is summary reference about most popular web integrated development environments (IDEs) and platforms. Appendix 2 is a brief terminological dictionary. 7 ABBREVIATION LIST AJAX – Asynchronous JavaScript and XML API – Application Program Interface ASP – Active Server Pages ATF – Ajax Tools Framework AWT – Abstract Windowing Toolkit BCL – Base Class Library CCMS – Component Content Management System CDI – Context and Dependency Injection CEP – Complex Event Processing CFML – Cold Fusion Markup Language CGI – Common Gate Interface CIL – Common Intermediate Language CLI – Call Level Interface CLI – Command Line Interface CLI – Common Language Infrastructure CMS – Content Management Systems COM – Component Object Model CRM – Customer Relationship Management CUI - Console User Interface or Character User Interface DB – Database DBMS – Database Management System DHT – Distributed Hash Table DLL – Dynamic-Linkable Library DOM – Document Object Model DSMS – Data Stream Management System DSN – Data Source Name ECMS – Enterprise Content Management Systems EDA – Еvent-Driven Architecture EIS – Enterprise Information Systems EJB – Enterprise Java Beans 8 ERP – Enterprise Resource Planning GIOP – General Inter-ORB Protocol GUI – Graphical User Interface GWT – Google Web Toolkit IDE – Integrated Development Environment IDL - Interface Definition Language IIS – Internet Information Server IIOP – Internet Inter-ORB Protocol IoC – Inversion of Control IoT – Internet of Things IS – information system ISAM – Indexed Sequential Access Method ISAPI – Internet Information Server Application Programing Interface JAAS – Java Authentication and Authorization Service JACC – Java Authorization Contract for Containers JAF – JavaBeans Activation Framework JAX-WS – Java API for XML Web Services JAX-RS – Java API for RESTful Web Services JCA – J2EE Connector Architecture JDBC – Java Database Connectivity JDK – Java Development Kit JEE – Java Enterprise Edition JME – Java Micro Edition JMS – Java Message Service JNDI – Java Naming and Directory Interface JPA – Java Persistence API JRE – Java Runtime Environment JRMP – Java Remote Method Protocol JSDK – Java Servlet Development Kit JSE – Java Standard Edition JSF – Java Server Faces 9 JSON – JavaScript Object Notation JSP – Java Server Pages JSR – Java Specification Request JSTL – Java Server Pages Standard Tag Library JTA – Java Transaction API JVM – Java Virtual Machine LCMS – Learning Content Management Systems MVC – Model-View-Controller NSAPI – Netscape Server Application Programing Interface OLAP – OnLine Analytical Processing OLTP – OnLine Transaction Processing OMG – Object Management Group ORB – Object Request Brokers OS – Operating System OSI – Open System Interconnection PDA – Personal Digital Assistants PDK – Perl Dev Kit RAP – Rich AJAX Platform RDBMS – Relational Database Management System RDSMS – Relational Data Stream Management System RFC – Request for Comments RIA – Rich Internet Application RMI – Remote Method Invocation RPC – Remote Procedure Call SAPI – Server Application Programming Interface SDK – Software Development Kit SOA – Service-Oriented Architecture SPA – Single-Page Application SSI – Server-Side Include StAX – Streaming API for XML ТСР – Transport Control Protocol 10 UI – User Interface UnQL – Unstructured Query Language URI – Uniform Resource Identifier UWP - Universal Windows Platform W3C – World Wide Web Consortium WPF - Windows Presentation Foundation WWW – World Wide Web XHR – XMLHttpRequest XML – eXtended Markup Language 11 LIST OF FIGURES Figure 1.1. Functional schema of WWW 16 Figure 1.2. Schema of web technologies 16 Figure 1.3.