Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Tomasz Wysocki, AMG.net Senior IT Consultant.

Slides:



Advertisements
Podobne prezentacje
Agile w praktyce, czyli jak to robimy naprawdę
Advertisements

Polska Infrastruktura Informatycznego Wspomagania Nauki w Europejskiej Przestrzeni Badawczej Intuicyjny interfejs do zasobów projektu PL-Grid Migrating.
Java Enterprise Ed. vs Spring Framework
J2EE vs .NET Próba porównania Krzysztof Sobiesiński Michał Słupski.
Opis metodyki i procesu produkcji oprogramowania
Tworzenie portali z wykorzystaniem technologii Sun Java Enterprise Systems Joanna Kosińska
e-commerce jako efektywny rozwój dystrybucji
EControl – prostsze zarządzanie tożsamością pracowników Twórz Zarządzaj Audytuj Wolfgang Berger Omni Technology Solutions
Artur Jonak empolis Polska Sp. z o.o.
Projektowanie Aplikacji Komputerowych
(Content Management System)
Tematyka prac magisterskich w Zakładzie Informatyki Stosowanej
Content Management System
Tomasz Smieszkoł - 15 stycznia
TPTP optymalizacja kodu.
Wykład 2. Wprowadzenie do architektur systemów rozproszonych
Platforma J2EE korporacyjny standard wytwarzania złożonych systemów informatycznych Autor: Jarosław Lis Warszawa, 2006r.
Enteprise Java Beans Emil Wcisło.
Wzorce projektowe w J2EE
Systemy zarządzania treścią CMS
7. Platformy informatyczne przyszłości (wizja SAP)
Praca Inżynierska „Analiza i projekt aplikacji informatycznej do wspomagania wybranych zadań ośrodków sportowych” Dyplomant: Marcin Iwanicki Promotor:
Projekt i implementacja aplikacji do zasilania bazy danych testowymi danymi Jacek Lis Promotor: prof. dr hab. inż. Włodzimierz KASPRZAK.
Spring podstawy.
1/18 LOGO Profil zespołu. 2/18 O nas Produkcja autorskich rozwiązań informatycznych dla małych i średnich firm w zakresie systemów: Baz danych Aplikacji.
Analiza, projekt i częściowa implementacja systemu obsługi kina
SZPIF – Harmonogram, Opis narzędzi, Schemat bazy danych
WebSphere Everyplace Micro Environment IBM Workplace Client Technology, Micro Edition Monika Nawrot, Tomasz Jadczyk, Tomasz Sadura KI, EAIiE, AGH.
Wstęp do kontenerów IoC
Przemek Lewicki Piotr Linka Bartek Stasikowski
Nowoczesny system zarządzania firmą
Rozwój aplikacji przy wykorzystaniu ASP.NET
Architektura Systemu MunSOL
Rozwój aplikacji. To zestaw narzędzi do budowania i optymalizacji złożonych aplikacji opartych na przeglądarce. To zestaw narzędzi do budowania i optymalizacji.
Continuous Integration
Technologie tworzenia aplikacji internetowych Wykład 3
Analiza możliwości tworzenia aplikacji typu RIA na przykładzie portalu ogrodniczego Autor: Łukasz Strzelecki Promotor: dr inż. Paweł Kasprowski.
ZIS Tematyka prac magisterskich w Zakładzie Informatyki Stosowanej.
Wsparcie pracy grupowej systemem Workflow
SYSTEM DYNAMICZNEJ ANALIZY JAKOŚCI SCENARIUSZY BIZNESOWYCH Łukasz Budnik.
STAĆ CIĘ NA INNOWACJE System CRM w Focus Telecom Polska - cechy i funkcjonalność usługi Autor: Tomasz Paprocki.
Systemy IPTV 2008 © Cyfrowe Systemy Telekomunikacyjne Sp. z o.o. Efektywna komunikacja ze światem.
Komponentowe systemy rozproszone Wprowadzenie. Komponent... jest to podstawowa jednostka oprogramowania z kontraktowo (deklaratywnie) opisanymi interfejsami,
Serwery aplikacji Zope Tomcat. Składniki Zopea: Serwer Management interface Databases.
Systemy zarządzania treścią Wykład 5
Autor: Marcin Polak Promotor: dr inż. Paweł Kasprowski
Praktyczne wykorzystanie wzorców projektowych MVC oraz IoC.
Spring Framework, Spring Boot
Seminarium Dyplomowe Jacek Fohs.
„Żadna firma nie posiada ani czasu, ani środków niezbędnych do uczenia się wyłącznie na własnych błędach” James Harrington.
Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, 85 – 321 Bydgoszcz
Contactis Power Dialer Obszary zastosowania Dla CC w których nie ma możliwości realizacji automatycznych akcji wychodzących lub realizuje się je ”ręcznie”
Technologie programowania systemów internetowych
Aplikacje mobilne w zastosowaniach medycznych
Podstawy języka skryptów
Forum Pracodawców AEiI 2015 Wydział Automatyki, Elektroniki i Informatyki Gliwice, 11 marca 2015r.
Komponentowe systemy rozproszone Wprowadzenie. Komponent... jest to podstawowa jednostka oprogramowania z kontraktowo (deklaratywnie) opisanymi interfejsami,
Hibernate Podstawy.
XML w bazach danych.
Odwzorowania relacyjno-obiektowe Hibernate Podstawy.
Kierunki rozwoju usług monitorowania Outsourcing stacji monitorowania Optymalizacja kosztów.
Zintegrowany monitoring infrastruktury IT w Budimex
Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski.
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin realizacji: – Innowacyjne metody.
ŚRODOWISKO PRACY ZESPOŁU PROGRAMISTYCZNEGO BAZUJĄCE NA ROZWIĄZANIACH OPEN SOURCE Janusz Marchewa Łódź, r.
eConnect Inteligentne centrum obsługi
- Krajowe Repozytorium Obiektów Nauki i Kultury
Centrum Usług Wspólnych na przykładzie Centrum Usług Informatycznych
Zapis prezentacji:

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Tomasz Wysocki, AMG.net Senior IT Consultant

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Agenda  O AMG.net  Aplikacje komercyjne AMG.net a Open Source  Java i Open Source  Standaryzacja projektów Open Source  Innowacje w Open Source  Agile Development  Dlaczego Open Source ?

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source AMG.net – odrobina historii W ciągu 10 lat AMG.net rozwinęła się z małej agencji interaktywnej do postaci wiodącej firmy technologiczno-doradczej w Polsce, posiadającej unikalne kompetencje oraz grupę klientów, wśród których znajdują się najbardziej renomowane spółki telekomunikacyjne i finansowe Powstanie AMG.net AMG.net dzisiaj: Zespół 140+ osób 33 klientów Część grupy Bull AMG.net opracowuje własny system content management - DynaXML Powstaje serwis internetowy mBanku Tworzymy projekt MAP (Idea) AMG.net rozpoczyna współpracę z wiodącymi markami w Polsce ( TP, Grupa Żywiec, Dell, P&G ) Realizujemy portal TP Przychody w milionach PLN 2006

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Platformy technologiczne AMG.net

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source AMG.net – wybrane projekty PTK Centertel Multi Access Portal Orange World Portal umożliwiający wielokanałowy dostęp do informacji. Wspiera szeroki wachlarz działań marketingowych, sprzedaży usług i produktów oraz obsługę klienta. Obsługuje WAP 2.0 i przesyłanie strumieni wideo Zastosowane platformy: ATG Dynamo Portal Suite DynaXML Content Management BEA WebLogic Application Server Volantis Mariner

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source PZU PZU24 – Intranet Portal AMG.net – wybrane projekty Wymiana wiedzy i informacji pomiędzy pracownikami PZU. Personalizacja prezentowanych treści, zaawansowane funkcje wyszukujące umożliwiają szybkie i efektywne dotarcie do poszukiwanych informacji. Integracja z ActiveDirectory. Zastosowane platformy: DynaXML 3.0 Portal JBoss AS

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Bogata funkcjonalność samoobsługowa dla klientów korporacyjnych, związana z zarządzaniem prywatnymi sieciami komórkowymi. Skomplikowana logika przetwarzania danych. Ponad 300 różnych operacji użytkownika. Pełne wersjonowanie wszystkich danych. Koordynacja realizacji operacji na wielu systemach przez zaawansowany monitor transakcji biznesowych Integracja z 11 systemami operatora (Billing, VPN, VPABX, SMSC, LP...) Zastosowane platformy: BEA WebLogic Application Server Springframework Hibernate AMG.net - wybrane projekty PTC/ERA Aplikacja samoobsługowa dla klientów biznesowych

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Problemy w budowie aplikacji – przyczyny Podstawy  Złożoność  Sztywność  Ścisłe powiązania  Niska jakość Podstawy  Złożoność  Sztywność  Ścisłe powiązania  Niska jakość  Konsekwencje  Kosztowny rozwój kodu  Kosztowne zmiany w kodzie  Kosztowne utrzymanie kodu  Trudności w ponownym wykorzystaniu kodu  Problemy z dotrzymaniem terminów Konsekwencje  Kosztowny rozwój kodu  Kosztowne zmiany w kodzie  Kosztowne utrzymanie kodu  Trudności w ponownym wykorzystaniu kodu  Problemy z dotrzymaniem terminów  W aplikacjach biznesowych problemem nie jest koszt licencji oprogramowania.

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Problemy w budowie aplikacji – efekty praktyczne Podstawy  Prostota  Elastyczność  Luźne powiązania  Wysoka jakość Podstawy  Prostota  Elastyczność  Luźne powiązania  Wysoka jakość Korzyści  Tańszy rozwój kodu  Tańsze zmiany w kodzie  Tańsze utrzymanie kodu  Ponowne wykorzystanie kodu  Dotrzymane terminy  Większa efektywność pracy zespołu Korzyści  Tańszy rozwój kodu  Tańsze zmiany w kodzie  Tańsze utrzymanie kodu  Ponowne wykorzystanie kodu  Dotrzymane terminy  Większa efektywność pracy zespołu c c W aplikacjach biznesowych problemem nie jest koszt licencji oprogramowania.

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Główne nurty zmian Podstawy  Prostota  Elastyczność  Luźne powiązania  Wysoka jakość Podstawy  Prostota  Elastyczność  Luźne powiązania  Wysoka jakość standaryzacja innowacje agile development

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source  JSR – Java Specification Request otwarty proces, wielu uczestników, publiczne wyniki ponad 285 specyfikacji Sun, Oracle, Apple, BEA, Google, HP, Borland, Apache, Intel, IBM.....  JEE (Java EE) – Java Enterprise Edition zbiór najważniejszych JSR podstawa do implementacji serwerów aplikacji  Open Source Jakarta – JBoss – Hibernate – Springframework – i tysiące innych Standaryzacja na platformie Java

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source jakarta.apache.org Open Source - jakarta.apache.org - standard de facto  ant / maven - budowanie aplikacji  xerces / xalan - obsługa xml / xslt  biblioteki commons-* commons-lang - wspomaga programowanie obiektowe commons-collection - wspomaga używanie kolekcji Java commons-attributes - obsługa anotacji w kodzie (metadane) commons-dbcp - wspomaga obsługę połączeń JDBC commons-digester - wspomaga obsługę konfiguracji XML commons-logging - wspomaga obsługę logowania zdarzeń  log4j - biblioteka logowania zdarzeń  struts - MVC dla aplikacji webowych  poi - obsługa formatów MSOffice  bsf - obsługa dynamicznych skryptów

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source  Przeźroczysta persystencja  Open Source  Prostota konfiguracji i użytkowania  Efektywne narzędzie  Wysoka wydajność  Własny język zapytań HQL  Niezależność od motoru bazy danych  Wsparcie dla transakcji i systemów cache  Podstawa specyfikacji EJB 3.0 Hibernate Application Application Logic JDBC Driver Database Network Protocol JDBC API HIBERNATE

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source  Obsługa bazy danych zrealizowana w całości przez Hibernate 2.1  Oszczędność nakładów pracy liczona w miesiącach roboczych w porówaniu z czystym JDBC System w liczbach:  Liczba tabel w bazie: ~130  Domena: ~ 45 encji  Liczba transakcji: 5000 na dobę  Liczba plików Java: >  Liczba linii kodu: ~450 tysięcy Hibernate case study – korzyści Application Application Logic JDBC Driver Database Network Protocol JDBC API HIBERNATE

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Hibernate - standaryzacja JSR * javax.persistence.EntityManager * javax.persistence.EntityManagerFactory * javax.persistence.EntityTransaction * javax.persistence.Query * javax.persistence.EntityManager * javax.persistence.EntityManagerFactory * javax.persistence.EntityTransaction * javax.persistence.Query EJB 3.x API * org.hibernate.Session * org.hibernate.SessionFactory * org.hibernate.Transaction * org.hibernate.Query * org.hibernate.Session * org.hibernate.SessionFactory * org.hibernate.Transaction * org.hibernate.Query Hibernate jest strzałem w dziesiątkę. Obecnie trwa proces standaryzacji tego rozwiązania.

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Główne nurty zmian Podstawy  Prostota  Elastyczność  Luźne powiązania  Wysoka jakość Podstawy  Prostota  Elastyczność  Luźne powiązania  Wysoka jakość innowacje standaryzacja

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source OBJECTS B B A A C C CONFIG DESTROY CONFIG CREATE CONFIGURE CONTAIN ER Kontener komponentów Kontener komponentów zarządza komponentami aplikacji.

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Kontenery lekkie vs. ciężkie Ciężkie Komponent musi spełniać określony interfejs Komponent nie może działać bez kontenera Kontener jest duży i najczęściej wbudowany w serwer aplikacji Trudności z przetestowaniem komponentów Ciężkie Komponent musi spełniać określony interfejs Komponent nie może działać bez kontenera Kontener jest duży i najczęściej wbudowany w serwer aplikacji Trudności z przetestowaniem komponentów  Lekkie Komponenty nie muszą spełniać żadnego określonego interfejsu Komponenty mogą działać bez kontenera Kontener jest mały, szybki i nie wymaga serwera aplikacji Komponenty można łatwo przetestować Lekkie Komponenty nie muszą spełniać żadnego określonego interfejsu Komponenty mogą działać bez kontenera Kontener jest mały, szybki i nie wymaga serwera aplikacji Komponenty można łatwo przetestować

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Lekki kontener Spring - zalety  Komponenty mogą być zwykłymi Java Bean'ami (POJO)  Wspomaga budowanie aplikacji zgodnie z dobrymi praktykami projektowymi  Zarządzanie cyklem życia komponentów  Funkcjonalność DIP / IoC  Programowanie AOP  Obsługa O/RM (Hibernate, JDO, TopLink, OJB)  Integracja z JMX  Obsługa Remoting (WS / RMI)  MVC dla Web BEANS DESTROY CREATE CONFIGU RE Kontener Spring jest jednym obecnie najlepszym i najbardziej rozbudowanym lekkim kontenerem. Jego funkcjonalność została rozbudowana do postaci pełnej ramy aplikacyjnej.

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source A A A setB(B b); setC(C c); A setB(B b); setC(C c); Funkcjonalność DIP/IoC  Eliminacja kodu do wyszukiwania innych komponentów  Niezależność komponentu od kontenera  Lepiej zaprojektowany system. B B C C DIP/IoC Container DIP/IoC Container setB(b)setB(b) setC(c)setC(c) getBean(„B”)getBean(„B”)getBean(„B”)getBean(„B”) getBean(„C”)getBean(„C”)getBean(„C”)getBean(„C”) DIP (Dependency Inversion Principle) / IoC (Inversion of Control) jest kluczowym mechanizmem kontenera Spring zwiększającym jego funkcjonalność i użyteczność.

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source  Liczba komponentów: 900+  Liczba osobnych kontenerów: 3  Wszystkie elementy aplikacji w spójnej infrastrukturze  Spójna konfiguracja w plikach XML  Prostota rozwiązania i łatwość rozbudowy  Integracja z Hibernate  Wykorzystane mechanizmy AOP  Aplikacja jest niezależna od serwera aplikacji  Łatwość automatycznego testowania aplikacji  Oszczędności nakładów pracy szacowane w miesiącach pracy w porówaniu z EJB Springframework – case study - kontener komponentów FRONT CORE TX ENGINE SERVICE AUX AOP CONTROLLERS GUI INTEGRATION DAO HB DS MONITORING TRANSACTIONS SECURITY

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source innowacje standaryzacja Główne nurty zmian Podstawy  Prostota  Elastyczność  Luźne powiązania  Wysoka jakość Podstawy  Prostota  Elastyczność  Luźne powiązania  Wysoka jakość agile development

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Główne założenia eXtreme Programming  Projekt  Prostota  Przeglądy kodu  Testowanie  Testy integracyjne  Krótkie iteracje  Refactoring  KISS  Programowanie w parach  TDD  Ciągła integracja  Zabawa w planowanie eXtreme Programmin g eXtreme Programmin g eXtreme Programming to ekstremalne wzmocnienie dobrych praktyk programistycznych.

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source  Liczba scenariuszy :  Pełen przebieg testów: ~90 min  Scenariusze biznesowe i jednostkowe są kodowane jako testy JUnit  Programista uruchamia testy w Eclipse  Testy JUnit są uruchamiane w nocy i powstają automatyczne raporty ( Maven )  Eclipse dostarcza możliwości Refactoringu  Kod i konfiguracja jest wersjonowany w repozytorium SubVersion Metodologia budowania aplikacji Narzędzia Open Source bardzo efektywnie wspomagają proces budowania aplikacji

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Open Source a Java Open Source  Zgodność ze standardami  Ogromna liczba bibliotek  Tańsze utrzymanie kodu  Dostęp do kodu źródłowego  Innowacyjne rozwiązania  Wysoka jakość Open Source  Zgodność ze standardami  Ogromna liczba bibliotek  Tańsze utrzymanie kodu  Dostęp do kodu źródłowego  Innowacyjne rozwiązania  Wysoka jakość

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Open Source a Java - Serwery aplikacji  JBoss  Tomcat  Geronimo  JOnAS  Jetty  Glassfish  Caucho Resin  BEA WebLogic  IBM WebSphere  SUN AppServ  Oracle OC4J  ATG Open Source Komercyjn e

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Open Source a Java - Narzędzia  Eclipse, NetBeans, jEdit  JUnit, JWebUnit, JMock, EasyMock, Canoo, Cactus, JMeter  Ant, Maven, DamageControl  XDoclet, QDox, AndroMDA, ArgoUML  Checkstyle, PMD, Jalopy, JDepend

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Open Source a Java - Biblioteki i Frameworki  Springframework, PicoContainer, Avalon, HiveMind, OpenEJB, Plexus, Jencks, Mule, XWork, ServiceMix  Struts, Velocity, Tapestry, WebWork, Cocoon, JetSpeed, MyFaces, RIFE, LifeRay, Exo, Pluto  Axis, XFire  AspectWerkz, Nanning, JBossAOP  Hibernate, OJB, Castor, Cayenne, iBatis, C-JDBC, Speedo  Xerces, Xalan, Saxon, dom4j, jdom, XMLBeans, XStream, JiBX, Castor, StAX  jakarta.apache.org

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Sesja Q&A

Komercyjne systemy informatyczne oparte na platformie Java i rozwiązaniach Open Source Oferta dla studentów – centrum praktyk AMG.start  Centrum Praktyk AMG.start – 3 miesięczny program praktyk o profilu programistycznym (Java) obejmujący cykl warsztatów i oparty na udziale w projektach  Szansa dla studentów na: poznanie profesjonalnych narzędzi i technik programowania zapoznanie się z obsługą platform JBoss, BEA Weblogic i ATG Dynamo zdobycie doświadczenia w budowaniu złożonych aplikacji w oparciu o platformę J2EE z użyciem najnowszych i najbardziej zaawansowanych technologii wzięcie udziału w unikalnych projektach informatycznych dla największych firm w Polsce  Oferta pracy w AMG.net dla najzdolniejszych!