1
2 100% Generacji Oracle Forms w Designer 6i Tomasz Kazimierski Principle Consultant
3 Agenda Co to jest Designer 6i? Nowe cechy Designera 6i Środowisko projektowe – Praca w oparciu o repozytorium Standardy generacji / FORMS / Budowa kodu Wydajność Uruchomienie w środowisku WEB
4 Agenda Co to jest Designer 6i? Nowe cechy Designera 6i Środowisko projektowe – Praca w oparciu o repozytorium Standardy generacji / FORMS / Budowa kodu Wydajność Uruchomienie w środowisku WEB
5 Co to jest Oracle Designer? Zbiór narzędzi do modelowania i generacji Projektowanie i budowa aplikacji dla Oracle 8i Oracle Repository Zbieranie założeń Wspieranie pracy grupowej Elastyczne środowisko projektowe
6 Techniki rozwoju systemu Aplikacja Wymagania biznesowe Analiza Projekt Budowanie/ ‘wciąganie’ Browser: http:// Hollywood X Action Edit Block Filed + Customers: ProcesInformacja
7 Projektowanie oparte o model EMP_DEPT_FK EMP_EMP_FK Check Constraints Unique Keys Primary Key Synonyms Indexes Triggers Sequence Domain Mandatory Optional Datatype icons Valid values Secondaryelements ForeignKeys
8 Generacja serwera i ‘wciąganie’ Oracle ODBC Databases Sybase Microsoft SQL Server Repository ANSI SQL DDL Rdb DB2 DB2 workbench DB2 MVS 4.x DB/2 CW
9 Server API Generatory Encapsulate business rules – Business logic – Auto generation Support application architecture – Transaction support – Journaling & denormalization – Validate constraints Oracle Forms Dynamic HTML Java UI
10 Agenda Co to jest Designer 6i? Nowe cechy Designera 6i Środowisko projektowe – Praca w oparciu o repozytorium Standardy generacji / FORMS / Budowa kodu Wydajność Uruchomienie w środowisku WEB
11 Nowe cechy Designera 6i Cel: Praktyczne wspieranie dużych przedsięwzięć informatycznych Najważniejsze zmiany: – Repozytorium: Wersjonowanie – Repozytorium: Pliki i foldery – Repozytorium: Analiza zależności – Generatory: Forms - cały kod z generatora – Generatory: Serwer - wsparcie dla 8i – Generatory: WEB PL/SQL
12 Agenda Co to jest Designer 6i? Nowe cechy Designera 6i Środowisko projektowe – Wspólna praca w oparciu o repozytorium Standardy generacji / FORMS / Budowa kodu Wydajność Uruchomienie w środowisku WEB
13 Środowisko projektowe Praca zespołu oparta o wspólne repozytorium Składowe: – Standardy generacji – Biblioteka projektu – Gotowy kod
14 Synchronizacja z systemem plików Zarządzanie plikami i katalogami
15 Wersjonowanie Obiekty Designera – Definicje tabel, modułów, kolumn Pliki – Binarne i wykonywalne *.FMB, *.FMX – Logika aplikacji, skrypty DDL, HTML – Pliki klas Javy Dane zdefiniowane przez użytkownika
16 Wersjonowanie Wersjonowanie pozwala na: Utworzenie obiektu… – Jest w repozytorium ale nie ma wersji – Inni użytkownicy nie mogą go zobaczyć Wykonanie rejestracji obiektu (check in)… – Powstaje pierwsza wersja Tworzenie nowe wersji zachowuje wersję poprzednią
17 Pierwszy checkin: –tworzy wersję 1.0 –blokuje modyfikacje 1.0 Wersjonowanie Check in / Check out Tworzenie obiektu – istnieje bez wersji – modyfikacje są ‘jednowymiarowe’
18 1.0 Kolejne check in: –tworzą kolejne wersje –publikują zmiany dla innych użytkowników –odkładają wersje poprzednie 1.1 1.0 Werjsonowanie Check in / Check out Check out: – pozwala modyfikować obiekt – tworzy jego prywatną kopię – pozwala na różne strategie blokad
19 Wersjonowanie Check in / Check out Checkout dotyczy samego obiektu i jego obiektów składowych Checkout tabeli pociąga za sobą: – kolumny – klucze – więzy – indeksy – wyzwalacze – użycia kolumn przez wyzwalacze
20 Wersjonowanie Nadawanie etykiet Etykieta wersji nadawana przez system – MAIN: 1.0, 1.1, 1.2 – Gałęzie: 1.1.2.0, 1.1.2.1, 1.1.3.0 Zdefiniowana przez użytkownika – Simon – Gałąź: numer wersji – MAIN;1, MAIN;n, MAIN;LATEST – HR Beta;1, HR Beta;n, HR Beta;Latest
21 Wersjonowanie Pliki i foldery Checkin powoduje pobranie pliku z systemu plików Checkout powoduje składowanie pliku do systemu plików
22 Wersjonowanie Historia wersji i zdarzenie Version History Viewer (VHV) pokazuje kolejne wersje obiektu Zaprojektowany do pokazywania historii i stanu: – korzeń, liść, główne węzły – checkouty – bieżąca wersja
23 Wersjonowanie Historia wersji i zdarzenia Version Event Viewer (VEV) pokazuje zdarzenia zmieniające stan obiektu w jego historii Ma odpowiadać na pytania: – Jak wiele razy checkoutowano obiekt od wtorku? – Jak długo plik był zablokowany? – Kto najczęściej zmieniał ten obiekt? – Kto teraz ma checkout na tym obiekcie?
24 Wersjonowanie Historia wersji i zdarzenia
25 Porównanie z poprzednim Porównanie z zaznaczonym Porównywanie wersji Porównywanie dwóch równorzędnych wersji jednego obiektu
26 Zarządzanie konfiguracjami Workarea Organizacja Konfiguracje Reguły Gałęzie Porównania i łączenie
27 Repository Work Area Workarea Metoda dostępu do wersjonowanych obiektów Definiuje widok perspektywy – Wyznacza kontekst pracy – Tylko jedna wersja obiektu – Proste dla użytkowników i narzędzi – Reguły filtrują obiekty
28 Workarea Folder AppSys Folder Organizacja Zawartość Workarea jest podzielona na ‘kontenery’: – Folder Obiekty systemu plików (pliki, katalogi) – System Aplikacji Obiekty Oracle Designera (encje, definicje tabel, moduły, itd.) Kontenery mogą zawierać inne kontenery
29 Konfiguracje Konfiguracja składa się z ustalonych wersji poszczególnych obiektów – Stanowi warstwę obiektów repozytorium – Tylko jedna wersja każdego obiektu
30 Konfiguracje Release 1.0 Release 1.1 Release 2.0 Configurations
31 Reguły Stosowane do: – określania konfiguracji – wypełniania workarea Decyduje która wersja obiektu jest widoczna (włączana) Przykłady: – LATEST(MAIN) – LATEST( ) – INCLUDE_FOLDER( ) – EXCLUDE_FOLDER( ) – INCLUDE_CONFIG ( )
32 Gałęzie Możliwość pracy równoległej Izolowanie zmian Ustalenie gałęzi dla checkin: – globalnie dla całej workarea – przy każdym checkin
33 Gałęzie Bieżąca wersja 1.1 w MAIN
34 Gałęzie Checkout 1.1
35 Gałęzie Checkin w gałąź ‘d1’
36 Łączenie Porównanie wersji i zaznaczenie konfliktów i różnic Obiekt docelowy musi być po checkoucie
37 Konflikt Różnica Łączenie Wyszukanie różnic i konfliktów
38 Target is checked in creating a new version Łączenie Checkin nowej wersji
39 Form Java File Form Views Modules Table Procedure Table Template Java File DDL File C File Zarządzanie zależnościami Problem
40 Zależności w repozytorium Co to są zależności? – Obiekt odwołuje się do innych obiektów Dlaczego są potrzebne informacje o zależnościach? – Odpowiedzi na pytania: Pokaż wszystko co używa tego obiektu Pokaż wszystkie obiektu używane przez ten obiekt – Zarządzanie wydaniami oprogramowania
41 Oracle Repository Filesystem DependencyManager Parsermappings Parsers XML Import Analiza zależności
42 Parsery dla narzędzi Oracle Forms Reports Menu Biblioteki obiektowe Biblioteki PL/SQL
43 Śledzenie zależności Użyte tabele, perspektywy, kolumny, sekwencje Dołączone biblioteki Dziedziczenia z bibliotek obiektowych i innych modułów Użyte pliki ikon, Javabeans Wywoływane procedury i funkcje PLSQL Użycia menu
44 Inne parsery Parser Javy i SQLJ – Bada zależności klas, metod i pól C/Pro*C – Używa preprocesora C – Bada zależności funkcji, typów publicznych SQL and PL/SQL – Bada zależności tabel, kolumn, sekwencji, procedur
45 Środowisko projektowe Repozytorium Standardy generacji i kodowania Biblioteka projektowa Procedury działania
46 Agenda Co to jest Designer 6i? Nowe cechy Designera 6i Środowisko projektowe – Praca w oparciu o repozytorium Standardy generacji / FORMS / Budowa kodu Wydajność Uruchomienie w środowisku WEB
47 Standardy generacji Zdefiniowanie i implementacja podstawowej funkcjonalności Szablon generacji (mogą się różnić dla różnych typów obiektów) Biblioteki obiektowa zawierającej standardowe typy obiektów oraz wspólny kod Współdzielone komponenty w repozytorium Preferencje i współdzielone zbiory preferencji składowane w repozytorium
48 Użycie bibliotek obiektowych jako metoda standaryzacji
49 Logika użytkownika w repozytorium Możliwość umieszczania kodu w repozytorium Wiązanie kodu z akcjami Nadpisywanie akcji
50 Agenda Co to jest Designer 6i? Nowe cechy Designera 6i Środowisko projektowe – Praca w oparciu o repozytorium Standardy generacji / FORMS / Budowa kodu Wydajność Uruchomienie w środowisku WEB
51 Kod standardowy i kod aplikacji SYSTEM.pll APP01.pll Kod z OLB Kod standardowy składowany w bazie APP01.pll Kod klienta Kod aplikacji w bazie
52 Agenda Co to jest Designer 6i? Nowe cechy Designera 6i Środowisko projektowe – Praca w oparciu o repozytorium Standardy generacji / FORMS / Budowa kodu Wydajność Uruchomienie w środowisku WEB
53 Przeglądarka WEB Logika aplikacji Logika aplikacji Forms Server Data Manager i motor PL/SQL Plik wykonywalny Warstwa GUI SQL*Net Baza danych Ładowanie przyrostowo Oracle Developer Server Warstwa GUI Plik FMX Aplet Jawy Oracle Developer Server - Architektura Forms Server Warstwa GUI
54 Forms Server optymalizuje sieć –Meta-data –Kompresja komunikatów –Bufor komunikatów klienta Klient Oracle 8i Oracle Developer Server Optymalizacja wykorzystania sieci
55 Specjalizowany aplet Javy Scenariusz #1: Ładowanie Całej Logiki Aplikaci Meta-data Aplikacja zbudowana przy pomocy Oracle Developer Server Scenariusz #2: Ładowanie Meta-data dla aplikacji Oracle 8i Serwer Aplikacji Oracle 8i DeveloperServer
56 Grupowanie zdarzeń Efektywne rysowanie interfejsu użytkownika Możliwe zdarzenia Post-Change Post-Item When-Validate-Item Pre-Item When-New-Item-Instance Kompresja komunikatów
57 Bufor komunikatów klienta DeveloperServer Klient Javy Przesyłanie różnic Buforowanie łańcuchów znaków Właściwości obiektu umieszczone buforze Bufor komunikatów serwera Przesyłane tylko zmienione właściwości Bufor komunikatów klienta Pełen zestaw właściwości
58 Generowanie wydajnego kodu Użycie JAR albo CAB Użycie podobnych obiektów Minimalizacja użycia tekstów i obiektów typu boilerplate Minimalizacja liczby wyzwalaczy Użycie Javabeans do obsługi akcji po stronie klienta, Użycie wielu małych modułów zamiast jednego dużego.
59 Agenda Co to jest Designer 6i? Nowe cechy Designera 6i Środowisko projektowe – Praca w oparciu o repozytorium Standardy generacji / FORMS / Budowa kodu Wydajność Uruchomienie w środowisku WEB
60 Uruchomienie w środowisku WEB Migracja do WEB Migracja do UNIX
61 Migracja do WEB Ograniczenia – Nie ma OLE – Nie ma wyzwalaczy czasowy Nowe możliwości – Javabeans – OLAF
62 Migracja do UNIX Problemy podczas konwersji – Rozróżnianiu wielkości liter w nazwach plików – Użyciu standardów GIF do wyświetlania liter – Znaki narodowe
63 Migracja do UNIX Kroki konwersji – Emulator X-Windows – Czcionki w standardzie ISO-8859-2. – Nazwy modułów w repozytorium – Przenoszenie bibliotek i modułów – Generacja aplikacji (f60genm)
64