COM+ kontra EJB - który model wybrać?

Spór między zwolennikami obu technologii często ma charakter pozamerytoryczny.

Spór między zwolennikami obu technologii często ma charakter pozamerytoryczny.

O zaletach i wadach różnych modeli komponentowych do tworzenia aplikacji dyskutuje się od dawna. Obecnie spór toczy się między zwolennikami Enterprise Java Beans (EJB) a COM+. Dyskusja ta, w gruncie rzeczy bezproduktywna, paraliżuje działania wielu osób decydujących o informatyce w przedsiębiorstwach.

Liderzy środka

Zwolennicy EJB zarzucają Microsoftowi, że opanował rynek komputerów PC, a teraz usiłuje zdominować rynek serwerów, by zarabiać jeszcze więcej. Argument pozbawiony jest sensu. Przecież nie można kupić wszystkiego od firm prowadzonych przez altruistów, nie da się rozwijać nowych technologii bez pieniędzy. Dla programisty najważniejsze jest to, czy on sam - korzystając z danej technologii - może zarobić pieniądze.

Zwolennicy COM+ również koncentrują się na problemach drugorzędnych. Ich koronny zarzut to: EJB jest kopią MTS (Microsoft Transaction Server), prekursora COM+. Owszem w EJB wiele zaczerpnięto z MTS, ale nie można zapominać, że MTS to realizacja pomysłów CORBA w połączeniu z technologiami z monitorów transakcyjnych znanych od 20 lat. CORBA zaś to rozwinięcie technologii zdalnego wywołania procedur RPC. W informatyce wszyscy kopiują od wszystkich, bacząc tylko, aby nie naruszyć cudzych patentów.

Dyskusja na temat otwartości specyfikacji też jest bezpodmiotowa: EJB i COM+ są kontrolowane tylko i wyłącznie przez firmy, które je opracowały.

Prawdziwe różnice

Tym, co naprawdę różni te technologie, to: przenośność, wydajność, języki tworzenia aplikacji.

Preferowanym językiem dla COM+ jest Visual Basic (VB); dla EJB jedynym językiem jest Java. Wprawdzie Microsoft i inni dostawcy oferują również C++, ale w przypadku typowych aplikacji biznesowych jest on wypierany przez VB.

Liczba języków w nowym zestawie programistycznym Visual Studio.NET znacznie wzrosła. Pojawił się Cobol (opracowany przez Fujitsu) i Eifel (Interactive Software Engineering). Natomiast raczej nie pojawi się wśród nich Java. Ma ją zastąpić nowy język C#. Wszystkie te języki pozwalają na tworzenie aplikacji COM+.

Programując w modelu EJB, nie ma problemu z wyborem języka, za to jest kłopot z wyborem z coraz obszerniejszej oferty narzędzi. Java cieszy się coraz większym powodzeniem wśród osób znających C/C. Natomiast obiektowość zarówno C++, jak i Javy zniechęca starszych informatyków. Dla nich VB to znakomity język programowania. Będą więc wybierać COM+.

Projektując duży system, już na wstępie trzeba zdecydować, czy ma on być przenośny czy wysoko wydajny. W każdym systemie da się uzyskać dużą wydajność, ale jest to znacznie droższe w systemach przenośnych.

Do osiągnięcia przenośności kod dzieli się na dwie części: przenośną i warstwę ściśle związaną z systemem operacyjnym. W przenośnej części aplikacji nigdy nie używa się bezpośrednich odwołań do funkcji systemu operacyjnego; odwołania następują za pośrednictwem warstwy powiązanej z systemem operacyjnym. Dopiero ta warstwa tłumaczy odwołania na API konkretnego systemu operacyjnego. Dodatkowa warstwa powoduje spowolnienie działania aplikacji. Takie podejście stosuje się w modelu EJB. Natomiast do uzyskania dużej wydajności programista korzysta bezpośrednio z funkcji systemowych możliwie niskiego poziomu. Takie podejście stosuje się w COM+.

Obie metody mają zalety. Przenośna aplikacja EJB będzie działać na wielu systemach, natomiast COM+ pozwoli znacznie zwiększyć wydajność, a więc w efekcie obniżyć koszt. Dotąd nie podano wyników testów wydajności porównywalnych aplikacji transakcyjnych EJB i COM+. Testy wydajności transakcyjnej TPC-C pokazują, że koszt transakcji w Windows 2000 jest ok. trzech razy niższy niż w Unixie. Można spodziewać się, że z powodu mniejszej szybkości działania aplikacji Java, koszt w przypadku przenośnych aplikacji transakcyjnych EJB będzie odpowiednio wyższy.

Co wybrać?

Nie ma prostej recepty. Pakiet Visual Studio.NET wybiorą programiści znający różne języ- ki programowania. Windows z COM+ - to wydajność osiągana małym kosztem, lecz okupiona brakiem przenoś-ności. Jeśli zaś do realizowanych projektów wybiera się Javę, EJB pozwoli osiągnąć przenośność i korzystać z coraz lepszych komponentów biznesowych dostarczanych np. przez IBM czy Oracle.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200