Prstačić, Svebor
Web application frameworks as reusable components : doctoral thesis / mentor Mario Žagar - Zagreb : S. Prstačić; Faculty electrical engineering and computing, 2020. - 161 str. : graf. prikazi ; 30 cm + CD-ROM
Component-based software engineering is one of key disciplines for efficient production of high quality software. As software industry evolves and focus moves to advances in fields like AI, big data or blockchain and crypto technologies, component-based software development remains the key method for efficient development. However pervasive component-based software engineering, there still are limitations to the way certain types of software components are built and assembled. For example, three-tier Web application components that are built adhering to a specific component model, using a certain development framework are only reusable inside other instances of applications adhering to the same component model. WordPress components are usable only inside other WordPress instances, Laravel components are unusable inside applications built using CodeIgniter or Yii frameworks etc.
These limitations stem from the fact that components are tightly coupled with the underlying development framework or platform, that is responsible for providing integration interfaces to connect multiple components. These interfaces provide required data and interface to framework’s components that provide services for custom-built components to run. Through such interfaces, frameworks even provide base building blocks to build components. Many similar, but incompatible, critical building blocks are present in different development frameworks, while required component interfaces and data provided are similar. However small, differences exist and tight coupling limits reuse and portability to other components built using different component models.
Ideally, it should be possible to reuse components in whichever environment, just like an LCD display can be used in both the home monitor, car dashboard or a plane cockpit. The goal of this research is to define a technique to lessen that limitation and enable systematic component reuse outside of it’s originating component model. The focus is on three-tier Web application components that include multiple code constructs, such as: models, controllers and user interfaces.
To achieve this overall goal of research (i) a model of software framework as complex reusable Web application component is defined; (ii) a method for building Web applications using heterogeneous components based on the proposed software framework model has been proposed; and (iii) a prototype of the software development framework and evaluation of the component model applicability for popular Web applications is tested and validated.
Keywords: component architectures, component model, component reusability, framework as a component
Programsko inženjerstvo orijentirano na komponente (PIK) je jedno od ključnih područja računalstva, koje je omogućilo efikasnu proizvodnju sve većeg i kompleksnijeg, ali i kvalitetnog softvera. Industrija softvera napreduje i posljednjih je godina fokus sve više na novim područjima kao što su umjetna inteligencija, analiza podataka (engl. big data), kriptografija i tehnologija povezanih blokova (engl. blockchain), a programsko inženjerstvo orijentirano na komponente ostaje osnovni način razvoja softvera u tim područjima.
Usprkos tome, PIK donosi i ograničenje u načinu na koji je moguće graditi komponente i u načinu na koji je komponente moguće sastaviti u kompozitne komponente. Na primjer, komponente troslojne (engl. three-tier) arhitekutre za web aplikacije su uvijek građene za neki komponentni model, korištenjem nekog razvojnog okvira (engl. framework) koji određuje platfomu i tehnologiju. Komponente za sustav WordPress su iskoristive samo unutar instanci sustava WordPress, komponente za razvojni okvir Laravel samo u aplikacijama građenim pomoću razvojnog okvira Laravel. Iz perspektive razvojnih okvira CodeIgniter ili Yii, Laravel i WordPress komponente su nefunkcionalni fragmenti programskog koda.
Ova ograničenja proizlaze iz činjenice da su komponente uvijek čvrsto povezane s razvojnim okvirom pomoću kojeg su nastale, a isto tako i s platformom i tehnologijom koje su korištene za razvoj razvojnog okvira. Ta veza je ostvarena kroz sučelja komponenti pomoću kojih komuniciraj s razvojnim okvirom, osnovnim i sistemskim komponentama, te na taj način dobivaju podatke i upravljačke signale koji su portebni za njihovo izvršavanje. Mnogo je sličnih i nekompatibilnih sučelja i podataka u različitim razvojnim okvirima, koji služe sličnoj namjeni, ali istovremeno čine da komponente ne mogu prelaziti iz razvojnog okvira u razvojni okvir, iz okruženja koje je definirano jednom komponentnim modelom u neko definirano drugim.
U idealnom slučaju bi trebalo biti moguće ponovno koristiti softverske komponente baš kao što je to moguće u drugim inženjerskim područjima, kroz standardizaciju sučelja. LCD zaslon tako može biti iskorišten u automobilu, monitoru u uredu ili avionu. Cilj istraživanja čiji je rezultat ova disertacija je definirati način na koji je moguće ublažiti negativne utjecaje postojanja različitih komponentnih modela kroz mehanizam za sistematsko ponovno korištenje komponenti i izvan njihovog komponentnog modela i razvojnog okvira. Fokus je na troslojnim komponentama za web aplikacije koje sadrže više programskih konstrukcija ili podkomponenti na sva tri sloja.
Za postizanje ciljeva istraživanja napravljen je (i) model programskog okvira kao ponovno iskoristive kompleksne komponente aplikacije weba je definiran; (ii) definirana je metoda izgradnje aplikacija Weba korištenjem heterogenih komponenti temeljena na predloženom modelu programskog okvira; i (iii) napravljen je prototip programskog okvira i izvršena evaluacija primjenjivosti komponentnog modela na primjerima popularnih aplikacija weba.
Ključni pojmovi: arhitekture komponenti, komponentni model, ponovna iskoristivost komponenti, razvojni okvir kao komponenta
Web application frameworks as reusable components : doctoral thesis / mentor Mario Žagar - Zagreb : S. Prstačić; Faculty electrical engineering and computing, 2020. - 161 str. : graf. prikazi ; 30 cm + CD-ROM
Component-based software engineering is one of key disciplines for efficient production of high quality software. As software industry evolves and focus moves to advances in fields like AI, big data or blockchain and crypto technologies, component-based software development remains the key method for efficient development. However pervasive component-based software engineering, there still are limitations to the way certain types of software components are built and assembled. For example, three-tier Web application components that are built adhering to a specific component model, using a certain development framework are only reusable inside other instances of applications adhering to the same component model. WordPress components are usable only inside other WordPress instances, Laravel components are unusable inside applications built using CodeIgniter or Yii frameworks etc.
These limitations stem from the fact that components are tightly coupled with the underlying development framework or platform, that is responsible for providing integration interfaces to connect multiple components. These interfaces provide required data and interface to framework’s components that provide services for custom-built components to run. Through such interfaces, frameworks even provide base building blocks to build components. Many similar, but incompatible, critical building blocks are present in different development frameworks, while required component interfaces and data provided are similar. However small, differences exist and tight coupling limits reuse and portability to other components built using different component models.
Ideally, it should be possible to reuse components in whichever environment, just like an LCD display can be used in both the home monitor, car dashboard or a plane cockpit. The goal of this research is to define a technique to lessen that limitation and enable systematic component reuse outside of it’s originating component model. The focus is on three-tier Web application components that include multiple code constructs, such as: models, controllers and user interfaces.
To achieve this overall goal of research (i) a model of software framework as complex reusable Web application component is defined; (ii) a method for building Web applications using heterogeneous components based on the proposed software framework model has been proposed; and (iii) a prototype of the software development framework and evaluation of the component model applicability for popular Web applications is tested and validated.
Keywords: component architectures, component model, component reusability, framework as a component
Programsko inženjerstvo orijentirano na komponente (PIK) je jedno od ključnih područja računalstva, koje je omogućilo efikasnu proizvodnju sve većeg i kompleksnijeg, ali i kvalitetnog softvera. Industrija softvera napreduje i posljednjih je godina fokus sve više na novim područjima kao što su umjetna inteligencija, analiza podataka (engl. big data), kriptografija i tehnologija povezanih blokova (engl. blockchain), a programsko inženjerstvo orijentirano na komponente ostaje osnovni način razvoja softvera u tim područjima.
Usprkos tome, PIK donosi i ograničenje u načinu na koji je moguće graditi komponente i u načinu na koji je komponente moguće sastaviti u kompozitne komponente. Na primjer, komponente troslojne (engl. three-tier) arhitekutre za web aplikacije su uvijek građene za neki komponentni model, korištenjem nekog razvojnog okvira (engl. framework) koji određuje platfomu i tehnologiju. Komponente za sustav WordPress su iskoristive samo unutar instanci sustava WordPress, komponente za razvojni okvir Laravel samo u aplikacijama građenim pomoću razvojnog okvira Laravel. Iz perspektive razvojnih okvira CodeIgniter ili Yii, Laravel i WordPress komponente su nefunkcionalni fragmenti programskog koda.
Ova ograničenja proizlaze iz činjenice da su komponente uvijek čvrsto povezane s razvojnim okvirom pomoću kojeg su nastale, a isto tako i s platformom i tehnologijom koje su korištene za razvoj razvojnog okvira. Ta veza je ostvarena kroz sučelja komponenti pomoću kojih komuniciraj s razvojnim okvirom, osnovnim i sistemskim komponentama, te na taj način dobivaju podatke i upravljačke signale koji su portebni za njihovo izvršavanje. Mnogo je sličnih i nekompatibilnih sučelja i podataka u različitim razvojnim okvirima, koji služe sličnoj namjeni, ali istovremeno čine da komponente ne mogu prelaziti iz razvojnog okvira u razvojni okvir, iz okruženja koje je definirano jednom komponentnim modelom u neko definirano drugim.
U idealnom slučaju bi trebalo biti moguće ponovno koristiti softverske komponente baš kao što je to moguće u drugim inženjerskim područjima, kroz standardizaciju sučelja. LCD zaslon tako može biti iskorišten u automobilu, monitoru u uredu ili avionu. Cilj istraživanja čiji je rezultat ova disertacija je definirati način na koji je moguće ublažiti negativne utjecaje postojanja različitih komponentnih modela kroz mehanizam za sistematsko ponovno korištenje komponenti i izvan njihovog komponentnog modela i razvojnog okvira. Fokus je na troslojnim komponentama za web aplikacije koje sadrže više programskih konstrukcija ili podkomponenti na sva tri sloja.
Za postizanje ciljeva istraživanja napravljen je (i) model programskog okvira kao ponovno iskoristive kompleksne komponente aplikacije weba je definiran; (ii) definirana je metoda izgradnje aplikacija Weba korištenjem heterogenih komponenti temeljena na predloženom modelu programskog okvira; i (iii) napravljen je prototip programskog okvira i izvršena evaluacija primjenjivosti komponentnog modela na primjerima popularnih aplikacija weba.
Ključni pojmovi: arhitekture komponenti, komponentni model, ponovna iskoristivost komponenti, razvojni okvir kao komponenta