RSS
 

Archiwum dla kategorii ‘4. Współczesne środowiska oraz technologie programistyczne’

Programowanie współbieżne. Systemy kontroli wersji

16 paź

Współczesne oprogramowanie komputerowe nie ogranicza się do jednej czynności w danym czasie,, lecz pozwala na jednoczesne wykonywanie wielu zadań. Te zadania zwane są procesami. Każdy proces może zawierać w sobie wiele wątków (ang. threads). Wątki są najmniejszą, elementarną częścią programu, odpowiedzialną zwykle za jedną funkcję.

Programowanie współbieżne (ang. concurrent programming) to paradygmat programowania, którego celem jest wykorzystanie w ramach jednej aplikacji wielu procesów lub wątków do wykonywania działań na współdzielonych danych.

Programowanie współbieżne pozwala na lepsze wykorzystanie zasobów systemu komputerowego i w rezultacie przyspieszenie działania utworzonego programu. Prowadzi ono jednak do licznych problemów związanych z zarządzaniem współdzielonymi danymi. W związku z tym ważna jest synchronizacja prazy poszczególnych wątków, co realizuje się poprzez takie mechanizmy, jak semafory i monitory. Celem tych dwóch mechanizmów jest umożliwienie komunikacji międzyprocesowej w celu przekazywania informacji na temat obecnie używanych i zablokowanych zasobów.

Systemy kontroli wersji
Systemy kontroli wersji
to narzędzie używane do śledzenia zmian w kodzie źródłowym, pozwala na przypisywanie kolejnego numeru oznaczającego wersję tworzonej aplikacji do każdej modyfikacji kodu źródłowego.

Podstawowa klasyfikacja systemów kontroli wersji obejmuje:
- systemy scentralizowane,
- systemy rozproszone.

Systemy scentralizowane działają z wykorzystaniem architektury klient-serwer, w której użytkownicy pracują nad jednym wspólnym repozytorium zawierającym kod źródłowy. Systemy rozproszone działają na zasadzie węzłów równorzędnych (ang. peer-to-peer). Pozwala to na napisanie niezależnych kodów źródłowych, fizycznie zlokalizowanych u użytkownika, a następnie ich synchronizację.

Systemy kontroli wersji można również podzielić na śledzące zmiany zawartości plików przez opis ich zmian oraz oparte na zestawach zmian. W pierwszym przypadku zmiana nazwy pliku może oznaczać śledzenie wersji pliku od początku. W drugim przypadku mechanizm zestawu zmian jest używany do oznaczania plików, nawet jeżeli zmieniają swoją lokalizację oraz nazwę.

 

Programowanie komponentowe i sterowane zdarzeniami

15 paź

Programowanie komponentowe pozwala na używanie predefiniowanych usług, które zapewniają realizację określonej funkcjonalności systemu informatycznego.

Komponent jest podstawową jednostką używaną do budowy oprogramowania, zawierającą określoną przez twórcę komponentu funkcjonalność.

Komponent ma jasno sprecyzowane interfejsy, które pozwalają na komunikację pomiędzy komponentami. Wszystkie wymagane przez komponent zależności są zdefiniowane tak, aby umożliwić osobom trzecim, niebędącym jego twórcami, wdrożenie komponentu. Zwykle komponent wykorzystywany jest przez wiele osób do tworzenia niezależnych od siebie aplikacji.

Programowanie sterowane zdarzeniami (ang. event-driven programming) to metoda programowania której celem jest pisanie oprogramowania działającego w oparciu o zdarzenia generowane najczęściej przez użytkownika.

Zdarzeniami jest obiekt opisujący konkretną zmianę źródła zdarzenia. Źródłem zdarzenia jest zawsze obiekt generujący zdarzenia.

 

Środowisko Microsoft .NET

14 paź

Środowisko programistyczne Microsoft .NET powstało w celu usprawnienia procesu tworzenia aplikacji działających w rozproszonym otoczeniu. Technologia .NET ma następujące cechy:
- przetwarzanie rozproszone
– tworzenie aplikacji klient/serwer, opartej na standardach internetowych,
- programowanie komponentowe – dostarczanie uproszonego modelu tworzenia oraz używania komponentów,
- usługi typu Enterprise (ang. enterprise services) – możliwość rozwijania aplikacji bez konieczności pisania kodu aplikacji biznesowych do zarządzania transakcjami i bezpieczeństwem,
- paradygmat dotyczący zmian webowych – możliwość dostosowania tworzonych usług i aplikacji do wymagań związanych ze zmianami i udoskonaleniami technologii internetowych,
- narzędzie pozwalające na skalowalność, dostępność oraz zarządzanie tworzonym oprogramowaniem, a także współpracę z innymi aplikacjami.

Środowisko Microsoft Visual Studio .NET pozwala na tworzenie aplikacji, które są uruchamiane na systemach operacyjnych większości popularnych urządzeń. Centralnym punktem są usługi .NET, z których najważniejsze to:
- model programowania do tworzenia stron HTML – ASP.NET, którego celem jest dostarczenie zintegrowanego systemu, pozwalającego na pisanie aplikacji webowych,
- podejście do udostępniania funkcjonalności aplikacjom klienckim – XML Web Services, umożliwiające uruchomienie poszczególnych usług na dowolnym systemie operacyjnym.

Całość aplikacji powstaje z wykorzystaniem .NET Framework, czyli środowiska do uruchamiania aplikacji (ang. run-time environment), które ma mechanizmy automatycznego zarządzania pamięcią oraz łatwy dostęp do wszystkich usług systemowych.

Poszczególne składniki .NET Framework to:
- usługi webowe, dostarczające funkcjonalność środowiska rozproszonego dla tworzonych aplikacji,
- formatki webowe oraz systemu Windows, które pozwalają na wizualizację projektowanych aplikacji,
- dane oraz klasy XML, dostarczające jednolity sposób opisu komponentów tworzonych aplikacji,
- podstawowe klasy .NET Framework, które umożliwiają działanie utworzonej aplikacji w różnych środowiskach,
- CLR, czyli środowisko uruchomieniowe wspólnego języka, będące centralnym punktem . NET Framework, pozwalającym na pracę programów na wielu różnych platformach systemów operacyjnych.

 

Rodzaje środowisk. Środowisko J2EE i WAS

13 paź

Współczesne programy są tworzone z wykorzystaniem zintegrowanych środowisk programistycznych. Środowisko to stanowi logicznie spójny zestaw programów służących do tworzenia i utrzymywania aplikacji. W skład takiego środowiska zwykle wchodzą: edytor kodu źródłowego, translator, program śledzący wykonywanie programu (ang. debugger), repozytorium gotowych komponentów oraz system kontroli wersji. Każde środowisko umożliwia wykorzystanie różnych paradygmatów programowania.

Środowisko Sun Microsystems J2EE oraz IBM Websphere Application Server
Technologia J2EE (Sun Microsystems Java 2 Platform, Enterprice Edition) definiuje standard tworzenia aplikacji oparty na architekturze wielowarstwowej. Oprogramowanie jest pisane w języku Java, co pozwala na uruchomienie napisanych programów teoretycznie na dowolnej platformie sprzętowej, systemie operacyjnym oraz serwerze aplikacji. Architektura J2EE pozwala na izolowanie logiki aplikacji od środowiska wykonania.

Technologia JSEE pozwala na stosowanie następujących rozwiązań:
- aplety (ang. applets) – są to małe programy osadzone zwykle na stronach WWW, wykonane po stronie klienta,
- serwlety (ang. servlets) – podobnie jak aplety, są to programy osadzone na stronach internetowych, ale wykonywane po stronie serwera,
- JavaBeans – są to niezależne moduły wywołane oraz uruchamiane w programach, opracowane przez firmę Sun Microsystems, działające zwykle po stronie klienta,
- Enterprise JavaBeans – (EJB) – rozszerza środowisko JavaBeans o komunikację w środowisku rozproszonym oraz programowanie transakcyjne, zwykle stosowane po stronie serwera,
- Java Server Pages (JSP) – pozwala na tworzenie dynamicznych dokumentów WWW w formatach HTML, XHTML, DHTML oraz XML poprzez umieszczenie programu napisanego w języku Java w ramach strony WWW,
- Java 2 Software Development Kit (J2SDK) – zawiera podstawowe narzędzia do kompilacji i uruchamiania programów napisanych w języku Java.

Platforma Micro Edition (J2ME) jest przeznaczona dla urządzeń kieszonkowych. Platforma Standard Edition (J2SE) została zaprojektowana z myślą o implementacji rozwiązań dla użytkowników domowych oraz niewielkich aplikacji dla serwerów grup roboczych. Platforma Enterprice Edition (J2EE) pozwala na tworzenie aplikacji serwerowych dla systemów o dużej wydajności, tj. serwery grup roboczych czy też serwery high-end.

Na technologii J2EE opiera się IBM Websphere Application Server (WAS).

Serwer aplikacji to zestaw oprogramowania wspierający programistę podczas tworzenia aplikacji umożliwiając oddzielenie logiki biznesowej od usług dostarczanych przez dostawcę platformy.

Technologia IBM WAS wykorzystuje otwarte standardy XML oraz Web Services, co pozwala na współpracę z większością serwerów sieciowych. WAS dostarcza bezpieczną, skalowaną oraz elastyczną infrastrukturę dla architektury zorientowanej na usługi. WAS pozwala również na implementację rozwiązań dla systemów operacyjnych.