System prawny - Legacy system

W 2011 r. system MS-DOS był nadal używany w niektórych przedsiębiorstwach do uruchamiania starszych aplikacji, takich jak system zarządzania usługami spożywczymi marynarki wojennej Stanów Zjednoczonych .

W informatyce , przestarzały system to stara metoda, technologia, system komputerowy lub program użytkowy „z poprzedniego lub przestarzałego systemu komputerowego, odnoszący się do niego lub będący w jego użyciu”, ale nadal używany. Często nazywanie systemu „przeszłością” oznacza, że ​​utorował on drogę do standardów, które będą za nim podążać. Może to również oznaczać, że system jest przestarzały lub wymaga wymiany.

Starszy kod to starszy kod źródłowy komputera . Może po prostu odnosić się do istniejącej bazy kodu organizacji, która została napisana przez wiele lat, lub może sugerować, że baza kodu jest pod pewnym względem przestarzała lub wspiera coś przestarzałego. Kod długowieczny jest podatny na gnicie oprogramowania , w przypadku którego zmiany w środowisku wykonawczym lub otaczającego oprogramowania lub sprzętu mogą wymagać konserwacji lub emulacji w celu dalszego działania. Starszy kod może być obecny w celu obsługi starszego sprzętu, oddzielnego starszego systemu lub starszego klienta korzystającego ze starej funkcji lub wersji oprogramowania.

Chociaż termin ten zwykle odnosi się do kodu źródłowego, może również dotyczyć kodu wykonywalnego, który nie działa już w nowszej wersji systemu lub wymaga do tego warstwy kompatybilności . Przykładem może być klasyczna aplikacja Macintosh , która nie będzie działać natywnie w systemie Mac OS X , ale działa w środowisku Classic , lub aplikacja Win16 działająca w systemie Windows XP z funkcją Windows on Windows w XP.

Przykładem starszego sprzętustarsze porty, takie jak porty PS/2 i VGA oraz procesory ze starszymi, niezgodnymi zestawami instrukcji . Przykłady starszego oprogramowania obejmują starsze formaty plików, takie jak .swf w przypadku Adobe Shockwave lub .123 w przypadku Lotus 1-2-3 , oraz pliki tekstowe zakodowane za pomocą starszego kodowania znaków, takiego jak EBCDIC .

Przegląd

Chociaż od kwietnia 2014 r. nie ma wsparcia, system Windows XP wytrwał w ciągłym użytkowaniu w takich dziedzinach, jak oprogramowanie systemu operacyjnego bankomatów .

Pierwsze użycie terminu dziedzictwo do opisu systemów komputerowych miało miejsce prawdopodobnie w latach 70. XX wieku. W latach 80. powszechnie używano go w odniesieniu do istniejących systemów komputerowych, aby odróżnić je od projektowania i wdrażania nowych systemów. Legacy często słyszano podczas procesu konwersji, na przykład podczas przenoszenia danych ze starszego systemu do nowej bazy danych.

Chociaż termin ten może wskazywać, że niektórzy inżynierowie mogą uważać, że system jest nieaktualny, starszy system może być nadal używany z różnych powodów. Może być po prostu tak, że system nadal zaspokaja potrzeby użytkowników. Ponadto na decyzję o utrzymaniu starego systemu mogą mieć wpływ przyczyny ekonomiczne, takie jak wyzwania związane ze zwrotem inwestycji lub uzależnienie od dostawcy , nieodłączne wyzwania związane z zarządzaniem zmianą lub wiele innych przyczyn innych niż funkcjonalność. Kompatybilność wsteczna (taka jak zdolność nowszych systemów do obsługi starszych formatów plików i kodowania znaków ) to cel, który twórcy oprogramowania często uwzględniają w swojej pracy.

Nawet jeśli nie jest już używany, przestarzały system może nadal wpływać na organizację ze względu na swoją historyczną rolę. Dane historyczne mogły nie zostać przekonwertowane do nowego formatu systemowego i mogą istnieć w nowym systemie za pomocą niestandardowego przejścia schematu lub mogą istnieć tylko w hurtowni danych . W obu przypadkach wpływ na analizę biznesową i sprawozdawczość operacyjną może być znaczący. Dotychczasowy system może zawierać procedury lub terminologię, które nie są już istotne w bieżącym kontekście i mogą utrudniać lub mylić zrozumienie stosowanych metod lub technologii.

Organizacje mogą mieć przekonujące powody, aby zachować przestarzały system, takie jak:

  • System działa zadowalająco, a właściciel nie widzi powodu, aby go zmieniać.
  • Koszty przeprojektowania lub wymiany systemu są wygórowane, ponieważ jest duży, monolityczny i/lub złożony.
  • Przekwalifikowanie w nowym systemie byłoby kosztowne w straconym czasie i pieniądzach w porównaniu z oczekiwanymi znaczącymi korzyściami z zastąpienia go (które mogą być zerowe).
  • System wymaga niemal stałej dostępności , dlatego nie można go wyłączyć z eksploatacji, a koszt zaprojektowania nowego systemu o podobnym poziomie dostępności jest wysoki. Przykładami są systemy do obsługi kont klientów w bankach , komputerowe systemy rezerwacji , kontrola ruchu lotniczego , dystrybucja energii ( sieci energetyczne ), elektrownie jądrowe , wojskowe instalacje obronne oraz systemy takie jak baza danych TOPS .
  • Sposób działania systemu nie jest dobrze poznany. Taka sytuacja może mieć miejsce, gdy projektanci systemu opuścili organizację, a system nie został w pełni udokumentowany lub dokumentacja zaginęła.
  • Użytkownik oczekuje, że system będzie można łatwo wymienić, gdy zajdzie taka potrzeba.
  • Nowsze systemy wykonują niepożądane (zwłaszcza dla użytkowników indywidualnych lub nieinstytucjonalnych) funkcje drugorzędne, takie jak a ) śledzenie i raportowanie aktywności użytkowników i/lub b ) automatyczne aktualizowanie, które tworzy luki w zabezpieczeniach typu „ tylne drzwi ” i pozostawia użytkowników końcowych uzależnionych od dobra wiary i uczciwości sprzedawcy dostarczającego aktualizacje. Ten problem jest szczególnie dotkliwy, gdy tych drugorzędnych funkcji nowszego systemu nie można wyłączyć.

Problemy stwarzane przez starsze systemy komputerowe

Niektórzy inżynierowie oprogramowania uważają starsze systemy za potencjalnie problematyczne z kilku powodów.

  • Jeśli starsze oprogramowanie działa tylko na przestarzałym sprzęcie , koszt utrzymania systemu może ostatecznie przewyższyć koszt wymiany zarówno oprogramowania, jak i sprzętu, chyba że jakaś forma emulacji lub wsteczna kompatybilność pozwala na działanie oprogramowania na nowym sprzęcie.
  • Systemy te mogą być trudne do utrzymania, ulepszania i rozszerzania, ponieważ istnieje ogólny brak zrozumienia systemu; pracownicy, którzy byli ekspertami w tej dziedzinie, przeszli na emeryturę lub zapomnieli o tym, co o niej wiedzieli, a pracownicy, którzy weszli w tę dziedzinę po tym, jak stała się ona „dziedzictwem”, nigdy się o tym nie dowiedziały. Może to pogorszyć brak lub utrata dokumentacji. Linia lotnicza Comair zwolniła swojego dyrektora generalnego w 2004 r. z powodu awarii przestarzałego, starszego systemu planowania załogi, który napotkał ograniczenie nieznane nikomu w firmie.
  • Starsze systemy mogą mieć luki w starszych systemach operacyjnych lub aplikacjach z powodu braku dostępnych lub stosowanych poprawek zabezpieczeń. Mogą również występować konfiguracje produkcyjne, które powodują problemy z bezpieczeństwem. Problemy te mogą narazić stary system na ryzyko złamania zabezpieczeń przez osoby atakujące lub znających się na rzeczy osoby z wewnątrz.
  • Integracja z nowszymi systemami może być również trudna, ponieważ nowe oprogramowanie może wykorzystywać zupełnie inne technologie. Integracja między technologiami jest dość powszechna w informatyce, ale integracja między nowszymi i znacznie starszymi technologiami nie jest powszechna. Po prostu może nie być wystarczającego zapotrzebowania na rozwój technologii integracyjnej. Część tego kodu „kleju” jest od czasu do czasu opracowywana przez sprzedawców i entuzjastów określonych starszych technologii.
  • Ograniczenia budżetowe często sprawiają, że korporacje nie zajmują się potrzebą wymiany lub migracji starszego systemu. Jednak firmy często nie biorą pod uwagę rosnących kosztów obsługi technicznej (ludzi, oprogramowania i sprzętu, wszystkie wymienione powyżej) i nie biorą pod uwagę ogromnej utraty zdolności lub ciągłości biznesowej w przypadku awarii starszego systemu. Gdy te względy zostaną dobrze zrozumiane, wówczas oparte na sprawdzonym ROI nowej, bezpieczniejszej, zaktualizowanej platformy stosu technologii nie jest tak kosztowna jak alternatywa – i budżet jest określony.
  • Ze względu na fakt, że większość starszych programistów wchodzi w wiek emerytalny, a liczba zastępujących ich młodych inżynierów jest bardzo mała, istnieje alarmujący niedobór dostępnej siły roboczej. To z kolei powoduje trudności w utrzymaniu starszych systemów, a także wzrost kosztów pozyskania doświadczonych programistów.

Ulepszenia w starszych systemach oprogramowania

Tam, gdzie nie jest możliwe zastąpienie dotychczasowych systemów poprzez praktykę wycofywania aplikacji , nadal można je ulepszyć (lub „odmienić”). Większość rozwoju często polega na dodawaniu nowych interfejsów do starszego systemu. Najbardziej znaną techniką jest zapewnienie interfejsu opartego na sieci WWW dla terminalowej aplikacji mainframe. Może to zmniejszyć wydajność personelu ze względu na wolniejsze czasy reakcji i wolniejsze działania operatora przy użyciu myszy, ale często jest to postrzegane jako „ulepszenie”, ponieważ styl interfejsu jest znany niewykwalifikowanym użytkownikom i jest dla nich łatwy w użyciu. John McCormick omawia takie strategie, które obejmują oprogramowanie pośredniczące .

Ulepszenia drukowania są problematyczne, ponieważ starsze systemy oprogramowania często nie dodają instrukcji formatowania lub używają protokołów, których nie można używać w nowoczesnych drukarkach PC/Windows. Serwer wydruku może być użyty do przechwycenia danych i przetłumaczenia ich na bardziej nowoczesny kod. Dokumenty w formacie Rich Text Format (RTF) lub PostScript mogą być tworzone w starszej aplikacji, a następnie interpretowane na komputerze przed wydrukowaniem.

Środki bezpieczeństwa biometrycznego są trudne do wdrożenia w starszych systemach. Praktycznym rozwiązaniem jest użycie serwera proxy Telnet lub HTTP do umieszczenia między użytkownikami a komputerem mainframe w celu zaimplementowania bezpiecznego dostępu do starszej aplikacji.

Zmiana podejmowana w niektórych organizacjach polega na przejściu na oprogramowanie do zautomatyzowanych procesów biznesowych (ABP), które generuje kompletne systemy. Systemy te mogą następnie łączyć się ze starszymi systemami organizacji i wykorzystywać je jako repozytoria danych . Takie podejście może zapewnić szereg istotnych korzyści: użytkownicy są odizolowani od nieefektywności dotychczasowych systemów, a zmiany można szybko i łatwo wprowadzić do oprogramowania ABP.

Model napędzany wsteczny i do przodu technika podejścia mogą być również wykorzystywane do poprawy oprogramowania starszego typu.

Przykład NASA

Andreas Hein z Politechniki Monachijskiej badał wykorzystanie starszych systemów w eksploracji kosmosu. Według Heina starsze systemy są atrakcyjne do ponownego wykorzystania, jeśli organizacja ma możliwości weryfikacji, walidacji, testowania i historii operacyjnej. Te możliwości muszą być zintegrowane z różnymi fazami cyklu życia oprogramowania, takimi jak opracowywanie, wdrażanie, użytkowanie lub konserwacja. W przypadku systemów oprogramowania kluczowe znaczenie ma zdolność użytkowania i konserwacji systemu. W przeciwnym razie system będzie coraz mniej zrozumiały i łatwy w utrzymaniu.

Według Heina weryfikacja, walidacja, testowanie i historia operacyjna zwiększają zaufanie do niezawodności i jakości systemu. Jednak gromadzenie tej historii jest często kosztowne. Wycofany obecnie program promu kosmicznego NASA wykorzystywał dużą ilość technologii z lat 70. XX wieku. Wymiana była nieopłacalna ze względu na kosztowny wymóg certyfikacji lotu. Oryginalny sprzęt spełnił kosztowny wymóg integracji i certyfikacji do lotu, ale każdy nowy sprzęt musiałby ponownie przejść przez cały proces. Ten długi i szczegółowy proces wymagał szeroko zakrojonych testów nowych komponentów w ich nowych konfiguracjach, zanim pojedyncza jednostka mogła zostać wykorzystana w programie Space Shuttle. W ten sposób każdy nowy system, który rozpoczął proces certyfikacji, staje się de facto systemem odziedziczonym do czasu zatwierdzenia go do lotu.

Dodatkowo cały system Space Shuttle, w tym zasoby naziemne i rakiety nośne, został zaprojektowany do współpracy jako system zamknięty. Ponieważ specyfikacje się nie zmieniły, wszystkie certyfikowane systemy i komponenty sprawdziły się dobrze w rolach, dla których zostały zaprojektowane. Jeszcze przed planowanym wycofaniem wahadłowca w 2010 r. NASA uznała za korzystne dalsze korzystanie z wielu elementów technologii z lat 70. zamiast ulepszania tych systemów i ponownej certyfikacji nowych komponentów.

Perspektywy starszego kodu

Niektórzy inżynierowie oprogramowania wolą opisywać „przestarzały kod” bez konotacji, że jest przestarzały. Do najbardziej rozpowszechnionych koncepcji neutralnych należą kod źródłowy odziedziczony po kimś innym oraz kod źródłowy odziedziczony ze starszej wersji oprogramowania . Eli Lopian, dyrektor generalny Typemock, określił go jako „kod, którego programiści boją się zmienić”. Michael Feathers wprowadził definicję przestarzałego kodu jako kodu bez testów , co odzwierciedla perspektywę trudności w pracy z przestarzałym kodem, częściowo ze względu na brak zautomatyzowanych testów regresji . Zdefiniował również testy charakteryzacyjne, aby rozpocząć testowanie starszego kodu .

Ginny Hendry scharakteryzowała tworzenie kodu jako wyzwanie dla obecnych programistów, aby stworzyć kod, który jest „jak inne dziedzictwo w naszym życiu – jak antyki, pamiątki i historie, które są pielęgnowane i z miłością przekazywane z pokolenia na pokolenie. kod był czymś, z czego byliśmy dumni?".

Dodatkowe zastosowania terminu Legacy w informatyce

Termin „ wsparcie starszej wersji” jest często używany w połączeniu ze starszymi systemami. Termin może odnosić się do cechy nowoczesnego oprogramowania. Na przykład systemy operacyjne z „obsługą starszych wersji” mogą wykrywać i używać starszego sprzętu. Termin ten może być również używany w odniesieniu do funkcji biznesowej; np. dostawca oprogramowania lub sprzętu, który wspiera lub zapewnia konserwację oprogramowania dla starszych produktów.

Produkt „starszy” może być produktem, który nie jest już sprzedawany, utracił znaczny udział w rynku lub jest wersją produktu, która nie jest aktualna. Starszy produkt może mieć pewną przewagę nad nowoczesnym produktem, co czyni go atrakcyjnym dla klientów, aby go trzymać. Produkt jest naprawdę „przestarzały” tylko wtedy, gdy nikomu nie daje korzyści – jeśli żadna osoba podejmująca racjonalną decyzję nie zdecydowałaby się na nabycie go nowego.

Termin „starszy tryb” często odnosi się konkretnie do wstecznej kompatybilności . Mówi się, że oprogramowanie, które może działać tak, jakby było poprzednią wersją samego siebie, „działa w trybie starszej wersji”. Ten rodzaj funkcji jest powszechny w systemach operacyjnych i przeglądarkach internetowych, w których wiele aplikacji zależy od tych podstawowych komponentów.

W erze komputerów mainframe wiele aplikacji działało w trybie starszej wersji. W nowoczesnym biznesowym środowisku komputerowym architektury n-warstwowe lub 3-warstwowe są trudniejsze do wprowadzenia w tryb starszej wersji, ponieważ zawierają wiele komponentów tworzących jeden system.

Technologia wirtualizacji to niedawna innowacja, która umożliwia starszym systemom dalsze działanie na nowoczesnym sprzęcie dzięki uruchamianiu starszych systemów operacyjnych i przeglądarek na oprogramowaniu, które emuluje starszy sprzęt.

Architektura terenów poprzemysłowych

Programiści zapożyczyli pojęcie terenów poprzemysłowych z branży budowlanej, gdzie wcześniej zagospodarowane tereny (często zanieczyszczone i opuszczone) określane są mianem terenów poprzemysłowych .

  • Architektura brownfield to rodzaj architektury oprogramowania lub sieci, który obejmuje starsze systemy.
  • Wdrożenie typu brownfield to aktualizacja lub dodatek do istniejącego oprogramowania lub architektury sieciowej, która zachowuje starsze komponenty.

Widok alternatywny

Istnieje alternatywna pozytywna opinia — rosnąca od końca bańki Dotcom w 1999 r. — że starsze systemy to po prostu działające systemy komputerowe:

Starszy kod ” często różni się od sugerowanej alternatywy tym, że działa i jest skalowany.

Analitycy IT szacują, że koszt zastąpienia logiki biznesowej jest około pięciokrotnie wyższy niż w przypadku ponownego użycia, pomijając nawet ryzyko awarii systemu i naruszeń bezpieczeństwa. Idealnie byłoby, gdyby firmy nigdy nie musiały przerabiać większości podstawowej logiki biznesowej: debety = kredyty to odwieczny wymóg.

Branża informatyczna reaguje „tradycyjną modernizacją” i „starszą transformacją”: odnawiając istniejącą logikę biznesową za pomocą nowych interfejsów użytkownika, czasami wykorzystując zrzut ekranu i dostęp z obsługą usług za pośrednictwem usług internetowych . Techniki te pozwalają organizacjom zrozumieć ich istniejące zasoby kodu (przy użyciu narzędzi do wykrywania), dostarczać nowe interfejsy użytkownika i aplikacji do istniejącego kodu, usprawniać przepływ pracy, ograniczać koszty, minimalizować ryzyko i cieszyć się klasycznymi cechami usług (prawie 100% dostępności, bezpieczeństwa, skalowalności itp.).

Ten trend zachęca również do refleksji nad tym, co sprawia, że ​​starsze systemy są tak trwałe. Technolodzy od początku na nowo uczą się znaczenia architektury dźwięku , aby uniknąć kosztownych i ryzykownych przepisywania. Najpopularniejszymi starszymi systemami są te, które obejmowały dobrze znane zasady architektury IT, z dokładnym planowaniem i ścisłą metodologią podczas wdrażania. Źle zaprojektowane systemy często nie są trwałe, zarówno dlatego, że się zużywają, jak i dlatego, że ich wrodzone wady wymagają wymiany. W ten sposób wiele organizacji na nowo odkrywa wartość zarówno swoich starszych systemów, jak i teoretycznych podstaw tych systemów.

Zobacz też

Bibliografia

Dalsza lektura

Zewnętrzne linki