OPROGRAMOWANIE GRUPOWE

Przestrzegaliśmy przed zbyt nieformalnym podejściem do pracy zespołowej i podkreślaliśmy potrzebę formalnych, pisemnych zapisów. Pisemne dokumenty mają oczywiście starożytne pochodzenie; pierwsze charakteryzowały się tym, że miały jedno autorstwo, jedną datę wydania, jednego mistrza i rezydowały w jednej bibliotece. Rozwój prasy drukarskiej zniósł ograniczenie jednej kopii, ale tylko w miejscu pochodzenia. Wygodne, tanie kopiowanie w punkcie odbioru pojawiło się dopiero w latach 60., wraz z rozwojem procesu Xerox. Przez kilka lat dokumenty pozostawały ograniczone pod względem ich dostępności i ruchu. Były głównie prywatne, dla wybranych osób na określonych stronach. Dopiero niedawno wszystkie te ograniczenia zostały zniesione dzięki technologii, a organizacje wciąż pogodziły się z konsekwencjami. Najważniejszym z nich jest pojawienie się skoncentrowanego na dokumentach spojrzenia na procesy współpracy. W ten sposób dokumentacja nie jest już statycznym zapisem, umocowanym tylko w jednym określonym czasie lub miejscu, ale raczej ewoluującym, dynamicznym mechanizmem rozpowszechniania historycznej, aktualnej i powstającej wiedzy korporacyjnej w sposób terminowy i spójny w całej organizacji. Twierdzi się, że dzięki takiemu podejściu ludzie mogą w ramach jednej operacji złożyć wszystkie swoje raporty, arkusze kalkulacyjne, formularze, wiadomości e-mail itp. w miejscu, w którym mogą być nie tylko widoczne dla innych, ale także poprawione, opatrzone adnotacjami, uzupełnione lub włączone do innej dokumentacji. Możemy na przykład wyobrazić sobie, że informacje o produkcie są zestawiane i nad którymi pracujemy wspólnie, w dokumentacji projektowej, raportach sprzedaży, usterkach i reklamacjach klientów, tak aby uzyskać zintegrowany obraz całej sprzedaży, produkcji, dostaw i funkcji wsparcia w organizacji. Jak pokazano na rysunku, samo udostępnienie centralnego repozytorium całej dokumentacji korporacyjnej nie wystarczy.

Konieczne jest również wykonanie szeregu funkcji kontrolnych nad tym. Przede wszystkim musi istnieć jakiś mechanizm kontroli wersji, który pilnuje numeracji wersji, przydzielania dat i utrzymywania historycznych kopii zapasowych poprzednich wersji. Jest to kluczowy wymóg, jeśli dokumenty mają podlegać ciągłym zmianom, zwłaszcza jeśli zaangażowanych jest więcej niż jeden autor. To natychmiast zwraca uwagę na potrzebę kontroli dostępu i uprawnień. Kto będzie mógł zobaczyć dokument; kto będzie mógł go modyfikować? Co właściwie rozumiemy przez „kto”? Moglibyśmy mieć na myśli osobę z nazwiska lub osobę identyfikowaną tylko na podstawie roli, którą odgrywa, lub zespołu, do którego należy. W przypadku dostępu do Internetu coraz częściej musimy uwzględniać lokalizację użytkownika jako kwestię kontroli dostępu. (Czy ograniczamy dostęp do znanych adresów IP? Czy zapewniamy dostęp mobilny chroniony hasłem?) Musimy również zwrócić uwagę na to, co zobaczy użytkownik, gdy uzyska dostęp do repozytorium. Dokumenty będą istniały w wielu formach: arkusze kalkulacyjne, e-maile, diagramy, raporty itp., a niektóre będą istniały jako sekcje modułowe, które można zestawiać na wiele sposobów, tworząc przewodnik szkoleniowy, instrukcję obsługi lub naprawy, broszurę sprzedażową . Musimy zapewnić szereg widoków zawartości repozytorium, który odpowiada potrzebom użytkownika, a także umożliwia wyszukiwanie i przeglądanie. Na koniec musimy przyznać, że myślenie o istnieniu jednego, scentralizowanego, fizycznego repozytorium wszystkich danych w wielu organizacjach nie jest już rozsądne. Zamiast tego rozproszone satelitarne bazy danych i serwery proxy będą przechowywać lokalne replikacje części lub wszystkich danych. Będą musiały zostać zsynchronizowane.  Produkty do pracy grupowej, które zapewniają solidne rozwiązania dla tych wymagań, są dostępne od jakiegoś czasu, przy czym dominującym przykładem są IBM (wcześniej Lotus) Notes. Notes obsługuje wszystkie opisane powyżej funkcje i zawiera system bezpieczeństwa oparty na szyfrowaniu kluczem publicznym w celu uwierzytelniania, kontroli dostępu i podpisów cyfrowych. W grę wchodzi uwierzytelnianie dwukierunkowe, w którym zarówno klienci, jak i serwery muszą potwierdzić swoją tożsamość przed rozpoczęciem dialogu. Dokumenty są jednoznacznie identyfikowane przez bazę danych, w której się znajdują, oraz numer w tej bazie danych. Są również opatrzone znacznikiem czasu z informacją o ostatnich zmianach. Istnieją złożone mechanizmy, które zapewniają synchronizację danych na wszystkich serwerach. Notatki zostały opracowane, zanim jeszcze zdano sobie sprawę z pełnego znaczenia Internetu, ale od tego czasu został rozszerzony wraz z rozwojem Domino, aby pasował do środowiska internetowego. Jednak nadal jest postrzegana przez niektórych miłośników Internetu jako podejście zorientowane na bazę danych, być może nawet przesadnie zaprojektowane. Jednym z problemów architektonicznych wynikających z modelu Internetu jest zakres, w jakim rzeczywiście wymagana jest replikacja danych. Skrajny pogląd jest taki, że wcale nie jest to konieczne: nie ma potrzeby śledzenia w oprogramowaniu do pracy grupowej kontroli wersji dokumentów; zamiast tego wszystko, co jest wymagane, to utrzymywanie listy adresów URL, pod którymi można znaleźć wersje. Nie wszystkie rozwiązania oprogramowania do pracy grupowej, które pojawiły się w ostatnich latach, wspierają ten mocny pogląd, ale mają zwykle lżejsze podejście do kontroli wersji niż te stosowane przez tradycjonalistów. Na koniec zwróć uwagę, że nie powiedzieliśmy nic o znajdowaniu odpowiednich informacji w tym potencjalnie ogromnym zbiorze danych korporacyjnych.

ZALETY I OGRANICZENIA USŁUG KONFERENCYJNYCH

Istnieje wiele teorii (choć żadna nie do końca rozstrzygająca) na temat skuteczności tych wirtualnych spotkań w czasie rzeczywistym. Teraz może się okazać, że obecna wydajność usług audio i wideokonferencyjnych nie spełnia jeszcze standardów „prawdziwego” spotkania. Niemniej jednak oferują rozsądne, tanie rozwiązanie do wielu celów. Prawdą jest chyba stwierdzenie, że wzmacniają one współpracę, a nie budują zaufanie, ab initio. W związku z tym są bardzo satysfakcjonujące dla rozproszonych zespołów projektowych, które można uznać za posiadające przynajmniej minimalny zestaw wspólnych celów i celów. Na rutynowych tego typu spotkaniach dotyczących postępów w zupełności wystarcza dźwięk; wideo może być wymagane, gdy trzeba wytworzyć nieco więcej empatii lub gdy trzeba udostępnić informacje projektowe. W kontekście eBiznesu należy mieć świadomość, że w korzystaniu ze środowisk wirtualnych, które mają na celu budowanie zaufania i wspieranie empatii pomiędzy partnerami w wirtualnym przedsiębiorstwie, może pojawić się niebezpieczeństwo wynikające z ich skłonności do tworzenia nieformalnej atmosfery. Otwarte dyskusje i przyjazne uczucia są niezbędne, ale nie zawsze są ustrukturyzowane i nie zawsze łatwo przypomnieć sobie, co dokładnie zostało uzgodnione. Zaistnieje potrzeba sporządzania odpowiednich zapisów ze spotkań, zwykle w formie elektronicznej. Jednym z przykładów są negocjacje umowne. Innym przypadkiem są operacje call-center, w których integracja danych połączeń (czasu, wybieranego numeru itp.) może być automatycznie zintegrowana z notatkami do rozmowy wpisywanymi przez agenta call-center. To oczywiście oddaje tylko perspektywę minutnika na to, co się wydarzyło. Jedynym absolutnie dokładnym sposobem uchwycenia zdarzenia jest nagrywanie dźwięku (a może nawet wideo?). Chociaż niektóre instytucje finansowe robią to tam, gdzie w grę wchodzą transakcje o wysokiej wartości, nie należy lekceważyć tego. Utrzymanie urządzenia rejestrującego do obsługi całego ruchu z dużego call-center wiąże się ze znacznym nakładem pracy i staranną konserwacją. Prawdopodobna technologia byłaby czymś w rodzaju zestawu podstawowych magnetofonów kompaktowych, które nie są tak naprawdę znane ze swojej niezawodności ani jakości, ale są łatwe w administrowaniu i wygodne, ponieważ łatwo jest wrócić do wymaganej rozmowy. Rejestratory cyfrowe są bardziej niezawodne, ale drogie. Nagrywanie na dyskach jest jeszcze droższe i rzadko używane. W przypadku korzystania z sieciowej konferencji audio (patrz poniżej) możliwe jest zorganizowanie, za opłatą, przez dostawcę sieci wykonania nagrywania i transkrypcji. W przypadku spotkań biznesowych może być możliwe nagrywanie spotkania i przechowywanie taśm na wypadek przyszłego sporu. Tam, gdzie w grę wchodzą „fizyczne” spotkania, warunki nagrywania wymagają uważnego monitorowania – taśma zostanie użyta tylko wtedy, gdy dojdzie do poważnego sporu, a mowa, która stanie się niezrozumiała z powodu złych warunków, będzie tylko wzbudzać dalsze podejrzenia i złą wolę. Być może zaskakujące jest to, że łatwiej jest nagrywać wirtualne spotkanie: nagrywający i zaangażowane strony dzielą ten sam kanał wiadomości; jeśli słuchacze rozumieją mowę, to samo nagranie. Ponownie, maszyny nagrywające muszą być konserwowane i we wszystkich omawianych przypadkach trzeba mieć strategię ujawnienia istnienia nagrania i być przygotowanym na naturalne zahamowanie, które może się pojawić. Wreszcie prawie na pewno nie warto rozważać wykorzystania automatycznej konwersji mowy na tekst, jako sposobu tworzenia zapisu spotkania. Dosłowne transkrypcje spontanicznych dyskusji są niezwykle ubogie. (To, co faktycznie mówimy, bardzo różni się od tego, co zamierzamy powiedzieć, i często jest całkiem niezrozumiałe bez rejestrowania niuansów głosu, gestów i języka ciała.) Każdy automatyczny system rozpoznawania będzie gorszy. W każdym razie wątpliwe jest, czy istnieje jeszcze sprzęt do rozpoznawania głosu, który może zaoferować niezawodną konwersję na tekst w realistycznych warunkach spotkania, z nieograniczoną mową. Z tych wszystkich powodów dominującym medium do negocjowania krytycznych porozumień był tekst. Współczesna technologia pozwala teraz na szybsze tworzenie tego tekstu, co jest wygodą, ale nie jest zmianą jakościową. To, co również robi, i co prawdopodobnie ma jakościowy wpływ na sposób, w jaki pracujemy, to umożliwienie przekazywania tego tekstu i odzyskane znacznie szybciej, wygodniej i bezbłędnie. Jak widzimy w następnej sekcji, możemy spodziewać się nawet prawie jednoczesnego, wielokrotnego tworzenia. Wraz z istnieniem dokumentów, które można czytać i być może nad którymi można pracować w różnym czasie iw różnych miejscach, następuje eksplozja informacji, którą należy zarządzać i która umieszcza dokument w centrum procesu współpracy.

KONFERENCJE AUDIO

Choć nie tak nowy i modny jak wideokonferencje, audiokonferencje są dość mało wykorzystywanym, ale bardzo skutecznym sposobem prowadzenia rozproszonych spotkań. Jest dostarczana przez wiele firm telekomunikacyjnych jako usługa standardowa i bardzo łatwa w użyciu. Uczestnicy albo dzwonią na numer podany przez operatora telekomunikacyjnego, albo dzwonią do nich centralni operatorzy o określonej godzinie. Następnie przez cały czas trwania konferencji są połączeni przez mostek audiokonferencyjny, aby wszyscy mogli się słyszeć. Niektóre firmy telekomunikacyjne świadczą również usługi w zakresie nagrywania i/lub transkrypcji, które mogą być cenne, szczególnie gdy omawiane są umowy umowne. Uczestnicy mogą korzystać ze swoich zwykłych słuchawek telefonicznych lub mogą korzystać z zestawów głośnomówiących, w których może uczestniczyć kilka osób w jednym pomieszczeniu. Chociaż brakuje mowy ciała i ogólnej empatii wizualnej, dźwięk ma tę zaletę, że jakość mowy jest ogólnie dobra, nie jest wymagane żadne oświetlenie ani inne wyposażenie studyjne, a uczestnicy potrzebują tylko niedrogiego telefonu. (Możliwe jest również posiadanie uczestników z telefonów komórkowych, chociaż struktura spotkań może nie być kontrolowana i mogą wystąpić problemy z bezpieczeństwem i grzecznością podczas rozmów w miejscach publicznych.) Koszty takich spotkań są stosunkowo skromne, a rosnąca jakość telefonii IP jest bardzo niskie koszty, może sprawić, że będzie to jeszcze bardziej atrakcyjna propozycja. Telefonia IP, która jest oczywiście oparta na pakietach, jest łatwa do hostowania na komputerze i zależy prawie całkowicie od obciążenia zaangażowanych ścieżek transmisji, ze względu na jej jakość. Zwykle działa dobrze w sieci LAN i jest coraz częściej dostępny w korporacyjnych wirtualnych sieciach prywatnych, które można rozszerzyć na innych członków przedsiębiorstwa. Możemy nawet wyobrazić sobie, że interakcja głosowa na odległość stała się bardzo powszechna i całkiem naturalna, a nie skupiona wokół półformalnych spotkań: „połączenia” IP byłyby zawsze „włączone”, ale być może wyciszone, chyba że zostały celowo uruchomione. W ten sposób traktowalibyśmy dalekich kolegów tak, jakby znajdowali się w tym samym pokoju.

WIDEOKONFERENCJE

Wzrost wykorzystania wideokonferencji był raczej stały niż spektakularny. Nie jest jasne, dlaczego tak się stało. Niemniej jednak zaczyna przyciągać znaczną liczbę entuzjastów, a liczba ich będzie wzrastać w miarę rozwoju możliwości transmisji, obniżek cen i znajomości. Wideokonferencje możemy ogólnie podzielić na trzy osie

Jeśli chodzi o środowisko, decyzja zależy albo od skorzystania ze specjalistycznego studia, które zwykle może pomieścić większą liczbę osób, ma dobre warunki oświetleniowe i dźwiękowe, może wymagać rezerwacji i prawdopodobnie wymaga szybszej sieci, albo skorzystania z systemu stacjonarnego, co jest znacznie bardziej improwizowane i doraźne, pod względem liczby osób, które mogą wziąć udział (trzy to około maksimum na jednym końcu), jakości obrazu i dźwięku itp. Konferencje na biurku mogą być skuteczne między małymi, niepowiązanymi na przykład zespoły projektowe, szczególnie w połączeniu ze wspólnymi obiektami do obsługi dokumentów i tablic. (Możliwość „rysowania” myszą na obrazach udostępnianych w sieci.) Systemy takie jak te są dostępne jako standardowe oprogramowanie u większości głównych dostawców. Specjalistyczne studia, które często zawierają urządzenia do projekcji dokumentów, są lepsze na bardziej formalne okazje, ale oczywiście traci się możliwość zwołania spontanicznego spotkania, a konferencja nie staje się „normalnym” sposobem pracy. W praktyce wybór, który ma być używany, może być podyktowany dostępnością sieci w takim samym stopniu, jak cokolwiek innego. Usługi konferencyjne w studio są zazwyczaj oparte na łączach telekomunikacyjnych 2Mbit/s, co może być kosztowne. Konferencje na komputerze stacjonarnym, z ruchomymi obrazami o rozsądnej jakości, mogą być realizowane przez ISDN 64 kbit/s (patrz strona 28), chociaż często preferowane jest 128 kbit/s lub wyższe. Warunki te dotyczą pracy w szerokim obszarze. Jeśli możliwe jest działanie w sieci LAN, na przykład między ludźmi w parku naukowym, kampusie lub innym zbiorze lokalizacji, gdzie dane mogą być przesyłane z dużą prędkością, można użyć innych opcji, takich jak proste protokoły internetowe. Pomimo tego, że jest sprzedawany do użytku lokalnego lub rozległego, internetowe wideokonferencje przez sieć WAN zwykle zapewniają zatrważającą wydajność w większości obwodów, po prostu ze względu na duże opóźnienie sieci i niską przepustowość. Być może lepiej będzie użyć serii „fotografów”. Kolejna komplikacja pojawia się, jeśli konferencje mają obejmować więcej niż dwa miejsca. W takim przypadku istnieje potrzeba zapewnienia wielopunktowego mostka konferencyjnego, który łączy strumienie bitów z witryn, tak aby zaangażowane strony mogły widzieć innych uczestników w więcej niż jednej witrynie. Te mosty mogą znajdować się w witrynach firmowych, ale firmy telekomunikacyjne sprzedają również usługi pomostowe w swoich sieciach publicznych. Chociaż zwykle lepsza niż rozwiązania internetowe, jakość mostkowania telefonicznego, zwłaszcza opóźnienia między końcami, nie zawsze może być wystarczająco dobra, aby promować bezproblemową interakcję.

NARZĘDZIA PRACY WSPÓŁPRACY

Jeśli mamy osiągnąć coś w rodzaju pełnego potencjału globalizacji, nie możemy oczekiwać, że wszystkie interakcje międzyludzkie będą miały miejsce twarzą w twarz. Zamiast tego musimy używać narzędzi, które umożliwiają współpracę na odległość. Praca zespołowa wspomagana komputerowo (CSCW) to jedno ze zbiorowych terminów używanych do opisania działań, które zazwyczaj są wspierane nie tylko przez komputery, ale także przez infrastrukturę komunikacyjną. Zostało to wzmocnione na rysunku , który przedstawia najczęściej używane narzędzia, jako funkcję lokalizacji i czasu.

Jeśli ludzie mogą spotykać się razem w tym samym miejscu, w tym samym czasie, nie ma potrzeby korzystania z technologii (może z wyjątkiem, być może, pomocy w nagrywaniu protokołów). Jeśli wszyscy mieszkają w tym samym miejscu, łatwo jest zapewnić dostęp do wspólnych dokumentów lub zostawiać notatki na swoich biurkach. Bardziej interesujące opcje technologiczne pojawiają się, gdy dzieli je odległość. Nawet jeśli dzieli je odległość, mogą być dostępne w tym samym czasie. W takim przypadku mogą rozmawiać przez telefon lub korzystać z wideokonferencji. Kolejną opcją w czasie rzeczywistym jest możliwość udostępniania wspólnych danych na tablicy przez rozproszone zespoły. Ta funkcja umożliwia wyświetlanie tekstu i grafiki ze wspólnego serwera plików w każdej witrynie. Możliwe jest manipulowanie wyświetlanymi informacjami, np. za pomocą myszy „narysuj” okrąg wokół części diagramu i wyświetlając ten okrąg na wszystkich terminalach. Tekst dokumentu można również edytować, a wyniki uzgodnionych edycji następnie wykorzystać do aktualizacji pliku na serwerze.

PRACA WSPÓŁPRACA

Do tej pory przyjrzeliśmy się zautomatyzowanym procesom związanym z integracją wielu działań e-biznesu, ale niewiele powiedzieliśmy o procesach, które zależą od zaangażowania ludzi w organizacji. Z pewnością procesy obliczeniowe są „łączone”, aby uniknąć konieczności interwencji człowieka bardziej niż jest to konieczne. Nie chodzi tylko o zaoszczędzenie na zarobkach. Za każdym razem, gdy wymagamy od operatora ponownego wprowadzenia danych do systemu, wprowadzamy znaczny koszt awarii z powodu błędów. (Na przykład odnotowano, że od 20% do 40% wszystkich arkuszy kalkulacyjnych zawiera błędy). Nie możemy jednak całkowicie zrezygnować z ludzi. W rzeczywistości ludzie we właściwym miejscu, z odpowiednimi umiejętnościami, są najcenniejszym zasobem większości firm. Krytyczne negocjacje nadal toczą się między ludźmi, a nie maszynami, i nie ma poważnych perspektyw, aby ta zmiana się zmieniła w dającej się przewidzieć przyszłości, nawet pozwalając na szybki rozwój sztucznych agentów handlowych do zadań niekrytycznych. Dlatego, szczególnie w przypadku działań intrabusiness i interbusiness, wymagamy tworzenia środowisk typu „person-to-person”, które budują zaufanie i wspierają działania interpersonalne przez cały cykl ich życia. Wspólny model pracy zespołowej podkreśla potrzebę rozważenia jej w kategoriach trzech odrębnych, ale powiązanych ze sobą działań  – procesów, zespołów i działań indywidualnych.

Procesy, takie jak przyjmowanie i realizacja zamówień, projektowanie produktu itp. przepływają przez organizację, ale tylko w wyniku wspólnych działań zespołów osób, które mogą należeć do tej samej jednostki funkcjonalnej lub do różnych jednostek, nawet zlokalizowanych w różnych miejscach. O tych osobach należy myśleć jako o podejmowaniu określonych ról, np. urzędnik ds. zakupów, organ projektowy itp., a także jako osoby fizyczne. Rozróżnienie jest ważne: kupiec posiada zestaw obowiązków i uprawnień, np. prawo do podpisania zamówienia zakupu. Organizacyjnie każdy specjalista ds. zakupów „zrobi”, jeśli wymagany jest podpis. Jednak jako osoba fizyczna, że osoba wnosi konkretny talent i wiedzę do konkretnej domeny zakupowej – komputery, podróże i środki utrzymania itp. i należy się z nią skonsultować, jeśli ma dokonać dobrego osądu. Odnosząc to konkretnie do działania współpracującej infrastruktury komputerowej, widzimy, że musimy zachować te różnice i wzajemne powiązania. Rozważymy jeden z przykładów: przypadek obsługi wiadomości e-mail od klientów. W tym przypadku potrzebujemy oprogramowania, które może kierować pocztę do dowolnej grupy osób, a nie do pojedynczych osób, w taki sam sposób, w jaki automatyczny przełącznik połączeń kieruje przychodzące połączenia telefoniczne do dowolnego z wielu agentów call center. Powodem takiego postępowania jest to, że na centrum odbioru e-maili spoczywa zbiorowa odpowiedzialność za udzielenie szybkiej i pełnej odpowiedzi na zapytanie klienta, a nie czekanie, aż jedna konkretna osoba stanie się dostępna. Wiadomość e-mail jest kierowana do „centrum”, a nie do osoby (chyba, że, jak to jest możliwe w takich systemach, obsługa wyjątków nakazuje kierowanie poczty do konkretnej osoby). Z drugiej strony wspólne opracowywanie produktu, które obejmuje interakcję poszczególnych członków rozproszonego zespołu projektowego, wymaga nawiązania z nimi kontaktu w sposób, który promuje swobodny przepływ informacji, a także zachęca do empatii między tymi konkretnymi osobami. Jednym z takich mechanizmów są systemy konferencyjne.

PRZETWARZANIE TRANSAKCJI

Kompleksowy e-biznes obejmuje nie tylko więcej procesów niż tylko zapewnienie eSklepu; niektóre z tych procesów mają również bardziej krytyczne właściwości. Możemy być gotowi wrócić do sklepu, który nie zawsze pokazywał nam wszystko, co ma na stanie. Być może moglibyśmy tolerować taki, który twierdził, że ma przedmioty, z których go nie było. Ale bylibyśmy znacznie mniej chętni do ponownego odwiedzenia takiej, która zabrała naszą kartę kredytową i nigdy jej nie zwróciła ani nie obciążała jej zakupami innych osób. Jest kilka zadań, które należy wykonać całkowicie i poprawnie. Techniczne środki do osiągnięcia tego to przetwarzanie transakcji. Często używamy terminu „transakcja” dość luźno, w znaczeniu interakcji między stronami lub systemami. W tej sekcji używamy jednak tego słowa w znacznie bardziej ograniczonym sensie, aby opisać interakcje, które mają dość specyficzne właściwości.

† Atomowość: transakcje mają miejsce lub nie mają miejsca – nie ma czegoś takiego jak transakcja częściowo zakończona. Jeśli transakcja nie została w pełni zrealizowana, oznacza to niepowodzenie, a wszystkie dane i stany zaangażowanych systemów muszą powrócić do swoich wartości, tak jakby transakcja nigdy się nie rozpoczęła.

† Spójność: ogólne „zasady” procesu, w którym odbywa się transakcja, w żadnym momencie nie powinny zostać naruszone – na przykład rachunki finansowe powinny być zbilansowane przed, po i w trakcie transakcji.

† Izolacja: transakcje są przeprowadzane niezależnie od siebie, nawet jeśli kilka odbywa się jednocześnie w tym samym środowisku. Implikacją tego jest zakazanie dwóm transakcjom jednoczesnego działania na tym samym fragmencie danych.

† Trwałość: po zakończeniu transakcji jej wpływ na dane i stany systemu powinien się utrzymywać – skutki transakcji powinny trwać dłużej niż czas trwania procesu transakcyjnego.

Patrząc w mniej abstrakcyjny sposób, warunki te muszą wydawać się oczywiście rozsądne: jeśli pieniądze są przekazywane z jednego konta na drugie, końcowym produktem musi być zmniejszenie jednego konta i zwiększenie drugiego (pomniejszone o wszelkie opłaty za usługę). Pieniądze nie powinny „opuszczać” jednego konta i nie docierać na drugie, na przykład z powodu awarii sieci. Transakcja audytu i równoważenia, która w połowie swojej operacji tymczasowo zamienia saldo dodatnie na moim koncie na saldo ujemne, nie powinna pozwolić transakcji obliczania kredytu w rachunku bieżącym na zobaczenie zmienionych danych i naliczenie odsetek od kredytu w rachunku bieżącym. Wreszcie, po dokonaniu przelewu na moje konto, nie spodziewałbym się, że przelew zniknie, ponieważ program przetwarzający przeszedł na coś innego. Przetwarzanie transakcji jest dość trudne i tak naprawdę nie podziela trybu kulturowego twórców stron internetowych: nie chodzi o szybki sukces przedsiębiorczy; chodzi raczej o konsekwentne zapobieganie niepowodzeniom. Na szczęście przetwarzanie transakcji ma długą historię w systemach mainframe, takich jak IBM CICS i gotowe rozwiązania kompatybilne z siecią WWW. Szczegóły dotyczące tych systemów są złożone, ale warto zapoznać się z niektórymi związanymi z nimi zasadami. Centralnym elementem operacji jest koncepcja menedżera transakcji, który współdziała z wieloma menedżerami zasobów.

Rolą menedżera transakcji jest pełnienie roli centralnego punktu koordynującego szereg operacji bazodanowych związanych z transakcją. Współdziała z menedżerami zasobów, które są ochronnymi opakowaniami umieszczonymi wokół różnych baz danych. Gdy instancja transakcji jest tworzona (tj. gdy klient składa zamówienie), menedżer transakcji najpierw tworzy w pamięci zdefiniowaną przestrzeń dla tej konkretnej transakcji. Następnie kontaktuje się z odpowiednimi menedżerami zasobów, aby zwerbować ich do utworzenia instancji ich operacji na danych, które można prześledzić wstecz do tej konkretnej transakcji. Mówiąc dokładniej, rozważmy, w jaki sposób metody Enterprise JAVA JDBC pozwalają nam obsłużyć transakcję składającą się z wielu operacji na bazie danych. Załóżmy na przykład, że chcemy przyjąć zamówienie na niektóre towary, pod warunkiem, że kontrola kredytowa potwierdziła, że ​​klient ma środki.

† W przypadku prostej operacji JDBC za każdym razem, gdy wykonujemy operację na bazie danych, ta pojedyncza operacja jest uważana za transakcję. Linia kodu odpowiadająca „umieszczeniu adresu klienta w bazie danych wysyłkowych” doprowadziłaby natychmiast do tego. Proces odpowiedzialny za wysyłkę towaru, który przebiega asynchronicznie, umieściłby więc tę pozycję na liście do wysłania – czego nie chcemy, aby działo się to automatycznie.

† Musimy więc wyłączyć automatyczną zmianę danych w bazie danych. Robimy to za pomocą prostej instrukcji, która wyłącza funkcję „autocommit” w poleceniach JDBC. Odbywa się to za pomocą wiersza kodu, który zawiera oświadczenie: „.setAutoCommit(false)”. Zasadniczo zmiana w bazie danych jest zawieszona. Prawdopodobnie chcemy również zrobić podobną rzecz z fakturą rozliczeniową dla naszego klienta. W ten sposób wszystkie polecenia bazy danych w określonym bloku kodu mogą być trzymane w napięciu.

† Teraz otrzymujemy wiadomość zwrotną z bazy danych o kredytach mówiącą, że kredyt X jest dobry. Następnie reaktywujemy żądania do odpowiednich baz danych.

† Ale jeszcze nie skończyliśmy; wiele innych rzeczy może pójść nie tak: na przykład wpis danych może być błędny lub tymczasowo niedostępny. Po pierwsze, wszystkie bazy danych muszą zwrócić komunikat, że mogą skutecznie zmienić dane w zadowalający sposób. Dopiero gdy to zrobią, komenda „.commit” otrzyma flagę „prawda”, która sygnalizuje wszystkim bazom danych, że można bezpiecznie kontynuować zmianę danych. Polecenie również następnie zwalnia wszelkie blokady, które wymusili wobec innych procesów, które chciały uzyskać dostęp do tych samych danych. Proces ten jest znany jako zobowiązanie dwufazowe i jest podstawowym elementem przetwarzania transakcji.

† Ale załóżmy, że coś pójdzie nie tak: kredyt jest zły lub baza danych przewróciła się: w tym przypadku flaga to „false”, a program wydaje polecenie „.rollback”, które przerywa transakcję, pozostawia dane we wszystkich bazy danych bez zmian i usuwa wszelkie blokady danych. Rzeczy wracają dokładnie do tego, czym były przed próbą transakcji.

ARCHITEKTURY KOMPONENTOWE: OGRANICZENIA I ALTERNATYWY

Projektowanie oparte na komponentach jest stosunkowo nowe i nadal jest przedmiotem ożywionych dyskusji, w tym poważnej debaty na temat względnych zalet CORBA i DCOM. Względne zalety i wady często wynikają z różnych podejść przyjętych przez ich wynalazców: DCOM pochodzi ze stajni firmy Microsoft i, między innymi, daje znaczną moc klientom z systemem Windows. Aby podać tylko jeden przykład, DCOM garbage collection korzysta z prawa do niszczenia obiektów, gdy nie ma już do nich odniesień żaden klient. Z drugiej strony, CORBA zachowuje prawo serwera do utrzymywania tych obiektów, zapewniając w ten sposób lepszą skalowalność, ale wymagając napisania specjalistycznych rozwiązań dla każdej aplikacji. Nowy uczestnik, Enterprise Java, jest wyraźnie bardzo ważnym rozwiązaniem dla wymagań dotyczących  handlu elektronicznego i, w porównaniu z większością alternatyw, oferuje wygodne „proste” podejście. Jest to również, przynajmniej w zasadzie, w pełni otwarte rozwiązanie: niezależnie od konkretnego środowiska sprzętowego i programowego, na którym działa, wirtualna maszyna Java zapewnia programiście spójne środowisko programistyczne. Niestety, może to również stanowić problem: ponieważ kod maszyny wirtualnej musi zostać przetłumaczony na „prawdziwy” kod dla „prawdziwej” używanej maszyny, występują nieuniknione spadki wydajności, w szczególności szybkość. Z tego powodu deweloperzy w branżach, w których wymagane są procesy wymagające intensywnych transakcji, na przykład bankowość detaliczna, które generalnie zastrzegają ocenę, czy korporacyjna Java zapewni odpowiednie rozwiązanie. Inny problem pojawia się w przypadku starszego kodu: jak powiedzieliśmy, poprzez Java Native Interface (JNI) można zintegrować się z innymi językami, ale mogą pojawić się trudności z definicjami obiektów, które muszą być zakodowane w JAVA. Kontrastuje to z CORBA, która jest po prostu specyfikacją, pozwala na kodowanie obiektów w dowolnym języku, pod warunkiem, że istnieje funkcja biblioteki ORB. To dopiero początek, aby móc komentować bezpieczeństwo architektur komponentów. Można się martwić o moc, jaką DCOM daje klientom. Twierdzono również, że bezpieczeństwo CORBA jest nadal raczej szarą strefą. Mechanizmy bezpieczeństwa Javy powinny skorzystać na podejściu piaskownicy, chociaż należy zauważyć, że kod inny niż Java, połączony przez JNI, zachowa swoje własne luki. To powiedziawszy, zgodnie z naszą dyktaturą podaną w części 3.2 dotyczącą konieczności opracowania prostych operacyjnie procedur bezpieczeństwa, prawdopodobnie prawdą jest, że wszystkie omówione przez nas rozwiązania komponentowe ułatwią programistom ocenę bezpieczeństwa ich kodu niż dostępne wcześniej dla nich opcje. Na koniec powinniśmy zauważyć, że żadna z architektur nie została zaprojektowana z myślą o aplikacjach działających w czasie rzeczywistym, takich jak ciągłe przesyłanie strumieniowe wideo. Na razie nie jest to pilny wymóg, ale głupotą byłoby polegać na tym, by tak było przez dłuższy czas.

ENTERPRISE JAVA

Ostatnio dość nowatorskie podejście, Enterprise Java ,przenosi zdolność interoperacyjności na szereg funkcji Java, które działają na serwerach. Wśród innych zalet wymienia się znaczną poprawę czasu opracowywania . Programy Java działają na zasadzie, że działają na wirtualnej maszynie JAVA – oprogramowaniu działającym na dowolnym komputerze lub systemie operacyjnym, które zostało zdefiniowane tak, aby zachowywać się jak standardowa idealizacja komputera, niezależnie od tego, co znajduje się pod nim . Jednym ze szczególnych aspektów tych programów niezależnych od komputera jest serwlet Java. Serwlety działają na większości serwerów WWW (podobnie jak ich odpowiedniki klienckie, aplety, działają na większości przeglądarek klienckich) i działają w środowisku maszyny wirtualnej (lub „piaskownicy”). Jak pokazano na rysunku, typowe aplikacje serwletu mogą obejmować dostęp do bazy danych lub wywołanie zdalnej metody (RMI). Aplet jest wywoływany i ładowany do pamięci maszyny wirtualnej tylko raz, na początku uruchomionego programu, a następnie może obsługiwać kilka żądań jednocześnie, po prostu tworząc zduplikowany blok w innej części pamięci dla nowego zadania. (Jest to powszechnie stosowana technika obliczeniowa, w której każdy nowy bit kodu rezydującego w pamięci jest nazywany wątkiem, a proces nazywany jest wielowątkowością. Wielowątkowość jest wydajna i szybka, ponieważ nie musimy ładować i uruchamiać nowej wersji programu dla każdego zadanie.) Serwlety wykonują swoje wyspecjalizowane operacje za pośrednictwem interfejsów, takich jak Java Database Connectivity, JDBC (dla baz danych) i Remote Method Invocation, RMI (do uruchamiania zdalnych procesów lub metod, jak określa się je w modelu obiektowym, który Jest używane). RMI pełni funkcje podobne do CORBA; jego podejście zorientowane obiektowo pozwala na wywoływanie i interakcję z obiektami na zdalnych serwerach, za pośrednictwem kodów pośredniczących (instrukcje interfejsu po stronie klienta dla obiektu zdalnego) i szkieletów (kontrolki po stronie serwera do wywoływania obiektu i przekazywania do niego parametrów), podobnie do CORBA Odcinki IDL. Java posiada również Java Native Interface, JNI, który umożliwia integrację kodu C i C11 z programami Java. Jest to wygodny sposób integracji starszych programów ze środowiskiem Java, ale tylko wtedy, gdy mają interfejsy C lub C11. Jeśli tak nie jest, jednym z rozwiązań jest użycie CORBA jako oprogramowania pośredniczącego między Enterprise JAVA a starszą aplikacją. Można to wykorzystać na przykład do integracji dużych programów w języku COBOL i korporacyjnych aplikacji Java .

WARSTWA ŚRODOWISKA APLIKACJI INTERNETOWEJ

Powyższa dyskusja przeszła do czwartej warstwy na rysunku 1.26, która dotyczy rozwoju aplikacji w e-biznesie, które naprawdę wyróżniają go jako „on-line”. We wcześniejszych rozdziałach odnosiliśmy się do różnych elementów oprogramowania niezbędnych do podstawowych aplikacji detalicznych eCommerce: HTTP, HTML, aktywne strony, aktywne X, Java i tak dalej. Są one również wymagane w przypadku aplikacji wewnątrz- i wewnątrz-biznesowych, ale przy znacznie większej potrzebie bardziej złożonej interakcji między klientem a serwerem, na przykład: przetwarzanie transakcji, elektroniczna wymiana danych standardowych faktur, zlecenia typu call-off itp. Te aplikacje muszą również działać w trybie bardzo rozproszonym w tak zwanych architekturach n-warstwowych (tj. obejmujących kilka serwerów aplikacji) o wysokim stopniu niejednorodności sprzętu. Jak pokazuje rysunek 1.26, chcielibyśmy, aby aplikacje działały spójnie w środowiskach, które wykorzystują wiele systemów operacyjnych hosta, które mogą uruchamiać różne oprogramowanie pośredniczące i korzystać z różnych baz danych. Możliwe jest tworzenie aplikacji w wielu językach programowania, aby działały na przykład w oprogramowaniu pośredniczącym CORBA, i podobnie do pisania programów zapytań do baz danych, aby uzyskać dostęp do baz danych ORACLE SQL, IBM DB2 itp.