Dodanie kolejnego lokalnego interfejsu sieciowego w Ubuntu/Debianie

Dodanie kolejnego, lokalnego sieciowego w dystrybucjach wywodzących się z Debiana polega na modyfikacji pliku /etc/network/interfaces. Do pliku tego po prostu należy dodać wpisy opisujące kolejne interfejsy lokalne. Może to wyglądać tak:

1
2
3
4
5
6
7
8
# The loopback network interface
auto lo
iface lo inet loopback

auto lo:1
iface lo:1 inet static
        address 10.2.2.1
        netmask 255.255.255.0

W powyższym przykładzie w linii 5 następuje definicja nowego interfejsu sieciowego, o podanych adresach. Teraz wystarczy tylko wydać polecenie fup -a i nie zgłoszą się żadne błędy, powinien być dostępny kolejny interfejs sieciowy.

Tags: , , ,

Czym jest JBoss Operations Network (JON lub Jopr)?

JBoss Operations Network (JON) lub Jopr jest platformą, która dostarcza scentralizowany system pozwalający zarządzać produktami dostarczanymi w JBoss Enterprise Middleware. JON pozwala na następujące rzeczy:

  • Obsługa pełnego cyklu życia aplikacji, źródeł danych oraz usług powiadamiania.
  • Prezentacje wspólnego interfejsu pozwalającego przeglądać rożne komponenty całego środowiska (zarówno od strony sprzętowej jak i programistycznej).
  • Pozwala poprawić efektywność i niezawodność zarządzania i poprzez wpływa na dostępność oraz wydajność systemów produkcyjnych.
  • Pozwala na konfigurowanie i instalację nowych aplikacji w serwerze JBoss przy użyciu pojedynczego narzędzia.

Platforma dostarcza narzędzia do przeprowadzenia inwentaryzacji, administracji, monitoringu, instalacji oraz aktualizacji aplikacji bazujących na serwerze JBoss poprzez scentralizowany system. Pozwala na kontrolę poszczególnych poziomów dostępu umożliwiających przeglądanie, dostęp, zarządzanie systemami oraz dzielnie się informacjami czy też statystykami poprzez różne zespoły.

Związek pomiędzy JON a RHQ Network

Projekt RHQ jest systemem dostarczającym platformę pod budowę systemu zarządzającego wieloma produktami i platformami, z głównymi cechami takimi jak:

  • monitorowanie oraz wizualizacja wskaźników
  • alarmy wywoływane w przypadku błędów czy też innych warunków
  • zdalna konfiguracja zarządzanych zasobów
  • zdalne wykonywane operacji

RHQ został opublikowany głównie w oparciu o licencję GPL, ale część fragmentu jest indywidualnie licencjonowana na licencjach GPL/LGPL. Projekt ten jest podstawą dla budowy JON czy też Jopr.

Różnica pomiędzy JON a Jopr

W jednym zdaniu: JON to specyficzna wersja Jopra, która została odpowiednio przetestowana, oraz na którą są świadczone usługi wsparcia.

Podstawowe moduły

Inwentaryzacja

Moduł ten pozwala na przeprowadzenie automatycznego wykrywania poszczególnych zasobów oraz pozwala na ich szybką i łatwą konfigurację.Gromadzone są m.in. informacje dotyczące momentu instalacji usługi lub aplikacji, wersji oraz są dostępne informacje o historii danego zasobu. Taki model pozwala na śledzenie poszczególnych maszyn wraz z systemami operacyjnymi, źródeł danych, usług przesyłających wiadomości, procesów uruchomionych na maszynie, takich jak JBoss AS, Apache HTTP Server oraz informacji o poszczególnych aplikacjach uruchomionych w ramach serwera aplikacji JBoss.

Administracja

Aktualna konfiguracja każdego serwera jest przechowywana w centralnej bazie danych. Mogą istnieć konfiguracje w niej także zapisane różne przeszłe konfiguracje pozwalające na prezentowanie danych historycznych. Odpowiedni interfejs webowy pozwala na modyfikowanie parametrów poszczególnych usług, jeżeli posługują się one plikami tekstowymi. Dostępne są podstawowe operacje kontroli poszczególnych usług takie jak możliwość ich uruchomienia, zatrzymania i restartu.

Monitorowanie

Monitorowanie wykonania aplikacji odbywa się na wielu poziomach tak, aby umożliwić zebranie dokładnych statystyk oraz ich zachowań. Rozszerzone statystyki są dostępna dla serwera aplikacji JBoss AS oraz różnych komponentów wchodzących w skład produktów z rodziny JBoss Middleware, m.in. Hibernate, Apache Web Server, rożne systemy operacyjne takie jak Windows, Linux czy Solaris. Mogą zostać zdefiniowane odpowiednie alarmy, które umożliwiają pilnowanie konkretnych zdarzeń mających miejsce w systemie.

Aplikacje

Istnieje zarządca łatek na aplikacji, który umożliwia automatyczne ich przeglądanie instalowanie. Historia wszelkich zmian jest także zapamiętywana i możliwa do przeglądania.

Architektura

Platforma JBoss Operations Network składa się z centralnego systemu zarządzającego oraz ze zdalnych agentów, instalowanych na monitorowanych maszynach. Zadaniem agentów jest dostarczanie pewnych oraz szczegółowych informacji o monitorowanych zasobach. Komunikują się oni z centralnymi serwerami synchronizując zbierane informacje. Jest dostępny otwarty system tworzenia plug-inów, dzięki czemu istnieje możliwość dodania monitoringu nawet do własnościowych czy specyficznych aplikacji.Agenci są w miarę potrzeby samodzielni, potrafią działaś także w monecie, gdy główne serwery nie są dostępne.

Źródła

Tags: , , , ,

Użycie słowa kluczowego break

Słowo kluczowe break może występować w dwóch formach:

  • forma samodzielna, bez etykiety
  • wskazanie etykiety, która ma zostać wywołania

Słowo kluczowe break bez etykiety

Samodzielne słowo break może zostać użyte tylko w kontekście pętli (for, while, do-while) oraz konstrukcji switch.

W przypadku pętli powoduje natychmiastowe przerwanie jej wykonywania i przejście do wykonywania nasŧpnej instrukcji po zakończeniu pętli. W przypadku wywołania polecenia wewnątrz wewnętrznej pętli, zostanie przerwane wykonywanie tylko pętli wewnętrznej.

1
2
3
4
5
6
7
8
9
10
11
12
for (int i = 0; i < 10; i++) {
    System.out.print("i = " + i);

    for (int j = i; j < i + 5; j++) {
        System.out.print("  j = " + j);
        if (j < 4) {
            break;
        }
    }

    System.out.println();
}

Użycie break w linii 7 w powyższym kodzie spowoduje przejście aplikacji do wykonywania kody w linii 11 (czyli ciągle wewnątrz pierwszej pętli).

Także break jest niezastąpione podczas używania konstrukcji switch:

1
2
3
4
5
6
7
8
9
10
11
12
13
int test = 1;

switch (test) {
default:
    System.out.println("Wartość domyślna");
case 0:
    System.out.println("Zero");
case 1:
    System.out.println("Jeden");
    break;
case 2:
    System.out.println("Dwa");
}

Co zostanie wydrukowane po uruchomieniu powyższego fragmentu kodu? Zaskoczenia żadnego nie będzie:

Jeden

Czyli zostanie wywołana linia 9, a następnie nastąpi opuszczenie całej konstrukcji switch.

Ale oto co zostanie wypisane na ekranie, jeżeli zmienimy przypisanie int test = 4:

Wartość domyślna
Zero
Jeden

Ponieważ wartość 4 nie ma żadnego przypadku opisanego w switch więc jest wykonywany blok wejścia default. I następnie kod jest wykonywany aż do pierwszego napotkanego słowa break lub też końca konstrukcji switch.

Słowo kluczowe break z etykietą

Istnieje także możliwość podania etykiety po słowie kluczowym break. Konstrukcja to może zostać użyta do zakończenia każdego bloku oznaczonego daną etykietą. Powoduje przejście wykonywania kodu do pierwszej instrukcji następującym po danym bloku kodu oznaczonym etykietą:

1
2
3
4
5
6
7
wyjscie: {
    int j =2;
    if (j == 2)
        break wyjscie;
    System.out.println("Blok danych z etykietą");
}
System.out.println("Koniec");

Po wykonaniu powyższego kodu zostanie wydrukowana tylko pojedyncza linia:

Koniec

Tę wersję konstrukcji break często używa się w połączeniu z zagnieżdżonymi pętlami, pozwala na opuszczenie całej ich struktury bez kłopotliwych testów na poszczególnych jej poziomach.

Tags: , , ,

Czym jest JBoss Application Server (krótka charakterystyka)?

Historia serwera JBoss AS

Prace nad JBossem rozpoczął Marc Fleury w 1996 roku jako produkt z otwartymi źródłami, od początku będącym implementacją standardu J2EE. JBoss od początku był wydawany jako produkt objęty licencją LGPL. Początkowo produkt nosił nazwę EJBoss (Enterprise Java Beans Open Source Sofware), jednakże po sprzeciwie firmy Sun (która posiada prawa do używania nazwy EJB) porzucono początkowe E i utworzono nazwę JBoss.

W 2001 roku Fleury został współzałożycielem firmy JBoss Group LCC, która oferowała komercyjne wsparcie dla serwera aplikacji. W 2002 roku została opublikowana wersja 3 serwera, która wpierała w pełni specyfikację J2EE oraz była pierwsza wersją, która zaczęła konkurować z innymi własnościowymi serwerami aplikacyjnymi, takimi jak WebSpere czy WebLogic.

W 2004 roku spółka JBoss Group LCC została przekształcona w firmę JBoss Inc. Jednocześnie opublikowano wersję 4 tego serwera aplikacji, który uzyskał dużą popularność. Wsparcie oferowane przez JBoss Inc przestało się ograniczać tylko do serwera aplikacji, zostało także rozszerzone o szereg komponentów, które zostały stworzone na potrzeby prac nad serwerem aplikacyjnym, takimi jak: Hibernate, jBMP, JBoss Cache czy też JBoss Rules.

JBoss Inc została w 2006 roku wykupiona przez firmę Red Hat Inc. Opublikowano także nową wersję serwera JBoss AS 5.

Czym jest JBoss AS

JBoss Application Server 5 jest serwerem aplikacji, napisanym w 100% w języku programowania Java, zgodnym ze specyfikacją J2EE 5. Jest on zbudowany na podstawie technologii JBoss Microcontainer, która jest lekkim kontenerem, wspierającym bezpośrednią instalację aplikacji, konfigurację oraz zarządzanie cyklem życia obiektów POJO (Plain Old Java Objects). JBoss Microcontainer jest samodzielnym projektem, który zastąpił wcześniejsze jądro serwera JBoss JMX Microkernel, używane w wersjach 3 oraz 4. Podstawowe cele projektu:

  • jądro JBoss Microcontainer powinienno być samodzielnym projektem
  • usługi dostępne w JBoss AS powinny łatwo dać się używać w innych serwerach aplikacji
  • użycie obiektów POJO
  • dostarczenie środowiska do zarządzania obiektami POJO, wsparcie dla zależności oraz klastrowania

Serwer JBoss AS został zaprojektowany wokół koncepcji Virtual Deployment Framework (VDF).

To co obejmuje pojęcie JBoss AS bardzo dobrze oddaje następujący obrazek (Źródło: Administration And Configuration Guide):

JBoss Application Server 5 architecture

JBoss Application Server 5 architecture

Na grafice widać, jaki szereg różnych technologii wchodzi w skład serwera aplikacji. Duża część z nich została rozwinięta na jego potrzeby, ale istnieją także jako samodzielne biblioteki do wykorzystania w innych aplikacjach.

  • W serwerze aplikacji jest zawarta implementacja specyfikacji EJB3.0, która pozwala na duże uproszczenie procesu tworzenia, ułatwienia testowania aplikacji.
  • JBoss Messaging jest szkieletem dla megastruktury JBoss ESB, oraz domyślną implementacja JMS.
  • JBoss Cache 2.0 jest dostarczane w dwóch wersjach. Jedna to tradycyna pamięć cache korzystająca ze struktur drzewiastych oraz PojoCache, czyli pamięć cache oparta na obiektach POJO. Wspiera transakcje oraz replikację między systemami i pozwala na przezroczyste dla użytkownika wykorzystanie obiektów POJO zarówno w replikacji danych jak i ich utrwalaniu.
  • JBoss WS 2 jest to zestaw usług implementujących usługi webowe JAXES 2.0.
  • JBoss Transaction jest domyślnym zarządcą transakcji w JBoss AS 5.
  • JBoss Web jest kontenerem webowym w JBoss AS 5, jest on implementacja bazująca na aplikacji Apache Tomcat.

Tags: , ,

W jaki sposób zrobić zrzut ekranu w telefonie z Androidem

Ostatnio chciałem uzyskać zrzut ekranu z telefonu z systemem Android (na potrzebny wpisu na blogu) i po krótkim poszukiwaniu okazało się to dużo prostsze niż myślałem.

Krok 1: konfiguracja komputera

W sytuacji gdy używamy Linuksa, może być konieczna odpowiednia konfiguracja, opisana w tym wpisie: Dostęp do Internetu za pomocą HTC G1 z systemem Android (Proxoid). Ja przynajmniej ma tak skonfigurowanego demona UDEV, zawsze można spróbować bez tych kroków, jeżeli zadziała, to proszę o sygnał.

Dla przypomnienia, oto co trzeba zrobić:

Pierwszym elementem jest utworzenie pliku /etc/udev/rules.d/11-android.rules o następującej zawartości:

1
2
SUBSYSTEMS=="usb", SYSFS{idVendor}=="0bb4", SYSFS{idProduct}=="0c02", MODE="0666", OWNER="nazwa użytkownika"
SUBSYSTEMS=="usb", SYSFS{idVendor}=="0bb4", SYSFS{idProduct}=="0c01", MODE="0666", OWNER="nazwa użytkownika"

Aktualizacja

W przypadku jądra 2.6.32 powyższy wpis sprawiał mi problemy (telefon był ciągle wykrywany, nagle przestawał być widziany). Dopiero zmiana tego wpisu na poniższy rozwiązała problemy:

1
2
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c01", ENV{ACL_MANAGE}="1", MODE="0666", OWNER="nazwa użytkownika"
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c02", ENV{ACL_MANAGE}="1", MODE="0666", OWNER="nazwa użytkownika"

Swoją drogą, wg. komunikatów podawanych przez jądro to użycie atrybuty SYSFS nie jest zalecane przynajmniej od wersji 2.6.32, zamiast tego poleca się użycie właśnie atrybutu ATTR.

Należy wpisać swoją nazwę użytkownika po deklaracji OWNER. Teraz restart demona:

# /etc/init.d/udev restart

I można podłączać telefon. Po wydaniu poniższego polecenia powinniśmy otrzymać podobny komunikat:

# lsusb  | grep High
Bus 001 Device 017: ID 0bb4:0c02 High Tech Computer Corp.

Krok 2: Pobranie SDK dla telefonu

Ze strony Googla należy pobrać odpowiednie SDK dla telefonu kompatybilne z używanym systemem operacyjnym na komputerze biurkowym: http://developer.android.com/sdk/index.html. Pobranie SDK należy rozkopresować w jakimś katalogu.

Ja korzystam z SDK w wersji 1.6_r1.

Krok 3: Konfiguracja telefonu

Ostatnim elementem związanym z konfiguracją sprzętu jest włączenie trybu „USB debugging”. Czyli z MENU wybrać opcję Settings->Applications->Development, i zaznaczyć opcję USB debugging.

Okienko Android USB Deugging

Okienko Android USB Deugging

Krok 4: Zrzut ekranu

Po tych krokach związanych z konfiguracją telefonu i komputera pozostaje już tylko uruchominie aplikacji o nazwie Dalvik Debug Monitor i do dzieła. Czyli należy wejść do katalogu z SDK do telefonu, następnie do podkatalogu tools i uruchomić aplikację ddms.

Dalvik Debug Monitor

Dalvik Debug Monitor

Jeżeli aplikacja pomyślnie wykryje telefon (powinien pojawić się w okienku Name) to możemy z menu wybrać pozycję Device->Screen capture, co spowoduje zrobienie zrzutu ekranu telefonu. Pozostaje teraz tylko zapisać obrazek.

Źródła

Tags: , ,