OBIEKTY CORBA I e-BIZNES

Object Management Group dostrzegła znaczenie e-biznesu w swoich obszarach zainteresowań i stała się bardzo aktywna w próbach zdefiniowania funkcjonalności CORBA i funkcji OMA na tym polu. Jako grupa standardów, ich podejście jest naturalnie raczej przemyślane niż pochopne i dlatego może cierpieć z powodu niebezpieczeństwa wyprzedzenia przez wydarzenia. Jednak obecnie wydaje się, że mają pewien wpływ na kierowanie kolejnymi krokami w architekturze e-biznesu, a także widzą implementacje CORBA na większości popularnych platform. Dlatego warto zastanowić się nad niektórymi aspektami infrastruktury CORBA, które mają szczególne zastosowanie w e-biznesie. Rysunek

przedstawia w ujęciu CORBA/OMG procesy, które tworzą razem e-biznes, przynajmniej w takim zakresie, w jakim wymagają one przetwarzania rozproszonego. Niektóre, takie jak być może płatności, katalog i własność intelektualna (IPR), są oczywiste, podobnie jak ogólne obiekty biznesowe, obiekty i usługi pokazane na dole rysunku. Niektóre inne mogą wymagać wyjaśnienia:

† Dane semantyczne: dzisiejsze instancje procesów handlowych on-line zostały opracowane ad hoc, przy czym każdy programista pracuje z różnymi jednostkami podstawowymi i z własnymi konwencjami nazewnictwa. Oznacza to, że nie jest łatwo połączyć rozwiązanie jednej osoby z rozwiązaniem innej, a nawet utrudnia wspólne zrozumienie wymagań.

† Ułatwienia negocjacyjne: negocjacje muszą być wielostronne (przynajmniej dwustronne). W związku z tym należy je zdefiniować w spójny sposób, aby umożliwić stronom rozszerzenie swoich komponentów handlowych w stosunku do siebie nawzajem i umożliwić powiązanie ogólnych wartości (na przykład ceny) z konkretną wartością (dolary amerykańskie, funty szterlingi itp.). ) w sposób spójny między wszystkimi uczestnikami.

† Usługi umowne: podobnie te usługi, które określają poddziałania w ramach umowy lub mogą odnosić się do ogólnych ustaleń umownych, również wymagają spójnej specyfikacji.

† Usługi maklerskie i agencyjne: nad tymi obiektami znajduje się wyższy poziom zgrupowania obiektów związanych z ogólną infrastrukturą rynkową, z których szczególnie interesujące są usługi handlowe i maklerskie. Zapewniają one możliwość rozsyłania reklam wymaganych usług i rekrutowania usługi zdalnej zgodnej z profilem. Model procesu transakcyjnego dla takich czynności, jeśli mają być przeprowadzane automatycznie, jest oczywiście dość skomplikowany i znowu standaryzacja będzie korzystna.

OMG i inne organizacje ciężko pracują, aby urzeczywistnić te pomysły, z których wiele jest nadal koncepcyjnych.

USŁUGI NAZWA I HANDLOWE CORBA

Bardzo istotnymi składnikami usług CORBA są usługi „nazewnictwa” i „handlu”. Nazewnictwo jest prostsze. CORBA posiada zbiór katalogów systemowych, które ustalają korespondencję między nazwą obiektu a jego aktualną lokalizacją, tak jak sieć telefonii komórkowej może przekierować połączenie, opisane numerem telefonu, na konkretną antenę obsługującą komórkę, w której o nazwie strona obecnie jest. (Po prostu używasz nazwy; usługa CORBA utrzymuje ścieżkę do obiektu.) Ale to zakłada, że ​​wiesz, do kogo chcesz zadzwonić (a także, być może, w jakim celu i na jakich warunkach). Załóżmy, że chcesz dowiedzieć się, kto może sprzedać Ci dany typ samochodu, za jaką cenę i jak szybko. Musisz zajrzeć do katalogu Yellow Pages, który zawiera listę firm objętych usługami, które oferujesz, i uzyskać numer kontaktowy. To część tego, co zrobi usługa Trader. Pozwoli Ci to zidentyfikować źródła potrzebnych Ci obiektów. Na początku mogą to być proste usługi, takie jak aplikacja do bezpiecznego „znakowania wodnego” danych przed kradzieżą praw autorskich, ale w zasadzie powinna być w stanie znaleźć listę wirtualnych organizacji, które mogą zdalnie zarządzać zasobami ludzkimi na przykład oprogramowanie dla Twojej organizacji. Sprzedawca nie tylko podaje nazwy odpowiednich obiektów; podaje również szczegółowe informacje o oferowanych przez nich usługach – szybkości, kosztach, polityce bezpieczeństwa i tak dalej. W tym momencie należy powiedzieć, że niektóre właściwości Tradera muszą jeszcze zostać zdefiniowane przez OMG, a większość korzyści z usług Tradera można jedynie postulować. Niemniej jednak, podstawowe koncepcje są powszechnie akceptowane, a CORBA staje się powszechnie wykorzystywana jako platforma dla zaawansowanych usług.

„ARCHITEKTURA ZARZĄDZANIA OBIEKTAMI” – OMA

Sama CORBA zajmuje się interfejsami między obiektami i sposobem ich określania w IDL. Jest to najniższy poziom kompleksowej architektury zarządzania obiektami („OMA”), który obejmuje wizję nienastawionej na zysk kooperacyjnej grupy dostawców, znanej jako Object Management Group (OMG). Ich ideą jest stworzenie, w drodze konsensusu, wspólnej architektury dla przetwarzania rozproszonego, zbudowanej wokół opisanych powyżej zasad obiektowych. Oddzielają one podstawowe, niższego poziomu usługi dla obiektów, poziom CORBAservices, od udogodnień udostępnianych aplikacjom, poziom CORBAfacilities  

Usługi CORBA obejmują bardziej podstawowe i ogólne potrzeby wspólne dla większości obiektów: takie rzeczy jak nazewnictwo, zapytania, grupowanie obiektów, bezpieczeństwo i tak dalej. Wiele z nich jest dostępnych w stabilnej formie od kilku dostawców. Placówki CORBA są raczej słabiej rozwinięte. Zdefiniowano cztery podstawowe kategorie: interfejs użytkownika, zarządzanie informacją, zarządzanie systemami, zarządzanie zadaniami. Są one wyraźnie przydatne we wszystkich rozproszonych aplikacjach biznesowych. „Pionowe” obiekty CORBA są również generowane dla określonych sektorów rynku, takich jak opieka zdrowotna i finanse. Polityką OMG jest przyjęcie istniejących modeli informacji i procesów już stworzonych przez te sektory i zintegrowanie ich z OMA, na przykład poprzez tworzenie nowych interfejsów IDL.

„BROKER ZAMÓWIEŃ OBIEKTÓW” – ORB

Wyobraźmy sobie przypadek żądania od „klienta” (czyli od procesu wykonywanego w dowolnym miejscu w systemie rozproszonym) dla obiektu. Na przykład klient może chcieć wywołać obiekt TAXM, aby poradzić sobie z kalkulacją podatku. W implementacjach CORBA klient nigdy nie komunikuje się bezpośrednio z obiektem; żądanie zawsze przechodzi przez Object Request Broker (ORB), część oprogramowania CORBA, która działa jako bufor upraszczający między klientem a obiektem

Celem ORB jest ukrycie przed programistą aplikacji zawiłości radzenia sobie ze środowiskiem rozproszonym, które ponadto może składać się z heterogenicznego zestawu komputerów. ORB znajduje obiekt i obsługuje szczegółowe parametry żądania. Jego zadaniem jest zasadniczo zapewnienie przejrzystości lokalizacji i dostępu. Czyni to poprzez interfejsy IDL, jak pokazano. (Nawiasem mówiąc, można zauważyć, że ORB pasuje do naszej definicji obiektu CORBA.) W systemie rozproszonym może być kilka ORBów, każdy zamontowany na innym zestawie komputerów. Klienci wysyłają ich prośby do lokalnego ORB. Załóżmy, że poszukiwany obiekt nie znajduje się na obszarze objętym lokalnym ORB? Nie ma problemu, lokalny ORB po prostu komunikuje się z lokalnym ORBem obiektu

Kolejną zaletą tego podejścia jest to, że różne ORBy mogą znajdować się na platformach sprzętowych i programowych różnych dostawców i być napisane w zupełnie różnych językach, zgodnie z różnymi projektami wewnętrznymi. Wystarczy, że są w stanie zapewnić funkcje CORBA określone w ich interfejsach.

„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.