Otwarta architektura w odniesieniu do programowania komputerowego odnosi się do systemu sprzętowego, sieci lub nawet oprogramowania, które może być rozbudowywane przez użytkowników w celu zapewnienia nowej lub rozszerzonej funkcjonalności. W przypadku oprogramowania otwarta architektura oznacza, że podczas gdy program działa samodzielnie, dostępny jest albo cały kod źródłowy programu, albo zestaw rozwojowy, dzięki czemu użytkownicy mogą przepisywać części oprogramowania lub opracowywać wtyczki i rozszerzenia, aby umożliwić program do wykonywania nowych zadań. Komputer lub inny system sprzętowy, który wykorzystuje otwartą architekturę, jest zwykle skonstruowany w taki sposób, aby użytkownicy mogli zmieniać, usuwać lub aktualizować komponenty w systemie. Umożliwia także użytkownikom dodawanie dodatkowego sprzętu lub modyfikowanie elementów systemu w celu zwiększenia możliwości maszyny lub uproszczenia jej w kierunku pojedynczego zadania. System lub fragment oprogramowania, który jest ustawiony i nie może być modyfikowany, jest znany jako wykorzystujący zamkniętą architekturę, ale można go również nazwać systemem zastrzeżonym.
Jedną z cech korzystania z otwartej architektury jest to, że system lub oprogramowanie, które otrzymuje użytkownik końcowy, może być postrzegane bardziej jako narzędzie ogólne. Jeśli potrzeby użytkownika lub firmy ulegną zmianie, sprzęt lub oprogramowanie można zmienić, aby pozostały aktualne bez konieczności całkowitego usuwania całego systemu, który już istnieje. W zależności od rodzaju systemu, takiego jak sieć lub system operacyjny, możliwa jest pełna zmiana podstawowego funkcjonowania, aby dostosować się do zmieniających się technologii lub nowych paradygmatów biznesowych. Może to być szczególnie ważne w przypadku komputerów i sprzętu sieciowego, gdzie komponenty mogą być regularnie aktualizowane w miarę postępu technologii bez niszczenia już zainstalowanej struktury.
The concept of open architecture arose from the development of systems that were completely closed. The earliest types of systems offered no way to upgrade components, and software had no mechanism in place for extensions. These proprietary systems had limited use and, as the pace of advancements increased, became obsolete increasingly faster.
Chociaż w branży komputerowej wciąż są powszechnie stosowane systemy zgodne z prawem, wiele z nich oferuje możliwość uaktualnienia lub rozszerzenia podstawowych funkcji. W przeciwieństwie do systemu o otwartej architekturze, w którym kilku dostawców może zapewnić różne i konkurencyjne uaktualnienia, uaktualnienia zastrzeżone są zwykle dostępne tylko u producenta systemu i mogą wymagać wysokiej ceny za dostęp. Poleganie na jednym producencie jako źródle wszystkich części, wtyczek i aktualizacji systemu jest jednym z powodów, dla których w zastosowaniach na dużą skalę przedkłada się otwartą architekturę nad systemy zastrzeżone.