Modele komponentowe SCA, OSGi, Distributed OSGi i OSGi Enterprise a Java EE

Podobne dokumenty
Java wybrane technologie

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

IBM Corporation IBM SOA Center of Excellence

Enterprise JavaBeans 3.0

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Architektura i działanie systemów OSGi. Paweł Kaczmarek, WETI, PG

mgr inż. Michał Paluch

SOP System Obsługi Parkingów

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

SPRING FRAMEWORK. dr inż. Jakub Chłapioski

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

EJB 3.0 (Enterprise JavaBeans 3.0)

RESTful Android. Na co zwrócić uwagę przy tworzeniu aplikacji klienckich REST na Androidzie

1 Wprowadzenie do J2EE

Tomasz Dobek.

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych

Enterprise JavaBeans

Tworzenie aplikacji internetowych z wykorzystaniem szkieletu Spring. Paweł Ociepa, Paweł Pierzchała

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG

EJB 2.x oraz zmiany w standardzie dla EJB 3.0. Michał Stanek

CENNIK I TERMINARZ SZKOLEŃ

Rola EJB na platformie Java EE. Enterprise JavaBeans (EJB)

OSGi Agata Hejmej

Enterprise JavaBean 3.0

JSF 1.2. w wykonaniu NetBeans IDE 6.1. Jacek Laskowski

JAVA EE MODEL APLIKACJI. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Wprowadzenie do J2EE. Maciej Zakrzewicz.

Zwinne i lekkie aplikacje webowe z. Jacek Laskowski

Zaawansowane Aplikacje Internetowe

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Programowanie komponentowe 5

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss.

Usługa TimerService

Platforma J2EE i EJB. Oprogramowanie systemów równoległych i rozproszonych Wykład 9. Rola EJB na platformie J2EE. Dr inż. Tomasz Olas olas@icis.pcz.

Java Podstawy JUST JAVA Michał Bereta Intytu Modelowania Komputerowego Wydział Fizyki, Matematyki i Informatyki Stosowanej

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz

CENNIK I TERMINARZ SZKOLEŃ

Zastosowanie komponentów EJB typu Session

Wykład dla studentów Informatyki Stosowanej UJ 2012/2013

EJB 3.0 & JBoss Seam. 25 kwietnia 2007 Jacek Gerbszt 1

Certyfikaty firmy Sun. Ścieżka certyfikacyjna dla Javy Egzamin SCJP

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Contexts and Dependency Injection (CDI) Autor wykładu: Marek Wojciechowski

Wprowadzenie. Spring 2.5. Norbert Potocki. 3 lutego Norbert Potocki Spring 2.5

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

ZAPOZNANIE SIĘ Z TWORZENIEM

Komponenty sterowane komunikatami

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

CENNIK I TERMINARZ SZKOLEŃ

Enterprise Java Beans wykład 7 i 8

Wprowadzenie do Enterprise JavaBeans 2.0

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

METODY PROGRAMOWANIA

Projektowanie Aplikacji Internetowych. Wzorce projektowe warstwy usług

Tworzenie aplikacji dla Oracle Application Server 10g R3 w technologii EJB 3.0

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

CENNIK I TERMINARZ SZKOLEŃ

Systemy wbudowane. Poziomy abstrakcji projektowania systemów HW/SW. Wykład 9: SystemC modelowanie na różnych poziomach abstrakcji

Systemy operacyjne na platformach mobilnych

Web Tools Platform. Adam Kruszewski

Budowa komponentów Enterprise JavaBeans

Protokoly w technologii obiektow rozproszonych - CORBA, RMI/IIOP, COM, SOAP. Paweł Kozioł p.koziol@students.mimuw.edu.pl

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat.

Zaawansowane Aplikacje Internetowe

CENNIK I TERMINARZ SZKOLEŃ

Automatyzacja procesów biznesowych Andrzej Sobecki. ESB Enterprise service bus

IBM Rational Software Architect uproszczona instrukcja użytkowania

Podstawowe informacje o technologii Java Persistence API - przykład

CENNIK I TERMINARZ SZKOLEŃ

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Ustawienia Zabezpieczeń

Kontenery IoC dla Java Guice 3.0

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Elektroniki i Informatyki

Bezstanowe komponenty sesyjne i zdarzenia zwrotne

Aplikacje RMI Lab4

CENNIK I TERMINARZ SZKOLEŃ SZKOLENIA OTWARTE DLA UŻYTKOWNIKÓW SYSTEMÓW INFORMATYCZNYCH

Tworzenie aplikacji w języku Java

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

Enterprise JavaBeans (EJB)

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

JBoss Seam: framework nowej generacji. Copyright Piotr Kochański & Erudis,

Wywoływanie metod zdalnych

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Remote Method Invocation 17 listopada 2010

Aplikacje biznesowe Wykład dla studentów Informatyki Stosowanej

Wywoływanie metod zdalnych

Visual VM, Java Management extension i inne ciekawostki

Architektury Usług Internetowych. Laboratorium 1 Servlety

Podejście obiektowe do budowy systemów rozproszonych

CENNIK I TERMINARZ SZKOLEŃ

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

1. Podstawowe usługi bezpieczeństwa. 2. Użytkownicy i role. przydzielanie uprawnie ń metodom, role komponentów, korzystanie i konfiguracja

Transkrypt:

Modele komponentowe SCA, OSGi, Distributed OSGi i OSGi Enterprise a Java EE Jacek Laskowski http://www.jaceklaskowski.pl Wersja z 26 marzec 2010 o 15:50:32

Ja...cek Laskowski Pasjonat Korporacyjnej Javy (Java EE) i okolic Założyciel i lider Warszawa Java User Group Członek grup rozwojowych Apache OpenEJB, Apache Geronimo i in. Bloger Notatnika Projektanta Java EE http://www.jaceklaskowski.pl Służbowo: Specjalista od oprogramowania IBM WebSphere (BPM) w IBM Polska

Paweł Stawicki napisał... Ja bym chętnie zobaczył, jak się to wszystko "składa do kupy". Sporo tu elementów, o których mam co najwyżej blade pojęcie i ciekaw jestem, jak je wszystkie razem skonfigurować, połączyć i zbudować aplikację.

Zacznijmy od początku. Króciutko

Interfejs to zbiór metod z określonym sposobem ich wykonania (transport)

Usługa to funkcjonalność dostępna za pomocą jednoznacznie zdefiniowanego interfejsu (w tym i transportu)

Komponent to moduł systemu udostępniający usługi bez odkrywania szczegółów ich implementacji jednostka funkcjonalna/usługowa

Model komponentowy to zbiór zasad określających ramy poprawnego funkcjonowania komponentów

CORBA Common Object Request Broker Architecture

Nomenklatura i semantyka Różnice między... model komponentowy to model aplikacyjny? A co ze szkielet (framework) i rusztowanie (scaffolding)?

A wszystko zaczęło się od...?

package pl.jaceklaskowski.greeter; public interface Greeter { } public String sayhelloto(string who); package pl.jaceklaskowski.greeter.impl; public class PolishGreeter implements Greeter { @Override public String sayhelloto(string who) { return "Witaj " + who; } }

Brawa dla człowieka-kompilatora!

JavaBeans aka POJO JavaBeans technology is the component architecture for the Java 2 Platform, Standard Edition (J2SE). JavaBeans components (beans) are reusable software programs that you can develop and assemble easily to create sophisticated applications. Za http://java.sun.com/javase/technologies/desktop/javabeans/index.jsp

Później, znaczne skomplikowanie z...

POJO + META-INF/ejb-jar.xml <?xml version="1.0" encoding="utf-8"?> <ejb-jar> <enterprise-beans> <entity>... </entity> </enterprise-beans> </ejb-jar>

Enterprise JavaBeans (EJB) Enterprise JavaBeans (EJB) technology is the server-side component architecture for Java Platform, Enterprise Edition (Java EE). EJB technology enables rapid and simplified development of distributed, transactional, secure and portable applications based on Java technology. Za http://java.sun.com/products/ejb/

Aby później uprościć?

POJO + META-INF/beans.xml <beans> <bean id="greeterservice" class="pl.jaceklaskowski.greeter.impl.polishgreeter"> </beans>

Spring Framework Spring is a layered Java/J2EE application platform. Spring includes: The most complete lightweight container, providing centralized, automated configuration and wiring of your application objects. The container is non-invasive, capable of assembling a complex system from a set of loosely-coupled components (POJOs) in a consistent and transparent fashion. Za http://www.springsource.org/about

Ale nie tylko! POJO + adnotacje rulez :-)

Java Enterprise Edition (Java EE) Java Platform, Enterprise Edition (Java EE) is the industry standard for enterprise Java computing. The Java Platform, Enterprise Edition (Java EE) reduces the cost and complexity of developing multitier, enterprise services. Za http://java.sun.com/javaee/ oraz Java Platform, Enterprise Edition (Java EE) Specification, v6

A w tle tli się coraz jaśniej...

POJO + META-INF/MANIFEST.MF Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Greeter Service Bundle-SymbolicName: pl.jaceklaskowski.greeter.greeter Bundle-Version: 1.0.0 Export-Package: pl.jaceklaskowski.greeter

OSGi OSGi technology is the dynamic module system for Java. The OSGi Service Platform provides functionality to Java that makes Java the premier environment for software integration and thus for development. Za http://www.osgi.org/about/technology

OSGi warstwami registerservice(string,object,dictionary) registerservice(string [],Object,Dictionary) Za OSGi Service Platform Release 4 Version 4.2 Core Specification

Mając podstawy w postaci Java EE, Spring i OSGi zaczyna się prawdziwa, deklaratywna zabawa...

META-INF/spring/simpleservice.xml <?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean name="simpleservice" class="org.springframework.osgi.samples.simpleservice.impl.myserviceimpl" /> </beans> META-INF/spring/simpleservice-osgi.xml <?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:osgi="http://www.springframework.org/schema/osgi" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd"> <osgi:service id="simpleserviceosgi" ref="simpleservice" interface="org.springframework.osgi.samples.simpleservice.myservice" /> </beans>

Spring Dynamic Modules for OSGi(tm) Service Platforms = Spring Framework + OSGi

OSGI-INF/blueprint/blueprint.xml <?xml version="1.0" encoding="utf-8"?> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"> <reference id="greeterservice" interface="org.apache.aries.tutorials.blueprint.greeter.api.greetermessageservice" timeout="10000" availability="mandatory" /> <bean id="clientbean" class="org.apache.aries.tutorials.blueprint.greeter.client.greeterblueprintclient" activation="eager" init-method="dorequests"> <argument value="blueprint Client" /> <property name="greetermessageservice" ref="greeterservice" /> </bean> </blueprint>

OSGi Blueprint Container Blueprint Container specification defines a dependency injection framework, specifically for OSGi bundles, that understands the unique dynamic nature of services. This Blueprint Container specification is derived from the Spring Dynamic Modules project. Za 121. Blueprint Container Specification w OSGi Service Platform Release 4 Version 4.2 Enterprise Specification

Wychodzimy poza ramy pojedynczej JVM... Gotowi?

public class Activator implements BundleActivator { private ServiceRegistration registration; public void start(bundlecontext bc) throws Exception { } Dictionary props = new Hashtable(); props.put("service.exported.interfaces", "*"); props.put("service.exported.configs", "org.apache.cxf.ws"); props.put("org.apache.cxf.ws.address", "http://localhost:9090/greeter"); registration = bc.registerservice(greeterservice.class.getname(), new GreeterServiceImpl(), props); } public void stop(bundlecontext bc) throws Exception { registration.unregister(); }

Distributed OSGi to potoczna nazwa dla Remote Services (OSGi Compendium spec) oraz Remote Service Admin Service (OSGi Enterprise spec)

Enterprise OSGi to zbiór specyfikacji w OSGi Service Platform Release 4 Version 4.2 Enterprise Specification dla Blueprint Container, Remote Service Admin Service, JTA, JMX, JDBC, JNDI, JPA, Web i SCA

Ktoś wspomniał o SCA?! W końcu!

Service Component Architecture (SCA) Service Component Architecture (SCA) is a set of specifications which describe a model for building applications and systems using a Service-Oriented Architecture. SCA extends and complements prior approaches to implementing services, and SCA builds on open standards such as Web services. Za http://www.osoa.org/display/main/service+component+architecture+home

POJO + META-INF/*.composite

SCA, OSGi, Spring i Java EE W OSGi Enterprise SCA Configuration Type Specification W SCA implementation.*: *.jee, *.web i *.ejb dla artefaktów Java EE *.osgi, *.java i *.spring dla OSGi, Java i Spring

Więcej kodu zamiast gadania?! Muszę Was rozczarować, więcej nie będzie, bo nie ma być!

Podsumow(yw)anie

Programowanie deklaratywne POJO Adnotacje Pliki konfiguracyjne (często opcjonalne) META-INF/beans.xml, WEB-INF/applicationContext.xml Spring META-INF/MANIFEST.MF OSGi META-INF/*.composite SCA META-INF/ejb-jar.xml EJB (Java EE)

Środowiska uruchomieniowe OSGi Apache Felix, Eclipse Equinox Distributed OSGi (d-osgi) Apache CXF, Eclipse ECF Enterprise OSGi (ent-osgi) Apache Aries, Eclipse Virgo (Spring-DM) SCA Apache Tuscany, Eclipse SCA Tools

Dalsza lektura OSGi Service Platform Release 4 Version 4.2 Core Specification http://www.osgi.org/download/file?url=/download/r4v42/r4.core.pdf OSGi Service Platform Release 4 Version 4.2 Compendium Specification http://www.osgi.org/download/file?url=/download/r4v42/r4.cmpn.pdf OSGi Service Platform Release 4 Version 4.2 Enterprise Specification http://www.osgi.org/download/file?url=/download/r4v42/r4.enterprise.pdf Service Component Architecture Specifications http://www.osoa.org/display/main/service+component+architecture+specifications

Modele komponentowe SCA, OSGi, Distributed OSGi i OSGi Enterprise a Java EE Jacek Laskowski http://www.jaceklaskowski.pl