210 likes | 445 Views
Framework do szybkiego projektowania aplikacji webowych typu "data-intensive" oparty na środowisku systemu ODRA. Tomasz Marek Kowalski Kierownik: dr inż. Radosław Adamus dr inż. Jacek Wiślicki mgr inż. Kamil Kuliberda. Plan . Wprowadzenie Problematyka Zarys projektu Podsumowanie.
E N D
Framework do szybkiego projektowania aplikacji webowych typu "data-intensive" oparty na środowisku systemu ODRA Tomasz Marek Kowalski Kierownik: dr inż. Radosław Adamus dr inż. Jacek Wiślicki mgr inż. Kamil Kuliberda
Plan • Wprowadzenie • Problematyka • Zarys projektu • Podsumowanie
Motywacja • interfejsy webowe są najpopularniejszą metodą dostępu do danych zdalnych • Wyzwania programistów aplikacji biznesowych: • krótkie terminami realizacji projektów wymaganymi przez klientów • dostępem do danych składowanych w systemach absolutnie niedopasowanych do współczesnych języków programowania.
Zadania Frameworków • izolacja programistów od jak największej liczby aspektów związanych z budową i funkcjonowaniem aplikacji, • oferowanie licznych udogodnień i uproszczeń • próba usunięcia niezgodności impedancji (pozornie)
Przykładowe Frameworki • Ruby on Rails • Grails (Java) • Django (Python)
Cel projektu • Usunąć problem niezgodności impedancji • obiektowa baza danych (ODRA), • język zapytań językiem programowania, • jednolita architektura przetwarzania danych trwałych i ulotnych. • Połączyć zalety Frameworków, m.in.: • umożliwienie automatycznej generacji maksymalnie dużych elementów aplikacji, • mechanizmy łatwego rozszerzania funkcjonalności Frameworka, • przezroczyste wykorzystanie niejednorodnych i rozproszonych źródeł danych.
Niezgodność Impedancji problemy (1) • statyczna kontrola programów, • wyrażanie bardziej zaawansowanych semantycznie elementów obiektowości, • stosowanie automatycznej optymalizacji po stronie bazy danych, • wzrost poziomu skomplikowania aplikacji na poziomach: • projektowym, • implementacyjnym, • testowym.
Niezgodność Impedancji problemy (2) • dualność schematów (metadanych), • zarządzanie schematem aplikacji, • unikatowa identyfikacja obiektów i rekordów (szczególnie w kontekście współbieżności • niedopasowanie języków zapytań do języków programowania (zmagają się tym programiści tworzący frameworki)
Systemy biznesowe • często działają w Internecie (warstwa interfejsu - webowego), • logika aplikacji na serwerze lub rozproszona, • systemy zarówno niewielkie jak i ogromne (także wymagania niefunkcjonalne).
Systemy biznesowe a presja rynku • szybkość dostarczenia • uproszczenia systemu • słaba architektura • opieranie się o inżynierię komponentową • uproszczenia w mapowaniu O/R • łatwość pielęgnacji • pozwala na minimalizacje kosztów i czasu konserwacji (długoterminowych systemów) • sprzeczne do szybkości dostarczenia
Prototyp ODRA • udostępnia szeroką zintegrowaną funkcjonalność, • silnie powiązane komponenty: • SZOBD, • kompilator i interpreter SBQL (wraz z językiem programowania), • mechanizm komunikacji rozproszonej, • osłony i filtry umożliwiające wydajną integracje oraz import heterogenicznych danych
Zarys Frameworku • RAD typu data-intensive • praca bezpośrednio na obiektach(brak warstw pośredniczących) • narzędzie utylitarne • proste „osobiste” strony internetowe, • złożone portale, sklepy internetowe, • skomplikowane systemy transakcyjne. • zarządzanie prezentacją danych (również trwałych) i interakcją z użytkownikiem
Bezpośrednie cele do opracowania • nowe komponenty systemu generujące aplikacje webowe na podstawie struktury danych • struktura aplikacji przechowywanej w ODRA reprezentującej aplikacje webową (zestaw „standardowych” obiektów) • mechanizmy automatycznej generacji aktualizowalnych obiektowych perspektyw kontrolujących dostęp do danych (były próby z wrapperem)
Cele dodatkowe • Rozwój platformy ODRA: • architektura, • dodatkowe komponenty generujące aplikacje (zwiększenie potencjalnej użyteczności w kontekście RAD na potrzeby biznesu) • Zbadanie możliwości SBA i SBQL jako wydajnego narzędzia programowania warstwy interfejsu webowego (spójny model programistycznych aplikacji)
Plan prac • rozpoznanie stanu wiedzy • dostosowanie implementacji ODRA • refaktoryzacja architektury, • wyodrębnienie elementów systemu wymagających zmian, • usunięcie niespójności, zagrożeń stabilności, • testy i analiza statyczna, • osłabienie kontroli typologicznej, itd. • portal www
Metodyka • agile software development • odpowiednia dla małego zgranego zespołu, • adaptacyjność (krótkie iteracje). • continous integration (AnthillPro) • zautomatyzowane testy • publikowanie bieżących wersji na www
Podsumowanie • Usunąć problem niezgodności impedancji • Połączyć zalety Frameworków • Szybkość dostarczania • Łatwość pielęgnacji • Rozwój ODRY • itd..