poniedziałek, 7 kwietnia 2008

Mule instalacja

Dzisiaj czas zacząć przygodę z jednym z najbardziej popularnych, darmowych ESB MULE. Nie będę robił wprowadzenia do ESB, napiszę w skrócie do czego może się przydać.
Moja definicja ESB to:
- szyna umożliwiająca komunikacje pomiędzy różnymi serwisami, jej główne założenie to uproszczenie tworzenia architektury SOA(Service Oriented Architecture) (architektura zorientowana na usługi).
Dobra zobaczymy jak to działa w praktyce, pojawiła się nowa wersja Mule 2.o.o idziemy do Download ściągamy źródła i je rozpakowujemy. Zerkamy jeszcze co nowego w wersji 2.0.0 z ciekawych rzeczy widzę, że w następnych wersjach ma być wsparcie dla OSGi.
The Registry architecture will continue to evolve a bit in future releases and will form the basis of OSGi support in Mule.
Wracając do Mule przed rozpoczęciem całej zabawy należy zainstalować niezbędne oprogramowanie(jvm, maven, ...). Po ściągnięciu i rozpakowaniu , czytamy INSTALL.txt, i wykonujemy następujące polecenia (w zależności od systemu operacyjnego, u mnie mac):
export MULE_HOME=/Users/lipka/Library/mule-2.0.0
export PATH=$PATH:$MULE_HOME/bin
Potem w konsoli piszemy:
mule
podczas pierwszego uruchomienia musimy zaakceptować licencje.
Do you accept the terms and conditions of this license agreement [y/n]?
y
i potem widzimy (maven ściągą niezbędne jary) i na końcu:
Starting the Mule Server...
Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
Copyright 1999-2006 Tanuki Software, Inc. All Rights Reserved.

WARN 2008-04-07 13:57:39,559 [WrapperListener_start_runner] org.mule.MuleServer: A configuration file was not set, using default: mule-config.xml


*******************************************************************************
No config file specified and no config by the name of mule-config.xml
found on the classpath.

Usage: mule -config [-builder ] [-debug] [-version]

mule-configuration - a URL for the Mule Config XML to use,
if not specified the config will be loaded from
the classpath

config-builder - a fully qualified class name of the builder to use
to configure Mule.

debug - configure Mule for JPDA remote debugging.
Customize settings by editing a JPDA_OPTS variable
in the mule startup script

version - print full product information
*******************************************************************************


INFO 2008-04-07 13:57:39,594 [Thread-0] org.mule.MuleServer: Mule server shutting down due to normal shutdown request
INFO 2008-04-07 13:57:39,603 [Thread-0] org.mule.MuleServer:
**************************************************************************************
* The server is shutting down due to normal shutdown request *
* Server shutdown: 07.04.08 13:57 *
**************************************************************************************
<-- Wrapper Stopped


Teraz jak już wszystko działa, można uruchomić najprostszy przykład, dostarczony z dystrybucją, w naszym wypadku to będzie Echo Example.
lukasz-lipkas-computer:~/Library/mule-2.0.0 lipka$ cd examples/echo/
lukasz-lipkas-computer:~/Library/mule-2.0.0/examples/echo lipka$ mule -config conf/echo-config.xml
Na konsoli powinna się pokazać możliwość wpisania jakiegoś przykładowego teksty (potem ENTER) i jeszcze raz go wyświetlenie, takie systemowe echo tylko za pomocą UMOComponentu:
**********************************************************************
* Mule ESB and Integration Platform *
* Version: 2.0.0 Build: 11521 *
* MuleSource, Inc. *
* For more information go to http://mule.mulesource.org *
* *
* Server started: 01.01.70 01:00 *
* Server ID: 8e67013c-049b-11dd-b60e-f34003987973 *
* JDK: 1.5.0_13 (mixed mode) *
* OS: Mac OS X (10.4.11, i386) *
* Host: lukasz-lipkas-computer.local (192.168.123.3) *
* *
* Agents Running: None *
**********************************************************************

Please enter something:
helloWorld :)
INFO 2008-04-07 14:10:17,896 [EchoUMO.2] org.mule.component.simple.LogComponent:
********************************************************************************
* Message received in service: EchoUMO. Content is: 'helloWorld :)' *
********************************************************************************
INFO 2008-04-07 14:10:17,911 [SystemStreamConnector.dispatcher.1] org.mule.transport.stdio.StdioMessageDispatcher: Connected: StdioMessageDispatcher{this=185633, endpoint=stdio://system.out, disposed=false}
helloWorld :)

Please enter something:


Mule już działa więc teraz trzeba będzie się przyjrzeć jak można go zastosować w projektach informatycznych.
PS. dla tych co mają maci, krótkie wprowadzenie do shella pod mac OS.




7 komentarzy:

Paweł Ryznar pisze...

A ja mam takie pytanie :) czy Mule 2 jest łatwe do opanowania, czy lepiej użyć innej szyny (np. ServiceMix)? Chciałbym zrobić coś prostego, tzn po jednej stronie ESB usługi wystawione np. przez hurtownie, z drugiej strony klienci (np. sklepy). Taki akademicki przykład na wykorzystanie ESB.

Łukasz Lipka pisze...

Na pewno można wykorzystać mule 2 do tego co chcesz napisać. Dlaczego mule a nie inne esb ? Dlatego, że jest prężnie działająca grupa dyskusyjna, coraz więcej książek (polecam mule in action) i coraz to lepsza dokumentacja, hot - deployment :) możliwość korzystania z groovy i moim zdaniem dosyć szybko można się w tym połapać, nie wspominając o wtyczce do Eclipse. Jeszcze jakieś wątpliwości ? :)

Pozdrowienia
Łukasz

Paweł Ryznar pisze...

Hej :) Jest jeszcze książka z Apress: Mule 2 A Developer's Guide.
Szczerze to jeszcze nie wiem czy jestem przekonany :P
Wszytko to będzie się kręciło wokół magisterki, a nie chciałbym się zakopać i próbować każdego po kolei [ServiceMix, FUSE ESB, Open ESB, JBoss ESB czy też Mule 2].
Zobaczymy, mam nadzieję że się uda :D bo w samą Jave EE niedawno wszedłem

Pozdrawiam :)

Łukasz Lipka pisze...

no faktycznie google books nawet ją udostępnia link
ale nie czytałem, więc nie mogę nic o niej napisać, ale jak sam widzisz literatury Ci nie zabraknie:) a to bardzo ważne w szczególności na początku. Powodzenia w pisaniu pracy i daj znać czy wybrałeś mule jako esb.

Pozdrowienia
Łukasz

Paweł Ryznar pisze...

jest jeszcze jedna pozycja :)

Open-Source ESBs in Action (Example Implementations in Mule and ServiceMix)

http://www.manning.com/rademakers

pozdrawiam :)

Łukasz Lipka pisze...

faktycznie nawet muszę napisać recenzję do tej książki, bo kiedyś ją dostałem za darmo, ale jest dosyć mocno nie aktualna, więc radzę Ci wybrać inną pozycję.

Pozdrowienia
Łukasz

Paweł Ryznar pisze...

hehe, no to ładnie, wydana na przełomie 2008/09 i starocie mówisz ;) dobrze wiedzieć :)

Przeglądałem jeszcze stronę mule i fajną rzeczą wydaje się iBeans.
Ale powoli. Jak będę miał straszne problemy to na pewno się odezwę ;) i mam nadzieję że pojawią się jeszcze jakieś wpisy o Mule

Dzięki za wskazówki :)

Pozdrawiam,
Paweł