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.