SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Advantage Software Factory




         Java Enterprise in the Real World
         NextReports
         Octombrie, 2011



Advantage Software Factory                   www.asf.ro
Agenda



            Despre noi
            Arhitectură aplicaţie de tip enterprise
            Arhitectură creare artefacte
            NextReports
            Frameworks
            Modalităţi de integrare
            Demo
            Concluzii


Advantage Software Factory                            www.asf.ro
Despre noi

       Advantage Software Factory
       firmă românească înfiinţată în 2001

       4 linii de afaceri:
             Sistemul de colectare Capone
             Suita de aplicaţii AnytimeCRM
             Software-ul de raportare NextReports
             Dezvoltarea de soluţii la cererea clientului

       Prezentare
                   Decebal Şuiu, Senior Java Developer
                   Mihai Dincă-Panaitescu, Senior Java Developer


Advantage Software Factory                                         www.asf.ro
Arhitectură aplicaţie enterprise




Advantage Software Factory                    www.asf.ro
Arhitectură creare artefacte




Advantage Software Factory                www.asf.ro
NextReports


       Suită de aplicaţii Java pentru crearea şi
     distribuirea de rapoarte în mediul enterprise

          Designer gratuit de rapoarte

          Engine (API) gratuit pentru rularea rapoartelor




Advantage Software Factory                                  www.asf.ro
NextReports

             Enterprise Server
                             - centralizare
                             - administrare
                             - rulare programată automată
                             - distribuţie
                             - versionare
                             - istoric
                             - monitorizare
                             - securitate
                             - vizualizare in timp real
                             - analiză


Advantage Software Factory                                  www.asf.ro
NextReports: aplicaţie enterprise




Advantage Software Factory                     www.asf.ro
NextReports: creare artefacte




Advantage Software Factory                www.asf.ro
Spring


           Injectare dependinţe (DI)
           Tranzacţii
           Simplificare acces la storage
           Securitate
           AOP
           Configurabilitate: servicii, UI




Advantage Software Factory                   www.asf.ro
Spring
        public class ReportServiceImpl implements ReportService {
                private StorageDao storageDao;
                @Required
                public void setStorageDao(StorageDao storageDao) {
                         this.storageDao = storageDao;
                }


                @Transactional(readOnly = true)
                @Secured("AFTER_ACL_COLLECTION_READ")
                public List<RunReportHistory> getRunHistory() {
                        return storageDao.getRunHistory();
                }
        }

Advantage Software Factory                                           www.asf.ro
JackRabbit

            JCR
         - storage, acces si administrare de conţinut
         - structură de date ierarhică
         - versionare
         - control acces
         - căutare

            JackRabbit
         - implementare completă JCR
         - integrare cu Spring

            JCROM
         - framework de mapare între obiectele Java şi JCR
         - bazat pe adnotări (fără XML)
Advantage Software Factory                                   www.asf.ro
JackRabbit
        @JcrNode (classNameProperty="className",
                             mixinTypes = {"mix:referenceable", "mix:versionable"})
        public class Chart {
            @JcrProperty
            private String description;


            @JcrReference
            private DataSource dataSource;


            @JcrChildNode(createContainerNode = false)
            private ChartContent content;
            …
        }

Advantage Software Factory                                                            www.asf.ro
Wicket



             POJO
             Uşurinţă în dezvoltare (Java + HTML)
             Componente reutilizabile
             Suport AJAX
             Integrare cu Spring
             WiQuery (JQuery)




Advantage Software Factory                          www.asf.ro
Wicket

        ActionPanel.java
        public class ActionPanel extends Panel {
             @SpringBean
             private ReportService reportService;
             public ActionPanel(String id, final IModel<Entity> model) {
                       add(new Label("entityId", "Id"));
              }
        }
        ActionPanel.html
        <wicket:panel>
             <label wicket:id="entityId">[]</label>
        </wicket:panel>


Advantage Software Factory                                                 www.asf.ro
Jersey



           Implementare JAX-RS

           Oferă un API pentru apeluri REST

           Integrare cu Spring




Advantage Software Factory                    www.asf.ro
Jersey


      @Path("storage")
      public class StorageWebService {

      @InjectParam
      private StorageService storageService;

      @POST
      @Path("publishReport")
      public void publishReport(ReportMetaData reportMetaData) {..}
      }




Advantage Software Factory                                            www.asf.ro
Integrare

             Creare de API-uri uşor de utilizat

           FluentReportRunner
             .report(loadReport(new FileInputStream(“test.xml”)))
             .connectTo(connection)
             .withQueryTimeout(60)
             .withParameterValues(createParameterValues())
             .formatAs(ReportRunner.HTML_FORMAT)
             .run(new FileOutputStream("test.html"));

             Procese de sincronizare
             Externalizarea securităţii
             Servicii Web


Advantage Software Factory                                          www.asf.ro
Demo




         Prezentare NextReports




Advantage Software Factory        www.asf.ro
Concluzii



        Alegere framework-uri:

             Necesităţile de implementare
             Funcţionalităţi
             Interoperabilitate cu alte framework-uri
             Usurinţa în utilizare
             Comunitate



Advantage Software Factory                              www.asf.ro
Contact



     Advantage Software Factory
     address: 169 Calea Floreasca, IPA building, 6th floor, Sect. 1, Bucharest, Romania.
     phone: +4 01 242 87 20
     fax: +4 01 242 87 22

     web:       www.next-reports.com
     demo:      demo.next-reports.com

     email:      next-support@asf.ro
                 decebal.suiu@asf.ro
                 mihai.panaitescu@asf.ro




Advantage Software Factory                                                                 www.asf.ro

Weitere ähnliche Inhalte

Andere mochten auch

Introduction to Blockchain and Recordkeeping
Introduction to Blockchain and RecordkeepingIntroduction to Blockchain and Recordkeeping
Introduction to Blockchain and RecordkeepingPeter Van Garderen
 
WoodInno Tulevaisuusfoorumi - Pekka Malinen, Wood Academy
WoodInno Tulevaisuusfoorumi - Pekka Malinen, Wood AcademyWoodInno Tulevaisuusfoorumi - Pekka Malinen, Wood Academy
WoodInno Tulevaisuusfoorumi - Pekka Malinen, Wood Academywoodinno
 
WoodInno Tulevaisuusfoorumi - Petri Heino, Suomalaisen puurakentamisen osaami...
WoodInno Tulevaisuusfoorumi - Petri Heino, Suomalaisen puurakentamisen osaami...WoodInno Tulevaisuusfoorumi - Petri Heino, Suomalaisen puurakentamisen osaami...
WoodInno Tulevaisuusfoorumi - Petri Heino, Suomalaisen puurakentamisen osaami...woodinno
 
My birdie book
My birdie bookMy birdie book
My birdie bookrelihan56
 
Nouveaux services, nouveaux workflows et François Abbe Mesclado
Nouveaux services, nouveaux workflows et François Abbe MescladoNouveaux services, nouveaux workflows et François Abbe Mesclado
Nouveaux services, nouveaux workflows et François Abbe MescladoMarc Bourhis
 
Kizildere primary school
Kizildere primary schoolKizildere primary school
Kizildere primary schooljosepinero
 
Un agla, un arbre, un somni scn ceci
Un agla, un arbre, un somni scn ceciUn agla, un arbre, un somni scn ceci
Un agla, un arbre, un somni scn cecialzina60
 
PresentaciónQuímica
PresentaciónQuímicaPresentaciónQuímica
PresentaciónQuímicaebamleal
 

Andere mochten auch (13)

Introduction to Blockchain and Recordkeeping
Introduction to Blockchain and RecordkeepingIntroduction to Blockchain and Recordkeeping
Introduction to Blockchain and Recordkeeping
 
WoodInno Tulevaisuusfoorumi - Pekka Malinen, Wood Academy
WoodInno Tulevaisuusfoorumi - Pekka Malinen, Wood AcademyWoodInno Tulevaisuusfoorumi - Pekka Malinen, Wood Academy
WoodInno Tulevaisuusfoorumi - Pekka Malinen, Wood Academy
 
WoodInno Tulevaisuusfoorumi - Petri Heino, Suomalaisen puurakentamisen osaami...
WoodInno Tulevaisuusfoorumi - Petri Heino, Suomalaisen puurakentamisen osaami...WoodInno Tulevaisuusfoorumi - Petri Heino, Suomalaisen puurakentamisen osaami...
WoodInno Tulevaisuusfoorumi - Petri Heino, Suomalaisen puurakentamisen osaami...
 
My birdie book
My birdie bookMy birdie book
My birdie book
 
Lala
LalaLala
Lala
 
Nouveaux services, nouveaux workflows et François Abbe Mesclado
Nouveaux services, nouveaux workflows et François Abbe MescladoNouveaux services, nouveaux workflows et François Abbe Mesclado
Nouveaux services, nouveaux workflows et François Abbe Mesclado
 
Guerrers de riace
Guerrers de riaceGuerrers de riace
Guerrers de riace
 
Iphone 5
Iphone 5Iphone 5
Iphone 5
 
E commerce
E commerceE commerce
E commerce
 
Kizildere primary school
Kizildere primary schoolKizildere primary school
Kizildere primary school
 
Un agla, un arbre, un somni scn ceci
Un agla, un arbre, un somni scn ceciUn agla, un arbre, un somni scn ceci
Un agla, un arbre, un somni scn ceci
 
La que se avecina
La que se avecinaLa que se avecina
La que se avecina
 
PresentaciónQuímica
PresentaciónQuímicaPresentaciónQuímica
PresentaciónQuímica
 

Ähnlich wie Java enterprise real world

OSOM - Performance in testing by jmeter
OSOM - Performance in testing by jmeterOSOM - Performance in testing by jmeter
OSOM - Performance in testing by jmeterMarcela Oniga
 
Dezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Webdanielnastase
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
 
Programare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatiiProgramare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatiiSabin Buraga
 
Model View Controller și ASP.NET MVC + AJAX
Model View Controller și ASP.NET MVC + AJAXModel View Controller și ASP.NET MVC + AJAX
Model View Controller și ASP.NET MVC + AJAXEnea Gabriel
 
Aplicații Firefox OS cu HTML5
Aplicații Firefox OS cu HTML5Aplicații Firefox OS cu HTML5
Aplicații Firefox OS cu HTML5Sabin Buraga
 
Noutăţi în ASP.NET MVC 2
Noutăţi în ASP.NET MVC 2Noutăţi în ASP.NET MVC 2
Noutăţi în ASP.NET MVC 2Enea Gabriel
 
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...Codecamp Romania
 
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)Sabin Buraga
 
Arhitectura browser-ului Web
Arhitectura browser-ului WebArhitectura browser-ului Web
Arhitectura browser-ului WebSabin Buraga
 
Democamp Bucharest 2010 P2 Ro
Democamp Bucharest 2010   P2 RoDemocamp Bucharest 2010   P2 Ro
Democamp Bucharest 2010 P2 RoAntonel Pazargic
 
[Web Days] Introducere In Silverlight 2
[Web Days] Introducere In Silverlight 2[Web Days] Introducere In Silverlight 2
[Web Days] Introducere In Silverlight 2Diana Tataran
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...Sabin Buraga
 
3173119 aplicatii-de-retea
3173119 aplicatii-de-retea3173119 aplicatii-de-retea
3173119 aplicatii-de-reteasorinm10
 
Tratarea problemelor de securitate in Adobe AIR
Tratarea problemelor de securitate in Adobe AIRTratarea problemelor de securitate in Adobe AIR
Tratarea problemelor de securitate in Adobe AIRVieriu Valentin
 
Vincentiu Cuc - Platforma IT IMI
Vincentiu Cuc - Platforma IT IMIVincentiu Cuc - Platforma IT IMI
Vincentiu Cuc - Platforma IT IMIIMI PQ NET Romania
 
Node.js: aspecte esențiale
Node.js: aspecte esențialeNode.js: aspecte esențiale
Node.js: aspecte esențialeSabin Buraga
 
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5Sabin Buraga
 
Designing RESTful webservices and web apis
Designing RESTful webservices and web apisDesigning RESTful webservices and web apis
Designing RESTful webservices and web apisRemus Pereni
 

Ähnlich wie Java enterprise real world (20)

OSOM - Performance in testing by jmeter
OSOM - Performance in testing by jmeterOSOM - Performance in testing by jmeter
OSOM - Performance in testing by jmeter
 
Dezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Web
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
 
Webappdev
WebappdevWebappdev
Webappdev
 
Programare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatiiProgramare Web - De la CGI la servere de aplicatii
Programare Web - De la CGI la servere de aplicatii
 
Model View Controller și ASP.NET MVC + AJAX
Model View Controller și ASP.NET MVC + AJAXModel View Controller și ASP.NET MVC + AJAX
Model View Controller și ASP.NET MVC + AJAX
 
Aplicații Firefox OS cu HTML5
Aplicații Firefox OS cu HTML5Aplicații Firefox OS cu HTML5
Aplicații Firefox OS cu HTML5
 
Noutăţi în ASP.NET MVC 2
Noutăţi în ASP.NET MVC 2Noutăţi în ASP.NET MVC 2
Noutăţi în ASP.NET MVC 2
 
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
 
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
 
Arhitectura browser-ului Web
Arhitectura browser-ului WebArhitectura browser-ului Web
Arhitectura browser-ului Web
 
Democamp Bucharest 2010 P2 Ro
Democamp Bucharest 2010   P2 RoDemocamp Bucharest 2010   P2 Ro
Democamp Bucharest 2010 P2 Ro
 
[Web Days] Introducere In Silverlight 2
[Web Days] Introducere In Silverlight 2[Web Days] Introducere In Silverlight 2
[Web Days] Introducere In Silverlight 2
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
 
3173119 aplicatii-de-retea
3173119 aplicatii-de-retea3173119 aplicatii-de-retea
3173119 aplicatii-de-retea
 
Tratarea problemelor de securitate in Adobe AIR
Tratarea problemelor de securitate in Adobe AIRTratarea problemelor de securitate in Adobe AIR
Tratarea problemelor de securitate in Adobe AIR
 
Vincentiu Cuc - Platforma IT IMI
Vincentiu Cuc - Platforma IT IMIVincentiu Cuc - Platforma IT IMI
Vincentiu Cuc - Platforma IT IMI
 
Node.js: aspecte esențiale
Node.js: aspecte esențialeNode.js: aspecte esențiale
Node.js: aspecte esențiale
 
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
 
Designing RESTful webservices and web apis
Designing RESTful webservices and web apisDesigning RESTful webservices and web apis
Designing RESTful webservices and web apis
 

Java enterprise real world

  • 1. Advantage Software Factory Java Enterprise in the Real World NextReports Octombrie, 2011 Advantage Software Factory www.asf.ro
  • 2. Agenda Despre noi Arhitectură aplicaţie de tip enterprise Arhitectură creare artefacte NextReports Frameworks Modalităţi de integrare Demo Concluzii Advantage Software Factory www.asf.ro
  • 3. Despre noi Advantage Software Factory firmă românească înfiinţată în 2001 4 linii de afaceri: Sistemul de colectare Capone Suita de aplicaţii AnytimeCRM Software-ul de raportare NextReports Dezvoltarea de soluţii la cererea clientului Prezentare Decebal Şuiu, Senior Java Developer Mihai Dincă-Panaitescu, Senior Java Developer Advantage Software Factory www.asf.ro
  • 4. Arhitectură aplicaţie enterprise Advantage Software Factory www.asf.ro
  • 5. Arhitectură creare artefacte Advantage Software Factory www.asf.ro
  • 6. NextReports Suită de aplicaţii Java pentru crearea şi distribuirea de rapoarte în mediul enterprise Designer gratuit de rapoarte Engine (API) gratuit pentru rularea rapoartelor Advantage Software Factory www.asf.ro
  • 7. NextReports Enterprise Server - centralizare - administrare - rulare programată automată - distribuţie - versionare - istoric - monitorizare - securitate - vizualizare in timp real - analiză Advantage Software Factory www.asf.ro
  • 8. NextReports: aplicaţie enterprise Advantage Software Factory www.asf.ro
  • 9. NextReports: creare artefacte Advantage Software Factory www.asf.ro
  • 10. Spring Injectare dependinţe (DI) Tranzacţii Simplificare acces la storage Securitate AOP Configurabilitate: servicii, UI Advantage Software Factory www.asf.ro
  • 11. Spring public class ReportServiceImpl implements ReportService { private StorageDao storageDao; @Required public void setStorageDao(StorageDao storageDao) { this.storageDao = storageDao; } @Transactional(readOnly = true) @Secured("AFTER_ACL_COLLECTION_READ") public List<RunReportHistory> getRunHistory() { return storageDao.getRunHistory(); } } Advantage Software Factory www.asf.ro
  • 12. JackRabbit JCR - storage, acces si administrare de conţinut - structură de date ierarhică - versionare - control acces - căutare JackRabbit - implementare completă JCR - integrare cu Spring JCROM - framework de mapare între obiectele Java şi JCR - bazat pe adnotări (fără XML) Advantage Software Factory www.asf.ro
  • 13. JackRabbit @JcrNode (classNameProperty="className", mixinTypes = {"mix:referenceable", "mix:versionable"}) public class Chart { @JcrProperty private String description; @JcrReference private DataSource dataSource; @JcrChildNode(createContainerNode = false) private ChartContent content; … } Advantage Software Factory www.asf.ro
  • 14. Wicket POJO Uşurinţă în dezvoltare (Java + HTML) Componente reutilizabile Suport AJAX Integrare cu Spring WiQuery (JQuery) Advantage Software Factory www.asf.ro
  • 15. Wicket ActionPanel.java public class ActionPanel extends Panel { @SpringBean private ReportService reportService; public ActionPanel(String id, final IModel<Entity> model) { add(new Label("entityId", "Id")); } } ActionPanel.html <wicket:panel> <label wicket:id="entityId">[]</label> </wicket:panel> Advantage Software Factory www.asf.ro
  • 16. Jersey Implementare JAX-RS Oferă un API pentru apeluri REST Integrare cu Spring Advantage Software Factory www.asf.ro
  • 17. Jersey @Path("storage") public class StorageWebService { @InjectParam private StorageService storageService; @POST @Path("publishReport") public void publishReport(ReportMetaData reportMetaData) {..} } Advantage Software Factory www.asf.ro
  • 18. Integrare Creare de API-uri uşor de utilizat FluentReportRunner .report(loadReport(new FileInputStream(“test.xml”))) .connectTo(connection) .withQueryTimeout(60) .withParameterValues(createParameterValues()) .formatAs(ReportRunner.HTML_FORMAT) .run(new FileOutputStream("test.html")); Procese de sincronizare Externalizarea securităţii Servicii Web Advantage Software Factory www.asf.ro
  • 19. Demo Prezentare NextReports Advantage Software Factory www.asf.ro
  • 20. Concluzii Alegere framework-uri: Necesităţile de implementare Funcţionalităţi Interoperabilitate cu alte framework-uri Usurinţa în utilizare Comunitate Advantage Software Factory www.asf.ro
  • 21. Contact Advantage Software Factory address: 169 Calea Floreasca, IPA building, 6th floor, Sect. 1, Bucharest, Romania. phone: +4 01 242 87 20 fax: +4 01 242 87 22 web: www.next-reports.com demo: demo.next-reports.com email: next-support@asf.ro decebal.suiu@asf.ro mihai.panaitescu@asf.ro Advantage Software Factory www.asf.ro