Trochę o komponentach oraz RAS...

PL
Data dodania: 2011-10-07, Autor: Jacek Jankowski, Dodał: Karol, Wyświetleń: 297

Niniejszy artykuł poświęcony jest:

  • Systematyce serwisu ComponentSource, zajmującego się sprzedażą komponentów – opowiem, jak serwis ten radzi sobie z podziałem oraz opisem komponentów
  • RAS - Reusable Asset Specification – specyfikacji grupy OMG dostarczającej wskazań oraz rekomendacji o strukturze, zawartości oraz opisu zasobów programowych, możliwych do ponownego użycia

I. ComponentSource...

  • Jest to pierwszy serwis udostępniający „oprogramowanie z półki” - COTS - komponenty gotowe do natychmiastowego użycia – utworzony w 1995 roku… Założyciele wówczas stwierdzili, że tylko kwestią czasu będzie, zanim podejście do budowania oprogramowania z bloków – komponentów (CBD Component-Based Development ), stanie się wiodącym podejściem przy budowie oprogramowania.
  • Szybko dowiedziono opłacalności korzystania z gotowych komponentów.
  • Współpracuje z kilkoma grupami wliczając Object Management Group (OMG) oraz Rational Software – grupami zajmującymi się RAS

1. ComponentSource - systematyka

ComponentSource to źródło komponentów oraz narzędzia dla wszystkich platform - włączając .NET, COM, Java, J2EE, VCL, CLX oraz CORBA – to ponad 100 kategorii. Oto niektóre :

  • 3D Modeling
  • Artificial Intelligence
  • Data Veryfication
  • Database Management
  • Drawing
  • eCommerce
  • E-mail
  • Grids
  • Imaging
  • Instalation
  • Maths and stats
  • PDF Creation
  • Print and preview
  • Reporting
  • Search
  • User Interface

Możemy wyszukiwać komponenty według typu produktu :

  • Komponenty :
    • .Net
    • ActiveX/COM
    • Java
    • C++/MFC
    • DLL
    • VCL
  • Narzędzia :
    • Windows
    • Linux
    • Unix

oraz według typu platformy :

  • Microsoft :
    • Visual Basic
    • Visual Basic .NET
    • Visual Studio .NET
    • Access
  • Borland :
    • Delphi
    • C++ Builder
    • ... oraz IBM, BEA, Sun, Sybase, Oracle

2. ComponentSource - Komponenty .Net

Jeśli próbujemy znaleźć konkretny komponent, to możemy go szukać we wszystkich (około 100) kategoriach, bądź skorzystać z filtru. Dla .Net mamy cztery filtry :

  • .Net WinForm
  • .Net WebForm
  • .Net Class
  • .Net Web Service

Jeśli już znaleźliśmy potrzebny nam typ komponentu, a jest ich więcej niż jeden, to widzimy swoisty ranking komponentu – który z nich jest najczęściej kupowany, jaki sprzedawca jest najbardziej zaufany.

* Poniżej zamieściłem screeny ze strony ComponentSource, z momentu, gdy szukałem komponentów pomocnych przy podglądzie wydruku i drukowaniu...

* * * * * * * * * * * * * * * * * * * * ... Ranking komponentów ... * * * * * * * * * * * * * * * * * * * *

* * * * * * * * * * * * * * * * * * * * * * * * ... Ogólny opis ... * * * * * * * * * * * * * * * * * * * * * * *

* * * * * * * * * * * * * * * * ... Co możemy ściągnąć za darmo...:) * * * * * * * * * * * * * * * *

* * * * * * * * * * * * * * * * * * ... Wymagania i kompatybilność ... * * * * * * * * * * * * * * * * *

* * * * * * * * * * * * * * * * ... Informacje o twórcy komponentu ... * * * * * * * * * * * * * * * *

* * * * * * * * * * * * * * * ... Komentarze o danym komponencie ... * * * * * * * * * * * * * * *

Mając pytania, możemy się zwrócić bezpośrednio do wykonawcy komponentu, możemy także zwrócić się o pomoc na Forum – ostatnia zakładka!

3. Podsumowując...:)

  • Serwis ComponentSource jest wyjątkowym źródłem gotowych komponentów – jest przejrzysty, łatwy w obsłudze, a co najważniejsze, wiarygodny.
  • Sprawdzony już na rynku, współpracujący z wieloma ośrodkami badawczymi ciągle się rozwija – ma już ponad 720.000 użytkowników !!!
  • Ogromna ilość komponentów dla wielu platform i technologii.
  • Komponenty są bardzo dobrze udokumentowane, dostępne są przykłady.
  • Możliwość uzyskania pomocy 24 godziny na dobę...

II. RAS - Reusable Asset Specification

1. Teraz kilka słów o RAS... Co to właściwie jest...

  • RAS - Reusable Asset Specification – specyfikacja grupy OMG dostarczająca wskazania oraz rekomendacje o strukturze, zawartości oraz opisu zasobów programowych, możliwych do ponownego użycia.
  • Dostarcza standardu do archiwizacji (pakowania) zasobów programowych – wszystkich tzw. artefaktów, które rozwiązują problem (lub wiele problemów) na różnych etapach cyklu życia oprogramowania
  • Spakowane zasoby są, krótko mówiąc, zestawem plików, które implementują rozwiązanie oraz ustrukturalizowany zestaw meta-informacji, które definiują i opisują zasób (reusable asset) jako całość.
  • RAS jest ważną częścią procesu Asset-based Development (ABD), promującego i zachęcającego do wielokrotnego wykorzystania (techniki reuse) zasobów (development assets) we wszystkich fazach procesu wytwórczego

2. RAS – czemu powstał?

Rynek IT często zakłada, że programowanie w oparciu o komponenty jest aktualnie najlepszą drogą do wytwarzania oprogramowania. Istnieją jednak poważne problemy…

  • Jak dokładnie dostawca opisuje komponent
  • Jak umożliwić dostawcom współpracę na rynku komponentów
  • Czy komponent jest konfigurowalny?
  • Skąd klient ma wiedzieć, czy komponent jest właściwy dla potrzeb firmy? Czy będzie działał w określonym środowisku? W jakim języku jest napisany?

Trzeba rozwiązać dwa zasadnicze problemy, zanim technika reuse będzie w pełni realizowana…

  • Trzeba ustalić standard specyfikacji komponentów na wszystkich poziomach – na poziomie biznesowym, jak i poziomie implementacji – potrzebne jest porozumienie…
  • Jakość zasobów musi być na bardzo wysokim poziomie – szczególnie wiarygodność, niezawodność oraz utrzymywalność…

   3. RAS – Reusable Assets

Krótko mówiąc, reusable assets (zasoby do wielokrotnego użytku) dostarczają rozwiązanie problemu dla danego kontekstu. Ilustracja poniżej pokazuje pogląd na taki zasób. Zasób może mieć zmienne (variability points), których ustawienie jest jedyną drogą konfiguracji komponentu dla klienta. Zasób ponadto jest opisany przez reguły użycia – instrukcje opisujące, jak komponent czy inny zasób może i powinien być używany…

Artefaktami możemy nazwać każdy produkt naszej pracy z każdego etapu cyklu życia oprogramowania, począwszy od specyfikacji wymagań, modele projektowe, kody źródłowe, przypadki testowe, skrypty uruchomieniowe, itd… Generalnie termin „artefakt” jest powiązany z plikiem.

   4. RAS – Reusable Assets Types

Poprzednia definicja zasobu (asset) jest modyfikowana dla różnych rodzajów zasobów programowych. Specyficzny rodzaj zasobu może specyfikować artefakty, które muszą się znaleźć w zasobach, może specyfikować kontekst (choćby development context lub runtime context), z którym zasób jest związany. Są trzy główne kierunki (wymiary) opisu zasobów wielokrotnego użytku : ziarnistość (granularity), zmienność (variability) oraz wyrazistość (articulation).

5. RAS – Wymiary

  • Ziarnistość (granularity) – opisuje, ile problemów / alternatywnych rozwiązań może być rozwiązanych / dostarczonych przez zarchiwizowany zasób (packaged asset). Najprostszy oferuje pojedyncze rozwiązanie dla jednego, dobrze zdefiniowanego problemu. Ziarnistość rośnie, gdy rozwiązuje więcej problemów, bądź dostarcza alternatywne rozwiązania.

Jednym słowem ze wzrostem ziarnistości rośnie rozmiar i złożoność zasobu, assetu…*

  • Zmienność (variability) – opisuje jak możemy zmieniać, konfigurować asset.
    • Z jednej strony mamy takie, na które nie mamy żadnego wpływu – są to najczęściej komponenty w postaci plików binarnych. Nazywane są często black-box assets – nie możemy zobaczyć, ani modyfikować zawartości komponentu.
    • Na drugim końcu są white-box assets, które możemy edytować i poprawiać. Często muszą zatem zawierać dokumentację projektową – wymagania, modele…
  • Wyrazistość (articulation) – opisuje stopień kompletności artefaktów w dostarczanym rozwiązaniu. Jeśli specyfikacja assetu mówi o rozwiązaniu, a nie dostarcza go, rozwiązanie ma niski poziom wyrazistości. Jeśli rozwiązuje, a ponadto dostarcza dokumentacji, modeli przypadków testowych – ma wyższy poziom wyrazistości.
* - możliwe, że wymyślam nowe słowo… Ale ciężko przetłumaczyć słowo asset, aby pasowało do kontekstu...:)

6. RAS – Jak wygląda asset ?

Każdy asset musi się składać przynajmniej z dwóch plików – pliku manifestu oraz oczywiście artefaktu. Manifest jest dokumentem XML, który musi być zgodny z jednym ze znanych schematów RAS i spełniający dodatkowo zbiór ograniczeń semantycznych (Semantic Constraints)

Asset może mieć różną postać:

  • może być spakowanym plikiem
  • jeśli nie jest spakowany, to :
    • Może mieć artefakty w oryginalnych miejscach – użyteczne w programowaniu zespołowym, gdzie ważna jest kontrola wersji
    • Może mieć artefakty w nowych miejscach – kiedy np. jakieś artefakty musimy przygotować do dalszej pracy

Pakowanie do pliku :

Artefakty w oryginalnych miejscach :

7. Core RAS i profile

  • RAS ma dwie kategorie opisu – Core RAS i Profile. Core RAS reprezentuje fundamentalne elementy specyfikacji assetu. Profile natomiast opisują wszystko, co rozszerza te elementy. Nie może natomiast zmieniać, poprawiać definicji elementów zdefiniowanych w Core RAS.
  • Core RAS nie może być instancją – musi być jakiegoś szczególnego Profilu. Profil może rozszerzać Core RAS lub może rozszerzać inny Profil.
  • Rysunek niżej ilustruje Core RAS i Profile :

Bardziej zrozumiały dla niektórych rysunek :

8. RAS – szczegółowiej...

  • Rysunek obok pokazuje kilka głównych sekcji i elementów Core RAS.
  • Kolekcja artefaktów może być ogromna, dlatego RAS precyzuje, jak je zorganizować oraz jaka część informacji jest wymagana. Podzielono asset zatem na sekcje :
    • Classification – lista deskryptorów do klasyfikacji assetu
    • Solution – opisuje artefakty assetu
    • Usage – zawiera reguły instalacji, konfiguracji i użycia assetu
    • Related Assets – opisuje związek assetu z innymi assetami
  • Jest to jak widać dość ogólna reprezentacja – trzeba dużo większej precyzji przy opisie choćby web serwisów, wzorców, komponentów… To właśnie mają zapewnić profile.

9. Core RAS – model UML dla schematu XML

* oryginalnej wielkości rysunki można znaleść w specyfikacji RAS...:)

10. RAS – profil Default

Aktualny standard definiuje profil Default jako realizację Core RAS. Traktuje je osobno, ponieważ Core RAS może się zmienić z czasem. Użytkownicy powinni rozszerzać swoje profile z profilu Default, bądź innych profili takich, jak profil Web Service lub profil Default Component.

11. RAS – profil Default Component

  • Profil ten wykorzystuje zasady i koncepcje opisane w książce „UML Components” Johna Cheesman’a. Szczególnie wspiera różne typy modeli i diagramów, często używanych do opisu komponentów.
  • Jest wyprowadzony bezpośrednio z profilu Default.

* oryginalnej wielkości rysunki można znaleść w specyfikacji RAS...:)

12. Zarządzanie komponentami - przyszłość !!

  • Software Reuse jest wciąż rozwijającą się technologia, jednak tylko na poziomie firm i korporacji zajmujących się wytwarzaniem oprogramowania
  • Idea OpenSource jest ciągle rozwijana, jednak na dzień dzisiejszy darmowe serwisy nie oferują oprogramowania na wysokim poziomie.
  • Standard RAS jest nadal rozwijany przez grupę OMG

Literatura :

 


Aby dodawać komentarze musisz być zalogowany!


Kontakt

Jeśli chcesz się z nami skontaktować napisz na adres: info(at)binboy.org lub odwiedź nasz profil na Facebooku!

O Nas

Serwis binboy.org to kopalnia wiedzy dla wszystkich z branży IT, w szczególności dla programistów i webmasterów. To duży zbiór kursów programowania, tutoriali, darmowych ebooków, setki kodów źródłowych itp.

Bądź w kontakcie

Panel użytkownika

Zaloguj się do panelu użytkownika.
Nie masz konta? Zarejestruj się!
Zapomniałeś hasła?