350 likes | 575 Views
Programarea Aplicatiilor Web. 2014. Aplicatii Web. Multi-tiers Mesh-Up Web Services Web Semantic HTML5 Cloud (&mobile) IoT , Web-of-things. Aplicatie Web.
E N D
Aplicatii Web • Multi-tiers • Mesh-Up • Web Services • Web Semantic • HTML5 • Cloud (&mobile) • IoT, Web-of-things
Aplicatie Web A web application is an application that is accessed over a network such as the Internet or an intranet . The term may also mean a computer software application that is coded in a browser-supported language (such as JavaScript, combined with a browser-rendered markup language like HTML) and reliant on a common web browser to render the application executable. Web applications are popular due to the ubiquity of web browsers, and the convenience of using a web browser as a client, sometimes called a thin client. The ability to update and maintain web applications without distributing and installing software on potentially thousands of client computers is a key reason for their popularity, as is the inherent support for cross-platform compatibility. O aplicaţie web este un sistem software bazat pe tehnologiile şi standardele consorţiului World Wide Web (W3C), care oferă resurse web specifice (conţinut şi servicii) prin intermediul unei interfeţe utilizator (browser web). • Client –server (aplicatii N-tier) • Tehnologii Web (HTTP) • Internet of Things, Web of Things • SmartGrid, SmartCity, SmartHome, .. • BigData • Cloud Computing
Arhitecturauneiaplicatii Web The key tenet of distributed applications is the logical partitioning of an application into three fundamental layers: • Presentation • Business logic • Data access and storage An Overview of Distributed Applications http://msdn.microsoft.com/en-us/library/aa291332(v=vs.71).aspx
3-tier application • A 3-tier application is an application program that is organized into three major parts, each of which is distributed to a different place or places in a network. The three parts are: • The workstation or presentation interface • The business logic • The database and programming related to managing it http://searchsoftwarequality.techtarget.com/definition/3-tier-application
http://searchsoftwarequality.techtarget.com/definition/3-tier-applicationhttp://searchsoftwarequality.techtarget.com/definition/3-tier-application In a typical 3-tier application, the application user's workstation contains the programming that provides the graphical user interface (GUI) and application-specific entry forms or interactive windows. (Some data that is local or unique for the workstation user is also kept on the local hard disk.) Business logic is located on a local area network (LAN) server or other shared computer. The business logic acts as the server for client requests from workstations. In turn, it determines what data is needed (and where it is located) and acts as a client in relation to a third tier of programming that might be located on a mainframe computer. The third tier includes the database and a program to manage read and write access to it. While the organization of an application can be more complicated than this, the 3-tier view is a convenient way to think about the parts in a large-scale program.
http://en.wikipedia.org/wiki/Three-tier_%28computing%29#Three-tier_architecturehttp://en.wikipedia.org/wiki/Three-tier_%28computing%29#Three-tier_architecture
Aplicatii multi-nivel (n-tiers) http://en.wikipedia.org/wiki/Multitier_architecture
Distributed Client/Server Model http://channukambalyal.tripod.com/NTierArchitecture.pdf
Independence of Layers • Can access directly only the public components of its directly-below layer. • presentation layer can only access the public components in application layer, but not in data layer. • application layer can only access the public components in data layer, but not in presentation layer. • Why ? • Minimize the dependencies of one layer on other layers. • Benefits for layer development/maintenance, upgrading, scaling and etc. • Makes the tier security enforcement possible. • For example, the client layer cannot access the data layer directly but through the application layer, so data layer has a higher security guarding. • Avoid cyclic dependencies among software components.
Middleware Simplifies 3-tier application development and administration by providing an extra application server layer to manage communication between components. http://en.wikipedia.org/wiki/Middleware
Cloud app vs. Web app • … a cloud app is the evolved web app. It’s equally used to access online services over the Internet like web apps but not always exclusively dependent on web browsers to work. • Data is stored in a cloud / cloud-like infrastructure • Data can be cached locally for full-offline mode • Can be used to access a wider range of services such as on-demand computing cycle, storage, application development platforms • Web apps on the other hand are almost exclusively designed to be used from a web browser. A combination of server-side script (ASP, PHP etc) and client-side script (HTML, JavaScript, Adobe Flash) are commonly used to develop the web application. The web browser (thin client) relies on the web server components installed on backend infrastructure systems for the heavy lifting in providing its core functional web services. http://www.techrepublic.com/blog/datacenter/cloud-app-vs-web-app-understanding-the-differences/5478
http://msdn.microsoft.com/en-us/library/ee658099.aspx Chapter 21: Designing Web Applications Microsoft Application Architecture Guide, 2nd Edition, 2009
Frameworks • PHP: Zend, CodeIgniter • Java: Struts, Spring, Tapestry,GWT, • ASP.NET: ASP.NET MVC • Ruby • ColdFusion • Python • HTML5 (mark-up + API) • Standardizare thin client (desktop/mobile) • JavaScript frameworks (jQuery, etc) • Nodejs • NoSQL http://en.wikipedia.org/wiki/Web_application_framework http://en.wikipedia.org/wiki/List_of_web_application_frameworks
Design Patterns In software engineering, a design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. So patterns are formalized best practices that you must implement yourself in your application. Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved. http://en.wikipedia.org/wiki/Software_design_pattern Model/view/controller (MVC) is a software architecture,currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" (the application logic for the user) from the user interface (input and presentation), permitting independent development, testing and maintenance of each (separation of concerns). http://en.wikipedia.org/wiki/Model-view-controller
Template Engines What is Smarty? A templating engine ● The V of MVC ● Separates business and displaylogic – designer safe! http://codesamplez.com/development/smarty-basics-tutorial
What is the Zend Framework, exactly? • The Zend Framework: • Is based on PHP • Is object-oriented • Uses the MVC paradigm • Has open source contributors • Has contributors who take responsibility for the fact that their code is not the intellectual property of someone else http://www.ibm.com/developerworks/opensource/library/os-php-zend1/
Mesh-ups http://java.sun.com/developer/technicalArticles/J2EE/mashup_1/#intro
Exemplu: Google Application Engine Google App Engine (often referred to as GAE or simply App Engine, and also used by the acronym GAE/J) is a platform as a service (PaaS) cloud computing platform for developing and hosting web applications in Google-managed data centers.
http://www.developer.com/lang/php/the-state-of-php-in-2014.htmlhttp://www.developer.com/lang/php/the-state-of-php-in-2014.html
test • 3 tabele: • authors(ida, nume) 3-4 inregistrari • documents (idd, title, year) 5-6 inregistari • adocs(ida,idd) legatura doc-autori, • 2 documentecu cate 1 autor, un document are 2 autori, un alt documentare 3 autori • pagina autori • lista autorilor - nrcrt, nume, nr_documente (la care este autor/co-autor) • link pe un autor -> lista documentelor la care este autor/co-autor • pagina documente / autor • lista documentelor unui autor • lista documentelor • nr_crt, titlu, lista autori • http://css-tricks.com/app-from-scratch-1-design/Creating a Web App from Scratch – Part 1 of 8: Basic Idea and Design
Examen • Se da un fisierbdtest.sql;sa se generezebaza de date (MySQL) sisa se afiseze in browser continutuluneiselectii (2-3 tabele) • Pebazaselectieiunorinregistrari (interfata Web) sa se inserezerezultatuluneiprelucrari in baza de date • Prezentareliberasubiecteteoretice din tematicastabilita