Building applications with a db-back-end Content: DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 1 / 16
Building applications with a db-back-end Content: ◮ Program architecture DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 1 / 16
Building applications with a db-back-end Content: ◮ Program architecture ◮ Back-end DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 1 / 16
Building applications with a db-back-end Content: ◮ Program architecture ◮ Back-end ◮ Front-end DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 1 / 16
Building applications with a db-back-end Content: ◮ Program architecture ◮ Back-end ◮ Front-end ◮ Middle-tier (where things happen) DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 1 / 16
Building applications with a db-back-end Content: ◮ Program architecture ◮ Back-end ◮ Front-end ◮ Middle-tier (where things happen) ◮ (Very little on) distributed systems. • DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 1 / 16
What will we do on the lab assignments Content. . . : DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 2 / 16
What will we do on the lab assignments Content. . . : ◮ Build back-ends in more than one way DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 2 / 16
What will we do on the lab assignments Content. . . : ◮ Build back-ends in more than one way ◮ With pluggable front-ends (in more than one way) DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 2 / 16
What will we do on the lab assignments Content. . . : ◮ Build back-ends in more than one way ◮ With pluggable front-ends (in more than one way) ◮ Build an application (logic layer/middle-tier) DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 2 / 16
What will we do on the lab assignments Content. . . : ◮ Build back-ends in more than one way ◮ With pluggable front-ends (in more than one way) ◮ Build an application (logic layer/middle-tier) ◮ With authentication • DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 2 / 16
Application architecture In the past application programs were centered around the database and it was accepted that everything except database management was lousy. DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 3 / 16
Application architecture In the past application programs were centered around the database and it was accepted that everything except database management was lousy. Interaction was a catastrophy and error management a nightmare. DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 3 / 16
Application architecture In the past application programs were centered around the database and it was accepted that everything except database management was lousy. Interaction was a catastrophy and error management a nightmare. 4GL (as they were called) still exist and have their place in rapid prototyping but have to a large extent been replaced by EGL (Enterprise Generation Languages) that can deliver almost full-fledged application programs, but mostly need some final tweaking. • DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 3 / 16
Application architecture . . . Monolithic programs are often called 1-tier as there is no separation of concern at all. Smalltalk (1979) changed the situation with the introduction of their division of programs in a model containing a data structure and the operations on data in that data structure, a controller that managed all user stimuli and a view component managing all visualization, called Model-View-Controller (MVC). User View Controller Model Application program • DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 4 / 16
Application architecture . . . There are variations to the concept User User View Controller View Controller Model Model Application program Application program • DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 5 / 16
Application architecture . . . There was some criticism (it was difficult to spearate view and controller) and other models popped up, e.g. PAC* (Presentation-Abstraction-Control), that focused on the MVC shortcomings and on making the same separation of concerns on all levels of the program. DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 6 / 16
Application architecture . . . There was some criticism (it was difficult to spearate view and controller) and other models popped up, e.g. PAC* (Presentation-Abstraction-Control), that focused on the MVC shortcomings and on making the same separation of concerns on all levels of the program. For a while there were many different systems but today only MVC and PAC* have survived. Many of them were agent-based: MVC, PAC*, ALV, LIM and York. They implemented modules that worked as “free agents” responding to stimuli from other “agents”. • DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 6 / 16
Application architecture . . . P A Presentation Abstraction C P A P A C C Controller P A P A C C • DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 7 / 16
Application architecture . . . The difference between MVC and PAC* is small. In MVC the view is responsible for output to the GUI and the controller takes care of user stimuli (from the GUI) while in PAC* all interaction is managed by the presentation module. DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 8 / 16
Application architecture . . . The difference between MVC and PAC* is small. In MVC the view is responsible for output to the GUI and the controller takes care of user stimuli (from the GUI) while in PAC* all interaction is managed by the presentation module. MVC arrived with Smalltalk in 1979 and never changed since 1980 (during interaction “childhood”) and PAC* appeared 1987 and got its final design 1997. DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 8 / 16
Application architecture . . . The difference between MVC and PAC* is small. In MVC the view is responsible for output to the GUI and the controller takes care of user stimuli (from the GUI) while in PAC* all interaction is managed by the presentation module. MVC arrived with Smalltalk in 1979 and never changed since 1980 (during interaction “childhood”) and PAC* appeared 1987 and got its final design 1997. MVC is designed by a few people during the early days of interaction design while PAC* is the result of many researchers work during a lot of years. Still they are strikingly alike – honor to the Smalltalk team that pioneered the work (and later built the first MacOS . . . ) • DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 8 / 16
Application architecture . . . User User V C P C M A • DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 9 / 16
Application architecture . . . About 1985 applications programs started to appear that had a distinct internal organization: Presentation layer Business logic layer Persistence layer DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 10 / 16
Application architecture . . . About 1985 applications programs started to appear that had a distinct internal organization: Presentation layer Business logic layer Persistence layer where the persistence layer manages data storage and reading from stored data, the business logic layer does the actual processing and the presentation layer manages presentation and the reception of user stinuli. • DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 10 / 16
Application architecture . . . But . . . there were short-cuts to get better performance. I even have a book on how to avoid the logic layer when presenting information. The image is from the book: GUI Motif Toolkit X Toolkit Intrinsics XLib • DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 11 / 16
Application architecture . . . Computer are better, faster and have much more primary memory today. Short-cuts are exploitation possibilities for people with insidious objectives. DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 12 / 16
Application architecture . . . Computer are better, faster and have much more primary memory today. Short-cuts are exploitation possibilities for people with insidious objectives. Security is often more important than performance and performance is mostly better than just good enough, maybe with an exception for graphics in certain games. • DD2471 (Lecture 09) Modern database systems & their applications Spring 2011 12 / 16
Recommend
More recommend