Serwery Statefull i Stateless



Podobne dokumenty
1. Wybierz File New Application. Pojawi się nowa aplikacja w Delphi.

Przesyłanie Pakietów Danych i TCP/IP

Hello World w MIDAS. 1) Wybierz File New Application. Główna forma naszej aplikacji i projektu zostanie stworzona.

Podstawy MIDAS. Właściwość PacketRecords

16) Wprowadzenie do raportowania Rave

BACKUP BAZ DANYCH FIREBIRD

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Opracował: Tomasz Neumann Technologia dbexpress w środowisku DELPHI

Zaawansowane aplikacje internetowe - laboratorium

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Uruchamianie bazy PostgreSQL

Aplikacje WWW - laboratorium

Laboratorium - Poznawanie FTP

Pamiętałeś o kopiowaniu i zapisywaniu swojego programu do kolejnych folderów? Jeżeli tak, to:

KROK 17 i 18. Cel: Tworzymy oddzielne okno - O autorze. 1. Otwórz swój program. 2. Skompiluj i sprawdź, czy działa prawidłowo.

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Zaawansowane aplikacje internetowe

Enterprise JavaBeans (EJB)

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

Laboratorium 8 ( Android -pierwsza aplikacja)

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

MAMP: Można to pobrać i zainstalować z XAMPP: Można go pobrać i zainstalować z

Aplikacje internetowe i rozproszone - laboratorium

Instrukcja konfiguracji programu Fakt z modułem lanfakt

CitiDirect Online Banking

INSTRUKCJA OTWARCIA RACHUNKU ALIOR TRADER DLA KLIENTÓW ALIOR BANKU

Program dla praktyki lekarskiej

Procedura wygenerowania paczki instalacyjnej oprogramowania F-Secure

Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe

Podręcznik użytkownika

Instalacja NOD32 Remote Administrator

Połączenie VPN Host-LAN PPTP z wykorzystaniem motp. 1. Aplikacje motp 1.1. DroidOTP 1.2. Mobile-OTP. 2. Konfiguracja serwera VPN

Wprowadzenie do Doctrine ORM

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

CitiDirect Ewolucja Bankowości

Laboratorium 15: Bazy Danych Tworzenie bazy danych i programowanie elementów nawigacyjnych aplikacji stworzonej przy pomocy technologii dbexpress

Tworzenie własnych komponentów

Poradnik korzystania z usługi FTP

CitiDirect Ewolucja Bankowości

Komunikatory typu TCP/IP lab2. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)

Minimalna wspierana wersja systemu Android to zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4.

Instrukcja obsługi serwera FTP v

Informatyka II. Laboratorium Aplikacja okienkowa

BACKUP BAZ DANYCH MS SQL

11. Rozwiązywanie problemów

oprogramowania F-Secure

5.2. Pierwsze kroki z bazami danych

Fiery Remote Scan. Łączenie z serwerami Fiery servers. Łączenie z serwerem Fiery server przy pierwszym użyciu

Opcje Fiery1.3 pomoc (serwer)

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Laboratorium 7 Blog: dodawanie i edycja wpisów

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS

Zarządzanie licencjami dla opcji Fiery na komputerze klienta

Czym jest MIT App Inventor. App Inventor jest to zbiór bloków jako język programowania używany do tworzenia mobilnych aplikacji na androida.

Opcje Fiery1.3 pomoc (klient)

Zastosowanie komponentów EJB typu Session

Instrukcja konfiguracji programu Fakt z modułem lanfakt

Połączenie VPN Host-LAN SSL z wykorzystaniem motp. 1. Aplikacje motp 1.1. DroidOTP 1.2. Mobile-OTP. 2. Konfiguracja serwera VPN

INSTRUKCJA KONFIGURACJI KLIENTA POCZTOWEGO

Pomoc do programu ISO Manager

Palety by CTI. Instrukcja

Tutaj znajdziesz Odpowiedź na: Najczęściej Spotykane Problemy Najczęściej zadawane Pytania

INSTRUKCJA OTWARCIA RACHUNKU ALIOR TRADER PRZEZ INTERNET

Instalacja wypychana ESET Endpoint Encryption

Planowanie spotkania. Planowanie spotkania.

PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl

Konfigurowanie konta pocztowego w programie Netscape (wersja 7.2)

T: Zabezpieczenie dostępu do komputera.

Skopiuj plik do katalogu macierzystego serwera Apache (C:/xampp/htdocs). Uruchom przeglądarkę i wpisz w polu adresowym następujący ciąg:

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Odczyty 2.0 Spis treści

Aplikacje RMI Lab4

Baza danych sql. 1. Wprowadzenie

ANDROID CMS dla urządzeń z systemem Android instrukcja użytkownika

Uwaga!!! Autentykacja LDAP/AD zaimplementowana w Vigor wspiera tylko proste uwierzytelnianie (hasło przesyłane jest jawnym tekstem).

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1

Programowanie Wizualno Obiektowe - zajęcia 2 (PWO_BCPP_2_2) Tworzenie i kompilowanie projektów Programowanie Wizualno Obiektowe Zajęcia 2, część 2

SHOPER INTEGRATOR BY CTI INSTRUKCJA

DHL CAS ORACLE Wymagania oraz instalacja

Programowanie komponentowe 5

INSTALACJA W PROGRAMACH MAGAZYNOWYCH KROK PO KROKU FAREX FLEX

Program powinien otworzyć się z pierwszym formularzem. Jeśli nie, otwórz pierwszy formularz, wybierając go z listy - Shift+F12.

SHOPER INTEGRATOR XL BY CTI INSTRUKCJA

Połączenie Host-LAN ISDN

e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ

Spis treści REJESTRACJA NOWEGO KONTA UŻYTKOWNIKA PANEL ZMIANY HASŁA PANEL EDYCJI DANYCH UŻYTKOWNIKA EXTRANET.NET...

Instrukcja użytkownika. Aplikacja Smart Paczka DPD

Połączenie VPN Host-LAN SSL z wykorzystaniem przeglądarki. 1. Konfiguracja serwera VPN 1.1. Ustawienia ogólne 1.2. Konto SSL 1.3. Grupa użytkowników

SERWER AKTUALIZACJI UpServ

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Transkrypt:

Serwery Statefull i Stateless Wszystkie serwery aplikacji są określone jako stateless podczas projektowania. Te aplikacje nie przetrzymują stałego połączenia z klientem. Wysyłają one pakiety danych na zapytanie klienta bądź przetwarzają pakiety danych delta przesłane od klienta i generują odpowiednie pakiety danych typu terror log. Klient odnosi się do referencji interfejsu serwera tylko wtedy, gdy jest to potrzebne. Po stronie serwera nie są przechowywane żadne informacje o kliencie. Kiedy klient otrzymał od serwera potrzebne informacje interfejs do serwera zostaje zwolniony, klient nie wywołuje już żadnej funkcji. Wszystkie zmiany na zbiorze danych są przechowywane w pamięci cache klienta, dlatego też klient nie musi być połączony z na stałe z bazą danych. Gdy klient potrzebuje więcej danych z serwera, łączy się z nim ponownie i wywołuje jego funkcję, np. GetDepartments. Jeśli zaistniała potrzeba by wysłać zmodyfikowane lub nowe dane bo bazy, by przechować ich stan, nowe połączenie jest nawiązywane i wywoływana jest odpowiednia metoda. W naszym przykładzie będzie to ApplyDepartmentUpdates. Obiekty serwerów typu Stateless umożliwiają wysoką skalowalność w odniesieniu do wielu równocześnie obsługiwanych użytkowników. Jeśli 1000 aplikacji klienckich używa ten sam obiekt serwera, tylko 100 z nich może przechowywać referencje do interfejsu serwera w tym samym czasie. Inne mogą się zając przetwarzaniem danych. Kiedy jeden klient skończy obsługiwać zdalną metodę, zwalnia połączenie z serwerem, jednocześnie daje innym aplikacją klienta dostęp do zasobów serwera. Serwery Statefull przechowują informacje o stanie klienta. Kiedy aplikacja klienta pobiera dane z serwera w paczkach, serwer musi pamiętać co przesłał ostatnio, by mógł przesłać poprawnie następną paczkę, gdy klient będzie ją potrzebował. W tym przypadku, gdy mamy 1000 klientów, aplikacja serwera musi zaalokować zasoby systemowe dla wszystkich 1000. Mogą się wyczerpać zasoby pamięci serwera. Za pomocą MIDAS-a można w różny sposób stworzyć komponenty serwerowi typu statefull. Wiele prezentacji pokazujących wsparcie dla MIDAS-a jest oparte na serwerach statefull, ponieważ można stworzyć dostęp do serwera danych MIDAS przez proste przeciągnięcie i upuszczenie komponentu bez pisania ani jednej linii kodu. A to robi wrażenie. Następujące kroki są niezbędne by stworzyć serwer MIDAS typu statefull. 1. Wybierz File New Application. 2. Wybierz File New Multi Tier Remote Data Module. W dialogu New Remote Data Module wpisz HR (skrót od Human Resources) w polu edycyjnym o nazwie Class Name i przyciśnij OK.

3. Wybierz File Save all i wybierz domyślne nazwy dla Unit1 (Form1), Unit2 (DataModule2) i projektu: StatefullServer. 4. Umieść komponent TTable na HR remote data module i ustaw jego własność Database na DBDEMOS, a TableName na employee.db. 5. Upuść komponent Tprovider na HR i ustaw jego własność DataSet na Table1. Zmień nazwę komponentu TProvider na Employees 6. Kliknij prawym przyciskiem na Employees i wybierz Export Employees from data module. Własność Employee: IProvider zostanie dodana do interfejsu IHR w bibliotece typów serwera. Delphi stworzył również implementacje metody Get_Employees w unicie Unit2 (HR). 7. To już koniec tworzenia serwera. Uruchom aplikacje jeszcze raz by zarejestrować nowy komponent COM: StatefullServer.HR. Stworzenie aplikacji klienta nie jest trudne. 1. Wybierz File New Application. 2. Wybierz File New Data Module. Zapisz wszystkie pliki z domyślnymi nazwami.

3. Umieść połączenie TDCOMConnection z zakładki MIDAS palety komponentów na DataModule2. 4. Kliknij podwójnie na liście rozwijanej po prawej stronie właściwości ServerName w inspektorze obiektów i wybierz nazwę obiektu serwera, tak jak na poniższym obrazku. 5. Ustaw własciwość DCOMConnection1.Connected na True. Biblioteka run-time DCOM wczyta aplikacje serwera, ponieważ komponent DCOMConnection1 będzie próbował nawiązać stałe połączenie z komponentem serwera. 6. Upuść komponent TclientDataSet na DataModule, ustaw jego właściwość RemoteServer na DCOMConnection1i wybierz nazwę prowidera poprzez właściwość ProviderName. Mamy do wybory tylko jedną dostępną opcje: Employees. DCOMConnection1 pobiera z HR listę wszystkich właściwości typu IProvider i wyświetla je dla nas. IProvider jest interfejsem COM, stworzonym specjalnie dla komponentu TProvider MIDAS-a by umożliwić zdalną jego modyfikację.

Wywołanie metody z tego interfejsu można połączyć z korzystaniem z komponentu TProvider, który może istnieć w aplikacji serwera. Gdy zajrzymy do pomocy Delphi, możemy stwierdzić, że wszystkie metody interfejsu Iprovider mają podobne nazwy do metod komponentu TProvider. Komponent TClientDataSet wie jak użyć interfejsu IProvider, gdy ma do niego referencje. Po prostu tworzymy tą referencje. Zbiór danych klienta pobierze dane z zdalnego Sewera gdy ustawimy jego właściwość Active na True. Można też określić przepustowość używając właściwości PacketRecords. 7. Umieść komponent TDataSource na DataModule2 i ustaw jego własność DataSet na ClientDataSet1 8. Upuść TDBGrid na Form1 i wpisz DataModule2.DataSource1 w własności DataSource 9. Ustaw właściwość ClientDataSet1.Active na True, wtedy zobaczysz dane z serwera podczas tworzenia aplikacji.

Ogólnie rzecz biorąc aplikacje serwera typu statefull nie są stosowane w przypadku, gdy przewidujemy dużą liczbę użytkowników. Jeśli to nie stoi na przeszkodzie można zrobić dobre rozwiązanie wielowątkowe, które stworzymy w krótkim czasie, używające wsparcia serwera statefull.