2012-04-09 22 views
8

Czy ktoś naprawdę ma doświadczenia z bazami danych Firebird przez Internet?doświadczenia z serwerem firebird przez Internet z wieloma klientami?

Mam typowe oprogramowanie do księgowania/ERP dla systemu Windows (zrobione z delphi), które działa z serwerem bazy danych firebird całkiem dobrze. Teraz moi użytkownicy (teraz około 300, ale powinni zwiększać) również chcą pracować "w chmurze "(połączenie z biura, laptopa, domu itp.). Dużo pracy polega na odtworzeniu wszystkiego w standardowej aplikacji internetowej (powiedzmy na przykład HTML + CSS + JS + PHP + MYSQL), więc rozważam utrzymanie klienta wygrywającego (nie dbam o inne systemy operacyjne) ale zamiast serwera żyjącego w klientach, sieci LAN przenoszą go na parę serwerów dedykowanych, z którymi się zestroję (jedna główna i jedna wtórna niepowodzenie uruchomienia).

Wyszukiwanie Natknąłem się na to FAQ , który wyjaśnia, że ​​protokół FB nie jest idealny do pracy w Internecie, ale wciąż wszyscy moi użytkownicy mają dziś co najmniej 1 Mb/s połączenie ADSL z Internetem (ja nie " t że jest powolny, jak wskazuje faq).

Ktoś to zrobił? jakie było doświadczenie? jak bezpieczne są serwery FB, aby otworzyć się na Internet? jak dobrze się skalują?

Wiem, że budowanie "middleware" z SOAP na przykład będzie bardziej normalne, ale nadal rozwiązanie, które oceniam tutaj jest o wiele szybsze i łatwiejsze (wciąż mam trochę pracy z replikacją, backupem, usługą usłyszania dźwięku , ale to znacznie mniej niż przerabianie wszystkiego dla sieci).

Dzięki! Edycja: wersja FB: 2.5.

+0

Proszę przeczytać FAQ. To pytanie wymaga niejasnych "doświadczeń" i jest prośbą o dyskusję. Nie ma odpowiedzi. SO jest dla pytań, które mają odpowiedzi. Skalowanie nie jest tu jedynym problemem. nawet główny. Główną z nich jest to, czy ufasz firebirdowi na tyle, by pozostawić go szeroko otwartemu na Internet? Ja nie. Ani żadnej innej bazy danych SQL. Być może mogę zaufać SQL + ssl, z certyfikatami. –

Odpowiedz

7

Starałem się "popchnąć" programistów Firebird Core, aby ulepszyć protokół Firebird, aby uzyskać lepszą prędkość dzięki sieci o dużym opóźnieniu (czyli Internet). Niedawno Dmitrij Jemanov opublikował kilka artykułów na swoim blogu na ten temat (dyemanov.blogspot.com). Wygląda na to, że istnieje margines optymalizacji, i naprawdę chciałbym, aby pojawiły się one w FB 2.5.3 i FB 3.0, chociaż nie ma gwarancji, że tak się stanie w tych wersjach lub w najbliższym czasie. Możesz głosować w takiej poprawie tutaj: http://tracker.firebirdsql.org/browse/CORE-2530

Bezpieczeństwo? Możesz spróbować skonfigurować VPN. Może także pomóc w zwiększeniu prędkości, ponieważ większość oprogramowania VPN (Zebedee, itp.) Może kompresować przesyłane dane, co w niektórych przypadkach przyspiesza przesyłanie danych.

Niektórzy z moich klientów używają tradycyjnego C/S Firebird przez Internet. Jest znacznie wolniejszy w porównaniu z siecią lokalną, i oczywiście, o ile wolniej zależy od szybkości łącza i opóźnień. Możesz przeprowadzić optymalizację również po stronie klienta, używając pamięci podręcznej metadanych itp., Ale nie spodziewaj się cudów z obecnym protokołem. Powiedziałbym, że przez cały dzień pracy korzystanie z usług terminalowych byłoby teraz lepszym rozwiązaniem.

+0

Podobnie jak WarmBooter, usługi terminalowe (Windows lub nawet lepszy Citrix) mogą wykonać to zadanie bardzo dobrze. –

+1

Firebird 3 ma dobre optymalizacje protokołów, a także obejmuje szyfrowanie i kompresję drutu. Zrobiłem kilka testów z Beta2 i były bardzo obiecujące! Możesz sprawdzić wyniki na http://www.firebirdnews.org/testing-the-firebird-3-protocol-enhancements/ – WarmBooter

3

Problem z protokołem FB nie dotyczy przepustowości, ale opóźnienia. Z mojego doświadczenia wynika, że ​​niektóre operacje mogą być bardzo wolne w stosunku do Internetu/VPN w porównaniu do LAN lub połączenia lokalnego. Nie badałem jeszcze więcej kwestii, ponieważ tak naprawdę nie uruchamiam aplikacji przez połączenie internetowe.

Proponuję jednak model trójwarstwowy do zastosowania. Utwórz własny serwer aplikacji, który działa na serwerze bazy danych/tej samej sieci. Pozwól klientom rozmawiać z serwerem aplikacji i uzyskaj maksymalną wydajność.

Istnieją pewne N-tier ramy application/middleware dla Delphi: własny DataSnap

Z tych można uzyskać kompresję danych, szyfrowania wiadomości binarne (szybciej niż mydło) itp

+0

. Czy dodanie "cienkiego oprogramowania pośredniego" jest inną opcją, wszystkie są komercyjne ... czy wiesz? niektórych otwartych źródeł i bezpłatnych opcji? –

+1

Cóż, użyj własnego DataSnapa Delphi, już to masz (może zależeć od twojej wersji Delphi). Embarcadero nieustannie opracowywał DataSnap z myślą o chmurze. –

+0

MidWare jest bezpłatny do użytku niekomercyjnego. Nie jestem świadomy wolnych alternatyw open source. – Harriv

4

Odpowiedź na pytanie o skalowania Firebird uruchamia się w produkcji dużych dużych serwerów żelaza: 512G RAM 100.000 jednoczesnych użytkowników

Prowadzimy Firebird do zasilania większych systemów (dla 12 agencji rządowych i 3 banków). Ma około 100 tysięcy użytkowników końcowych multipleksowane przez 2500 (max) zbiorcze połączenia https://plus.google.com/111558763769231855886/posts/Q1ACy1yyTgP

Protokół w Firebird 2.5 jest improoved nadal istnieje wyjechał do 3,0, ale można sprawdzić co już jest zrobione

http://asfernandes.blogspot.com/2009/07/network-latency-influence-on-firebird.html

i przyszłości ulepszenia w 3,0 http://www.firebirdnews.org/?p=6953

T o ochronę połączenia Chyba najlepiej jest SSL/SSH tunel (może to być opnvpn) z opcją wysokiej kompresji http://mapopa.blogspot.com/2010/11/securing-firebird-using-ssh-tunnel.html

-2

kbmMW CodeGear Edition jest wolny, ale bez źródła. Może być używany do komercyjnych aplikacji. Pobierz go po rejestracji pod adresem: https://portal.components4developers.com

Jeśli widzisz błędy certyfikatu (nie powinieneś, ale wiem, że słyszeliśmy, że niektórzy faktycznie to robią), zaakceptuj je i zignoruj. Strona jest ważna pomimo cert.error.

kbmMW CodeGear Edition zawiera podzbiór kbmMW Professional Edition, ale obsługuje następujące Delphi bazie API:

  • Borland Database Engine
  • DBExpress
  • kbmMemTable
  • SQLite3

Obsługuje protokoły binarne, binarne ponad HTML, XML i SOAP w komunikacji z klientem s. Zawiera wszystko, czego potrzebujesz, włącznie.

  • ujednolicony sposób zdalny zwyczaj inwokacja
  • jednolity kwerendy zdalnego zbiór danych, wykonanie i zmiana danych rozwiązywania
  • jednolitej bazy danych meta przetwarzanie danych i tworzenie (tabele, pola, indeksy, generatory/sekwencery)
  • opcjonalnie automatyczna proxying żądań do innego serwera i proxy z powrotem do oryginalnego requestera
  • pełne natywne wsparcie XML DOM i SAX
  • pełna obsługa aktówki danych jako CSV lub binarna Dane
  • zaawansowane, ale proste w obsłudze kreatora do tworzenia nowych usług serwera aplikacji

Jest jednak jedno zastrzeżenie. Najnowsza wersja kbmMW CodeGear Edition obsługuje zawsze tylko najnowszą wersję Delphi. Nadal możesz pobrać starsze wersje kbmMW CodeGear pasujące do starszych wersji Delphi.

kbMMW Professional Edition i kbmMW Enterprise Edition nie mają takich ograniczeń, a obecnie obsługują D7, D2006, D2007, D2010, DXE, DXE2 wraz z odpowiednikami Embarcadero C++.

pozdrawiam Kim Madsen www.components4developers.com

+1

Nie widzę, jak to będzie odpowiedź na pytanie –

0

można zaimplementować protokół TCP/IP pakietów szyfrowanie/deszyfrowanie bezpośrednio w samym silniku Firebird. Personnaly, pobrałem kod źródłowy Firebird 2.5 i wstrzyknięto kod bezpiecznej tunelizacji bezpośrednio w jego niskiej warstwie komunikacyjnej (warstwa gniazda INET). Teraz szyfrowanie/odszyfrowywanie odbywa się bezpośrednio przez silnik firebird dla każdego pakietu TCP/IP zarówno po stronie serwera, jak i po stronie klienta (fbclient.dll). Następnie nie ma potrzeby zmiany struktury aplikacji klienckiej, z wyjątkiem dodania jednego wiersza kodu, który udostępnia klucz tajny wybrany do szyfrowania komunikacji z plikiem fbclient.dll. Ten sam tajny klucz musi zostać zadeklarowany w pliku firebird.conf instalacji serwera. Mam również zaimplementowane rozwiązanie do negocjowania proxy w pliku fbclient.dll, aby umożliwić przesyłanie pakietów TCP/IP przez dowolny serwer proxy (na przykład serwer Microsoft ISA). Dla nas ta architektura działa przez ponad rok w rzeczywistym systemie produkcyjnym.

Powiązane problemy