„ARCHITEKTURA BROKERÓW WSPÓLNYCH OBIEKTÓW” – CORBA

CORBA szeroko wykorzystuje koncepcję programowania projektowania obiektowego, w szczególności definiuje obiekty w kategoriach czterech „interfejsów” z innymi obiektami i infrastrukturą, jak opisano w naszym przykładzie poborcy podatkowego. Interfejsy te są określone w specjalnie zaprojektowanym języku definicji interfejsu (IDL). IDL nie ma być językiem, w którym napisane są wszystkie programy do przetwarzania rozproszonego; zamiast tego jest skonstruowany tak, że komponenty IDL mogą być mapowane na inne języki przy użyciu zautomatyzowanych procedur. Oznacza to, że programiści mogą pisać aplikacje w wybranych przez siebie językach i, z pomocą podręczników i narzędzi IDL, importować do swoich programów niezbędne „funkcje” interfejsu (sekcje kodu, które wykonują określone procedury – „drukuj”, „czytaj”, „pisać” itp.) z IDL, bez konieczności poznawania zawiłości IDL. Ponieważ funkcje w dowolnym języku zawsze są konwertowane na dokładnie ten sam zestaw instrukcji IDL, programiści mogą mieć pewność, że program będzie działał w systemie zgodnym z CORBA, niezależnie od języka źródłowego.

OBIEKTY I KOMPONENTY

Obiektowe podejście do projektowania i kodowania oprogramowania nie zostało pierwotnie opracowane dla przetwarzania rozproszonego, ale okazuje się, że ma pewne zalety w tym kierunku. Projektowanie zorientowane obiektowo zaczyna się od zdefiniowania elementów, którymi chcemy manipulować, ich właściwości i sposobu, w jaki się ze sobą komunikują, w kategoriach wysokiego poziomu, a nie struktur danych i sposobu, w jaki komputery radzą sobie z danymi. „rzeczą” może być klient, konto itp.; oczywiste właściwości to nazwiska, adresy. Poszczególne rzeczy mogą należeć do wspólnej grupy, „klasy” i mieć wspólne właściwości, np. kobiety i mężczyźni należą do klasy ludzi i dzielą jedną z jej właściwości – wiek. Jest to jeden z powodów, dla których projektowanie zorientowane obiektowo jest istotne dla przetwarzania rozproszonego: pozwala nam zachować podstawowe koncepcje w oderwaniu od zdarzeń incydentalnych i przejściowych. Klienci są klientami i zachowują swoje szczególne właściwości bez względu na to, czy ich zakupy są odczytywane przez terminal kasowy w sklepie, czy też dokonywane za pomocą domowego komputera. Z drugiej strony „rabat branżowy” jest własnością środka zakupu, a nie konkretnego klienta, który go kupuje. W środowisku rozproszonym często chcemy ukryć położenie geograficzne usługi, ponieważ nie jest to istotne dla wymagań, a geografia rozprasza. Ta technika abstrakcji, w której podstawowe właściwości procesów są izolowane od sedna sprawy, ma wyraźną wartość w koncepcyjnym modelowaniu procesów biznesowych. Ale jest to co najmniej równie cenne również w domenie wdrożeniowej, gdzie często nie chcemy rozróżniać przetwarzania lokalnego i zdalnego, a nawet tego, czy proces działa na jednej czy na wielu maszynach. Jak powiedzieliśmy, przedmioty to nie tylko „rzeczy” w sensie fizycznym. Weźmy przykład „poborcy podatku od wartości dodanej” (TAXG). Programiści aplikacji, którzy chcą korzystać z TAXG, nie muszą wiedzieć, jak to działa, ale musisz wiedzieć o tym kilka rzeczy

TAXG to „czarna skrzynka”, którą w całości definiuje:

† Usługi, które zapewnia aplikacjom.

† Sposób, w jaki aplikacje powinny wysyłać do niego wiadomości.

† Zestaw szczegółowych informacji na temat obsługi komunikacji, których aplikacje nie muszą znać, ale które mają na celu poinformowanie podstawowej infrastruktury rozproszonej.

† Unikalny identyfikator, który zostanie użyty do jego zlokalizowania, nawet jeśli będzie przemieszczał się z miejsca na miejsce. (Możliwe, że obiekt, który oblicza Twój podatek, może przenieść się z jednego komputera na drugi. Nadal chcesz uzyskać dostęp do tego, a nie tego, który rozlicza podatek kogoś innego lub wykonuje obliczenia na innej podstawie.)

W programowaniu obiektowym obiekty są definiowane przez definicje klas. Jest to sposób na zdefiniowanie „szablonu” dla obiektu, który obejmuje określenie jego właściwości (na przykład obiekt rachunku bankowego może mieć właściwości salda, nazwy i numeru rachunku) oraz kilka procedur lub metod, które umożliwiają m.in. właściwości, którymi należy manipulować. Za każdym razem, gdy tworzona jest nowa instancja obiektu (na przykład nowa osoba otrzymuje konto bankowe), ta instancja „bank_account_object” jest tworzona i zarządzana w pamięci komputera w ramach kompilacji, ładowania i uruchamiania obiektu zorientowany język programowania (C++, ActiveX, Java itp.), bez konieczności zajmowania się szczegółami. Zauważ, że jednym z aspektów generowania klas jest możliwość włączania lub dziedziczenia właściwości innych obiektów. (Na przykład klasy „mężczyzna” i „kobieta” mogą dziedziczyć po klasie „pracownik”). Uważa się, że jest to pomoc w szybkości i dokładności rozwoju. Jednak w przypadku stosowania orientacji obiektowej w systemach rozproszonych właściwość dziedziczenia nie wydaje się być szczególnie istotna. Jednym z aspektów podejścia zorientowanego obiektowo, które ma znaczenie dla systemów rozproszonych, jest to, że sprawia ono, że programowanie jest zadaniem dwuetapowym. Najpierw definiujemy strukturę każdego obiektu. Następnie „po prostu” piszemy resztę programu mniej więcej jako serię komunikacji między obiektami, używając dobrze zdefiniowanych reguł, które wychodzą ze sposobu, w jaki obiekty zostały określone. Często pożądane jest doprowadzenie tego podejścia do enkapsulacji do skrajności, ponieważ komunikujące się komponenty nie muszą nawet być świadome języka programowania, w którym napisane jest drugie. Tworzenie i zarządzanie obiektami stwarza pewne nowe problemy w przypadku rozproszonym: tworzenie nowej instancji obiektu może być inicjowane przez platformę kliencką zdalną z serwera, na którym ma zostać utworzona instancja. Należy zapewnić standardowe procedury tworzenia tych instancji w fabrykach obiektów. Podobnie rozproszone urządzenia muszą być dostępne do usuwania tych wystąpień, gdy nie są już potrzebne. Zwykle ukryty przed programistą aplikacji, musi też istnieć niezawodny sposób przesyłania danych pomiędzy rozproszonymi obiektami. Podsumowując, przejście od programowania obiektowego do projektowania komponentów wydaje się wiązać ze znaczącą zmianą w perspektywach. Najlepiej nie pytać, jakie są komponenty; lepiej opisać, co robią i jak się pojawiają, ponieważ można je realizować na różne sposoby, niekoniecznie obiektowe. Po pierwsze, ich wygląd: widziane z innych platform w systemie rozproszonym, widoczne są tylko przez ich interfejsy. Sposób implementacji komponentu na platformie hosta nie ma znaczenia dla reszty systemu

W dość fantazyjnym modelu pokazanym na, komponent wchodzi w interakcję ze światem poprzez całkowicie izolujący interfejs. Komputer kliencki uzyskujący dostęp do komponentu nie musi wiedzieć – i nie może powiedzieć – czy jest napisany w C, C++, Javie czy nawet wdrożony jako urzędnik księgi ludzkiej. Zaleta tego podejścia jest prosta: możliwość podłączania, możliwość łączenia procesów ze sobą bez martwienia się o ich wewnętrzne działanie. Wspomnieliśmy już o innej właściwości komponentów: niezależności ich lokalizacji. Chyba że trzeba wiedzieć, gdzie znajduje się składnik , gdzie jest zlokalizowany, jest to niepotrzebne rozproszenie uwagi. Ponownie, podstawową zasadą jest ukrywanie rzeczy przed projektantem, w tym przypadku miejsca pobytu komponentu. Ale jeśli nasze komponenty mają być uwolnione od wścibskich oczu programistów aplikacji, muszą nadal znajdować się pod kontrolą szeregu usług zarządzania, które same w sobie są niewidoczne dla programisty.

System zarządzania zawiera informacje o tym, gdzie znajdują się komponenty i jak się nazywają. Może zatem powiązać nazwę używaną przez programistę z rzeczywistym komponentem. Prowadzi również rejestr ważnych komponentów i podobnie listę osób, które mają do nich dostęp. Ponieważ obiekty będą często dystrybuowane, pewien nadrzędny proces musi być również odpowiedzialny za przechowywanie bieżących wartości stanów obiektów w magazynie trwałym, który może zapewnić odzyskiwanie danych dla hostów, na przykład w przypadku niepowodzenia transakcji. (Przetwarzanie transakcji jest opisane w dalszej części). I odwrotnie, gdy klienci nie używają już obiektów, musi istnieć pewne wyrzucanie elementów bezużytecznych, dzięki którym można zwolnić pamięć i rekordy stanu używane do przechowywania nadmiarowych wystąpień tych obiektów do nowego użytku. Wreszcie będzie zestaw ogólnych usług zarządzania do obsługi bezpieczeństwa i zarządzania zasobami. W różnym stopniu iz różnym powodzeniem, systemy zarządzania próbują radzić sobie z odpornością na błędy, równoważeniem obciążenia itp. Rozwiązania komponentowego oprogramowania pośredniczącego mają zwykle swoje korzenie w podejściu programowania obiektowego lub rozproszonego. Pritchard zapewnia przydatne rozróżnienie między architekturami komponentowymi, które koncentrują się na pakowaniu kodu i jego funkcjonalności w wielu językach, a architekturami zdalnymi, które dotyczą używania rozproszonych obiektów do uruchamiania zdalnych procesów. W tabeli 1.1 próbujemy umieścić kilka popularnych produktów oprogramowania pośredniczącego. DCOM firmy Microsoft rozszerza ideę komponentów w ramach pojedynczego komputera (zazwyczaj PC z systemem Windows), który został opracowany pod nazwą COM, na środowisko rozproszone, w szczególności na architekturę klient-serwer systemu Windows. CORBA i Java RMI to „systemy otwarte”. CORBA jest bardziej dojrzała i ma większy udział w rynku, ale Java RMI cieszy się dużym zainteresowaniem.

PODŁĄCZANIE DO WEWNĘTRZNYCH SYSTEMÓW BIZNESOWYCH

Być może najprostszy przykład łączenia się między warstwami systemu informatycznego ma miejsce, gdy rozważamy operacje w ramach jednej firmy, która wprowadziła usługi sieciowe oprócz istniejących mechanizmów transakcyjnych. Widzieliśmy jeden przykład tego w przypadku serwerów detalicznych, w przypadku ODCB, który umożliwia serwerom sieciowym komunikowanie się z różnymi bazami danych różnych producentów. Część oprogramowania serwerowego prawie nieuchronnie zostanie przekazana pakietom programów, które wykonują takie zadania. Istnieje wiele proponowanych rozwiązań oprogramowania pośredniczącego, z których środowiska CORBA i korporacyjne środowiska JAVA są prawdopodobnie najbardziej ambitne. Omówimy je w poniższych sekcjach, ale ogólne zasady są takie same, niezależnie od zastosowanej metody: połączenie wzajemne można osiągnąć poprzez konstruowanie specjalistycznych łączników pomiędzy procesami. Konstruując lub nawet używając tych programów łączących należy zwrócić uwagę nie tylko na ich prawidłowe działanie, ale także na zapewnienie satysfakcjonującej wydajności i bezpieczeństwa. Można to zrobić bezpośrednio, uruchamiając zdalne wywołania funkcji lub procedur (RPC). Są to wiadomości przesyłane z jednego komputera do drugiego, które mogą wywoływać stosunkowo ograniczone działania na drugim, bezpośrednio przez zaporę.

Takie podejście, które jest rdzeniem architektur, takich jak Distributed Computing Environment (DCE) , umożliwia aplikacjom klienckim uruchamianie funkcji, zwykle napisanych w C, na zdalnym komputerze. Proste rozwiązania RPC, które obejmują wywoływanie ad hoc procesów działających na innych serwerach, można zaprojektować bez przyjmowania formalnego projektowania zorientowanego na komponenty lub obiekt. Są wygodne do prostszych zadań lub tam, gdzie mamy dobrą kontrolę nad środowiskiem zarówno na serwerze WWW, jak i na serwerze biznesowym. Jeśli jednak system IT jest skomplikowany technicznie lub firma istnieje w środowisku, w którym wiele tymczasowych sojuszy jest tworzonych i niszczonych w szybki i złożony sposób, wymagane jest bardziej ogólne i ustrukturyzowane podejście do przetwarzania rozproszonego. Podejście RPC do problemów tego rodzaju może być skomplikowane, a zatem trudne do utrzymania i niekoniecznie bardzo bezpieczne. Wraz ze wzrostem wykorzystania programowania obiektowego, preferowanym sposobem działania jest teraz wprowadzenie łącznika obiektowego między dwoma systemami

Komunikacja między serwerem WWW a procesem łączenia może wykorzystywać np. otwarty standard DCOM (rozsądnie) opracowany przez Microsoft. Firmy takie jak SAP (dostawca jednego z najpopularniejszych pakietów oprogramowania do planowania zasobów) dostarczają zestawy narzędzi, które umożliwiają projektantom tworzenie niezbędnych obiektów. Na przykład często wymagamy zdefiniowania obiektu „zamówienie”, który łączy się z procesami sprzedaży i dystrybucji w SAP, obiekt „klient” z procesów finansowo-księgowych i tak dalej. Zdalne wywołania funkcji mogą wywoływać te obiekty, ale działania, które następują po nich, są całkowicie definiowane przez charakterystykę obiektów, które są opracowywane i chronione za zaporą, a nie przez RFC, które są ujawniane na serwerze sieci Web. Takie podejście do korzystania z dobrze określonych interfejsów (niemal zawsze zorientowanych obiektowo) jest znane jako architektura komponentowa. Nawiasem mówiąc, chociaż twierdzi się, że dobrą wydajność można osiągnąć za pomocą obiektów składowych, czasami zaleca się również, aby lepszą praktyką było ograniczenie liczby dostępów z serwera WWW do serwera biznesowego tak bardzo, jak to możliwe. Na przykład może być lepiej utworzyć kopię katalogu produktów lokalnie obok serwera WWW, do użytku przez przeglądających klientów i dopiero po podjęciu przez nich decyzji o produkcie przekażą swoje zapytania do serwera biznesowego, aby sprawdzić dostępność itp. Miałoby to sens, zarówno pod względem wydajności, jak i bezpieczeństwa. Przyjrzymy się teraz niektórym architekturom komponentów.

ROLA SPRZĘTU NARZĘDZIOWEGO

W przypadku detalicznego eCommerce, przynajmniej w przypadku dostarczania klientom informacji oraz możliwości uruchamiania koszyków zakupowych i innych podstawowych zadań, relacja między terminalem klienta a serwerem eCommerce jest stosunkowo prosta. W większości przypadków jest to po prostu ściąganie stron WWW w trybie klient-serwer, być może także wywoływanie prostych skryptów CGI lub generowania stron aktywnego serwera na serwerze. Rzeczywiste dzielenie się procesami w sposób rozproszony, peer-to-peer jest niewielkie lub nie ma go wcale, co odzwierciedla asymetryczną relację między klientami i dostawcami. W przypadku międzyfirmowym sytuacja może wyglądać zupełnie inaczej: platformy biznesowe zmieniają się z serwerów na klientów i z powrotem, znacznie bardziej równomiernie podczas transakcji. Robią to między procesami biznesowymi w ramach każdej pojedynczej firmy, a także w procesie między firmami, a często firmy są w wielu relacjach handlowych, nawet jednocześnie. Wymagane jest wówczas rozwiązanie oprogramowania pośredniczącego, które umożliwia zdalne sterowanie procedurami (RPC) lub podobne podejście do współdziałania między tymi platformami, być może w sposób prawdziwy peer-to-peer, i takie, które może działać w rozproszonym i heterogenicznym środowisku , głównie w sieciach TCP/IP komputerów, bardzo często o różnym roczniku i produkcji. Takie rozwiązania middleware dzielimy na kilka klas:

* Oparte na języku SQL: to jedno z najwcześniejszych podejść, dotyczy głównie operacji typu pobieranie danych. Rozwój ODBC (strona 101) i innych ulepszeń nadał temu podejściu bardziej zorientowanemu na procedury niż oryginalny model bazy danych.

* Zdalne wywołanie procedury: w swojej „czystej” formie zwykle obejmuje neutralny język specyfikacji do definiowania interfejsów między fragmentami kodu pośredniego lub szkieletowego na serwerze i kliencie.

* Pośrednictwo obiektów: rozszerza to niezależne od języka podejście eBUSINESS przy użyciu silnie hermetyzowanych (tj. z ukrytymi wewnętrznymi funkcjami) obiektów.

* Zorientowane na komunikaty i rozproszone przetwarzanie transakcji: oba dotyczą gwarantowanej niezawodnej realizacji działań międzyprocesorowych.

WARSTWA OPROGRAMOWANIA SERWERA

Bezpośrednio nad warstwą sieciową w architekturze e-biznesu  znajduje się oprogramowanie serwera. Obejmuje to podstawowy system operacyjny serwera i powiązane systemy: zdecydowanie najpopularniejsze są UNIX/LINUX i Microsoft NT. Najniższa część systemu operacyjnego dotyczy interakcji z warstwą sieciową. Jak wspomniano wcześniej, ta ostatnia jest zwykle implementacją TCP/IP, ale możliwe są inne, z których dominują IPX Netware i NetBEUI Microsoftu. Większość systemów sprzedawanych do celów e-biznesu zawiera również narzędzia inne niż podstawowy system operacyjny. Zwykle sprzedawane pod nazwą serwery aplikacji, zawierają serwer WWW do obsługi żądania http , serwer poczty e-mail, usługi bezpieczeństwa zwykle oparte na warstwie bezpiecznych gniazd (SSL) (patrz strona 266), zwykle niektóre urządzenia konferencyjne on-line, katalogi i tak dalej. Dostarczane są również rozproszone usługi zarządzania, coraz częściej wykorzystujące formularze HTML jako interfejs. Nawiasem mówiąc, chociaż problem dotyczy raczej sprzętu niż oprogramowania, powinniśmy zauważyć, że serwery aplikacji nie muszą być dużymi komputerami: wystarczą solidnie zaprojektowane maszyny oparte na procesorach Intel 486 lub podstawowych układach SUN SPARC. Serwer aplikacji staje się nie tylko serwerem WWW plus nieco więcej, ale głównym centrum kontrolnym dla klientów zewnętrznych i innych serwerów , prowadzenie procesów wewnętrznych. Jego mechanizm łączenia z tymi innymi procesami odbywa się za pośrednictwem oprogramowania pośredniczącego.

UWIERZYTELNIANIE ZDALNEGO DOSTĘPU

LDAP to podejście zorientowane na organizację, umieszczające osoby i jednostki biznesowe w ramach przedsiębiorstwa. Nieco inne podejście jest konieczne, gdy osoby fizyczne znajdują się „poza” firmowym intranetem, na przykład klienci uzyskujący dostęp do usług z domu lub pracownicy firmy pracujący w domu lub w ruchu. Jednym z rozwiązań tego problemu zdalnego dostępu jest często usługa RADIUS (Remote Authentication Dial-In User Service). W intranecie znajduje się serwer RADIUS, który przechowuje dane o profilu każdego zarejestrowanego użytkownika: hasła, uprawnienia, statystyki użytkowania i tak dalej. Gdy użytkownicy próbują zalogować się do punktu dostępu do sieci, ten ostatni automatycznie wysyła zapytanie do serwera RADIUS, aby sprawdzić, czy można zezwolić na dostęp. Należy pamiętać, że zdolność RADIUS do przechowywania statystyk użytkowania oznacza, że ​​może on stanowić integralną część mechanizmu rozliczeniowego do pobierania opłat tam, gdzie dostęp nie jest bezpłatny. Powyższe sekcje tylko pokrótce dotyczą szeregu aspektów bezpieczeństwa.

USŁUGI KATALOGOWE

Jeśli różne części przedsiębiorstwa chcą się ze sobą komunikować, muszą znać swoje adresy. W firmowej sieci telefonicznej odbywa się to poprzez utworzenie książki telefonicznej, która przypisuje nazwę do numeru wewnętrznego. W przybliżeniu ten sam proces jest wykorzystywany do routingu danych w intranecie lub ekstranecie. Jednak musi to również uwzględniać niepewny charakter publicznej trasy internetowej. Usługa katalogowa będzie zatem obejmować możliwość przechowywania i pobierania certyfikatów cyfrowych, które są potrzebne do zapewnienia integralności sieci VPN. Możliwe jest użycie relacyjnej bazy danych do przechowywania wszystkich tych informacji, ale może to stać się trudne i kosztowne w administrowaniu i mogą wystąpić pewne problemy z wydajnością. Powszechnie preferowana alternatywa opiera się na Lightweight Directory Access Protocol (LDAP) , wersji o zmniejszonej złożoności dobrze sprawdzonego standardu katalogów telekomunikacyjnych X500 . W szczególności zastępuje dość ciężki stos protokołów OSI jednym opartym na TCP/IP. Aby uzyskać więcej informacji. LDAP opiera się na hierarchicznej strukturze drzewa, która skutecznie odzwierciedla standardowe struktury organizacyjne i umożliwia powiązanie z dowolnym wpisem, zazwyczaj osobą lub funkcją, zestawem atrybutów, takich jak dane kontaktowe, certyfikaty cyfrowe itp.

Struktura drzewiasta oznacza również, że pozycja w hierarchii organizacyjnej jest jasno określona i na przykład jednostki nadrzędne i zależne można prześledzić w górę lub w dół. Jako funkcja administrowania systemami, LDAP posiada również właściwości operacji rozproszonych, które pozwalają na przechowywanie całego katalogu lub jego podzbiorów lokalnie, np. w celu poprawy wydajności dostępu, ale do automatycznej aktualizacji (synchronizacji) po każdej zmianie katalogu głównego. Główni dostawcy twierdzą również, że administratorom systemów dość łatwo jest dostroić buforowanie i indeksowanie oprogramowania LDAP w celu uzyskania bardzo wysokiej wydajności. Aby dać pewne pojęcie o skali, Netscape twierdzi, że ich serwer Directory Server może obsługiwać „ponad 5000 zapytań na sekundę i 50 milionów wpisów użytkowników na jednym serwerze.

TUNELE INTERNETOWE

W celu zintegrowania różnych rozproszonych części sieci korporacyjnej, najlepiej byłoby, gdyby można było zignorować publiczny Internet, który do nich dołącza. Koncepcyjnie stosujemy strategię. Na wejściu i wyjściu do witryn zapewniamy logiczną bramę, która hermetyzuje pakiety IP z jednej witryny do drugiej w tym sensie, że Internet nie może, być może nie może, odczytać ich ostatecznych adresów źródłowych i docelowych, a nawet ich zawartość. Wszystko, co robi Internet, to trasowanie pakietu z bramy źródłowej do bramy docelowej, ponieważ jest to jedyna część pakietu, którą może odczytać. W miejscu docelowym pakiet jest następnie hermetyzowany przez bramę i migrowany do sieci wewnętrznej, aby dotrzeć do zamierzonego hosta odbiorczego. Aby brama mogła to zrobić z pakietami chronionymi przez zabezpieczenia, musi wymienić klucze szyfrowania z drugą bramą. Można to zrobić za pomocą protokołów takich jak IPSec , PPTP lub L2TP. Na rysunku pokazano również dostęp przez publiczny Internet do urzędu certyfikacji, którego usługi są wymagane w celu weryfikacji kluczy szyfrowania bram.

Jedna część bramy może działać jako zapora. Może odfiltrowywać niebezpieczne lub podejrzane pakiety, a jeśli zawiera bramę aplikacji, kontrolować również żądania aplikacji z zewnątrz. Ta funkcja bramy bezpieczeństwa jest sterowana przez serwer polityki bezpieczeństwa, który przechowuje listę dozwolonych i zabronionych działań, dozwolonych lub zabronionych adresów, które mogą lub nie mogą komunikować się między siecią wewnętrzną i publiczną, i być może rejestruje wszelkie takie próby naruszeń lub alarmy, gdy się pojawią.

„ISP”

Firmy na ogół nie zarządzają sieciami internetowymi, które łączą ich firmy na dużym obszarze. Zamiast tego kupują te obiekty od jednej z dużej liczby firm specjalizujących się w ich dostarczaniu, dostawcy usług internetowych. Niektórzy dostawcy usług internetowych oferują jedynie punkt obecności (POP), połączenie o nieokreślonej wydajności z globalnymi możliwościami Internetu; inni, tak zwani dostawcy usług sieciowych (NSP), również zapewniają określone umowy o świadczenie usług przesyłania ruchu IP przez prywatne sieci dalekiego zasięgu, które zbudowali lub wydzierżawili. Wielu NSP to organizacje powiązane z tradycyjnymi dostawcami sieci telekomunikacyjnych. (np. AT&T Worldnet). Firma, która chce zmaksymalizować wydajność swojej sieci, może preferować, za pewną cenę, prowadzenie procesów wewnątrzfirmowych w wielu lokalizacjach w jednej takiej prywatnej sieci IP; mała firma lub taka, która ma ograniczone koszty, może preferować szczęście, korzystając z w pełni publicznego połączenia internetowego. W praktyce firmy prawdopodobnie będą wykorzystywać zarówno: prywatną trasę NSP do ruchu wewnętrznego, jak i do połączeń z uprzywilejowanymi partnerami, publiczne połączenie do innych transakcji. Rysunek ,

przedstawia typową instalację ISP. Poza punktem obecności dostawcy usług internetowych nawiązują połączenie z siecią szkieletową samego Internetu. Ta sieć szkieletowa obejmuje wiele bardzo dużych i szybkich sieci prywatnych dostarczanych przez główne firmy sieciowe, dostawców poziomu pierwszego, którzy uzgadniają i zarządzają połączeniami między sobą w punktach dostępu do sieci internetowej (NAP). Aby dać pewne pojęcie o skali: w Ameryce Północnej istnieje tylko sześć uznanych NAP. Zauważ, że NAP są administracyjnymi, a nie komercyjnymi punktami w Internecie; firmy nie mogą bezpośrednio od nich kupować dostępu. Punkt zakupu znajduje się w POP wybranego dostawcy usług internetowych; następnie dostawca usług internetowych zapewnia lub negocjuje połączenie z Internetem za pośrednictwem dostawcy poziomu pierwszego. Każda firma rozpoczynająca rozmowy handlowe z dostawcami usług internetowych powinna zatem zajmować się uzgadnianiem poziomów usług do i z POP dostawcy usług internetowych i, jeśli to możliwe, spróbować ocenić umowę dostawcy usług internetowych z firmą poziomu pierwszego, z którą jest połączona . Jak widać na Rysunku wydaje się, że niewiele jest konfiguracji wirtualnej lub prywatnej.

Aby uzasadnić warunki, należy dodać inne elementy: musimy zapewnić pewną ochronę danych przed przechwyceniem i korupcją; możemy chcieć ukryć szczegóły routingu w sieci publicznej z dwóch końców, aby można je było uzyskać za pośrednictwem dowolnego łącza bez konieczności ich rekonfiguracji; równie dobrze możemy chcieć ukryć wszelkie wewnętrzne szczegóły obu końców przed sobą i przed kimkolwiek w publicznym Internecie; wreszcie możemy chcieć wyznaczyć jakiś kompleksowy cel w zakresie jakości usług. Ten ostatni wymóg wymaga współpracy z ISP; pozostałe wymagania spełnia zapewnienie tuneli i wykorzystanie bezpiecznych bramek, takich jak zapory ogniowe, na styku sieci publicznej i prywatnej.

WIRTUALNE SIECI PRYWATNE: INTRANETY I EKSTRANETY

Na długo zanim koncepcja wirtualnych przedsiębiorstw stała się częścią codziennych rozmów ekspertów od zarządzania, firmy stały się wirtualne, ponieważ często znajdowały się w różnych lokalizacjach, ale starały się działać jako spójne przedsiębiorstwo. Sekretem była i jest efektywna komunikacja. Radykalne ulepszenia w tym zakresie nastąpiły wraz z rozwojem telefonii, faksu i obwodów danych typu punkt-punkt. Firmy od wielu lat wykorzystują wirtualne sieci prywatne (VPN) do przenoszenia ruchu głosowego. Są to usługi świadczone przez firmy telekomunikacyjne, w których ruch głosowy jest transportowany pomiędzy wybranymi lokalizacjami wewnątrz firmy za pośrednictwem krajowych i międzynarodowych publicznych sieci telefonicznych w taki sposób, aby firma wyglądała tak, jakby wszyscy jej pracownicy byli na jednej dużej centrali PABX z prostą numeracją i rozliczenia w zależności od wymaganej struktury organizacyjnej. Tradycyjnie, natomiast głos i faks odniósł ogromne korzyści dzięki ustandaryzowanej zasad transmisji   i urządzeń końcowych, wymiana danych ucierpiała z powodu zastrzeżonych, niekompatybilnych systemów. Ponadto tendencja wykazywana przez telekomunikacyjną sieć głosową w kierunku systemów pobierania opłat opartych na czasie trwania, do niedawna skutkowała bardzo wysokimi kosztami przesyłania danych o dużym natężeniu między lokalizacjami oddzielonymi geograficznie. Jak wskazaliśmy w poprzednim rozdziale, Internet radykalnie zmienił te pozycje, oferując standardowy protokół wymiany, który można umieścić na wielu własnych interfejsach i wykorzystując przepustowość transmisji tylko wtedy, gdy jest to wymagane, może znacznie obniżyć opłaty telekomunikacyjne. Wiele firm przechodzi obecnie na internetowe wirtualne sieci prywatne do transmisji danych, a w niektórych przypadkach również do ruchu głosowego. Sieci te, których głównym celem jest zapewnienie komunikacji wewnątrz korporacyjnej przy użyciu protokołów internetowych, nazywane są intranetami. Podstawowa charakterystyka jest pokazana na rysunku

Nie ma powodu, dla którego zasada ta nie może być rozszerzona na komunikację wewnątrzbranżową w postaci ekstranetu

Jak pokazuje rysunek, istnieje jednak szereg różnic między intranetem a ekstranetem. Na poziomie aplikacji jasne jest, że w prawie wszystkich przypadkach tylko niektóre dane lub procesy będą udostępniane zainteresowanym firmom. W końcu firmy mogą udostępniać inne dane swoim konkurentom. Należy wprowadzić szereg środków bezpieczeństwa, aby upewnić się, że udostępniane są tylko odpowiednie dane. W niższych warstwach przenoszenia danych między witrynami może również występować różnica polegająca na tym, że zaangażowane firmy mogą wykorzystywać publiczny Internet jako sposób handlu, zamiast budować prywatne połączenie sieciowe między własnymi intranetami. Powoduje to dodatkowe problemy związane z bezpieczeństwem i jakością usług, zwłaszcza tam, gdzie te dwie firmy nie mają wspólnego dostawcy usług internetowych, którego role musimy teraz zbadać.