SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Spring in the Enterprise
Session Topics

1.   What is Spring & Why use it?

2.   Architecting in Spring

3.   Enterprise Spring

4.   Spring & SOA

5.   Modular Spring w/ OSGi

6.   Spring RAD & Tools
Spring Theory
What is Spring? - The Basics

 Open Source Framework
 Bean Container
   Bean Lifecycle Management

   Bean Scope

   Post Processing Hooks

   Event Processing

 Inversion of Control (IoC)
 Dependency Injection (DI)
   Centralized Configuration

   Annotation Support        <XML   />   @Annotations
What is Spring? - Features

 Core
   Standard Java Apps
                                  Web Flow
                                    Stateful Page Flows
 Spring MVC
   Powerful controller config
   Flexible data formatting      Enterprise Integration
   RESTful
                                    JMS

 Rich Web Applications             Remoting
   Web Flow                        Spring Integration
   BlazeDS (Flex)
                                    Spring Batch
   Spring Faces (JSF)
   Spring JS                       Web Services
   Spring JSP/JSTL
Why Use Spring? – Core Benefits

 POJOs
   Our Java Beans

   GOAL: Beans are technology & platform agnostic

 Bean Lifecycle & Dependency Management
   no more “new myClass()”

 Standard Java Technologies
   JSR-303, JSR-250, JSR-317, etc.

 Data Management
   Conversion, Marshaling, Formatting

   Data from WS, UI, Remoting, Integration, JMS, etc.
Why Use Spring? – Scalable

 Configuration Flexibility
   XML, Annotations, JavaConfigX



 Implementation Changes w/o Recompile!
                                                                RMI
                                                            X
                                                   MyBean   M
 Plumbing handled for us                                   L

                                                                JMS
   If it “sucks” in Java, Spring makes it “suck less”



 Aspect Oriented Programming (AOP)
Why use Spring? - AOP

 Spring uses AOP to perform
 common operations
    Transactional processing
    Data Access & Exception
     Wrapping
    Security
    etc.

 Write Aspects to Augment
 POjOs

 Spring AOP and AspectJ
Why use Spring? - Enterprise Features

 JEE Server Support    JTA/XA
     GlassFish         Spring Security
     JBoss
                            Authentication
     Tomcat
     WebLogic              Authorization
     Websphere

                        SOAP &RESTfulWS
 JNDI Access
     Queues            Spring Integration

     DB Resources      Spring Batch
                        Remoting
                            RMI
                            HTTP
Why use Spring? – Comprehensive
Session Topics

1.   What is Spring & Why use it?

2.   Architecting in Spring

3.   Enterprise Spring

4.   Spring & SOA

5.   Modular Spring w/ OSGi

6.   Spring RAD & Tools
Architecting in Spring
Architecting Services with POJOs

 Plain Old Java Objects
 Create Services as POJOs
 Expose Services via Configuration
 Do Not:
   import, extend or inject framework or technology specific
    classes


Gordo’s Rule
 It’s Not a POJO if you have plumbing/framework
  references in the “imports”.
Session Topics

1.   What is Spring & Why use it?

2.   Architecting in Spring

3.   Enterprise Spring

4.   Spring & SOA

5.   Modular Spring w/ OSGi

6.   Spring RAD & Tools
Enterprise Spring Projects



     Spring Web Flow

     Spring Security

     Spring Integration

     Spring Batch
Spring Web Flow

 Stateful Web Page Flows


 Old “wizard” style


 Plugs into Spring MVC
  Controllers

 Use-Case:
   Site Registration & Payment
Spring Security

 Separates Authentication from Authorization
 Simple to configure
 Feature Rich
   Users, Roles, Groups, Voters, ACL

 Authentication
   DBMS – existing or custom
   LDAP

 Authorization
   UI Components
   Methods
   URLs
Spring Security Overview
Spring Integration

 Enterprise Messaging


 Message Driven Solution


 Message Routing, Transformation, Filtering


 “Enterprise Integration Patterns”        Architect?

   by Hohpe& Wolfe – eaipatterns.com

                                              YES

 Focus on the Payload!                 Must Know EIP!!!
Mail Sender

 Use-Case: Trigger Mail to send to Gmail
 Given MessageRecipient Bean
 Advantages?
Spring Batch

 Large Dataset Processing


 Offline and Online
 Persistent Job states
 Transaction size configuration
 Job Segment Recovery
 Scheduled or Triggered Jobs
 Web Console


 Use in simple psv main app
 Use in enterprise apps
Spring Integration Flows

 Use-Case: File Uploading from UI, parse & persist
   Large Files

   File Indexing & Searching
Spring Integration & Batch

 Receive notification, retrieve file, parse & persist
Session Topics

1.   What is Spring & Why use it?

2.   Architecting in Spring

3.   Enterprise Spring

4.   Spring & SOA

5.   Modular Spring w/ OSGi

6.   Spring RAD & Tools
Spring & SOA

 Spring SOAP Web Services


 Spring RESTful Web Services


 Spring Remoting
   RMI

   HTTP

   Hessian & Burlap

   Corba IIOP

   EJB Invocation
Session Topics

1.   What is Spring & Why use it?

2.   Architecting in Spring

3.   Enterprise Spring

4.   Spring & SOA

5.   Modular Spring w/ OSGi

6.   Spring RAD & Tools
Modular Java with OSGi

 Disciplined paradigm


 Reduces:
   Classpath hell!



 Controlled QA


 Only deploy modules
  needed or bought
OSGi Container

 A dynamic component platform


 Configures, starts & stops components at
  runtime

 Provides a set of Management APIs and lifecycle events


 Products:
   Apache Felix
   Eclipse Equinox
   Eclipse Virgo
   Knopflerfish
OSGi Bundles

 Bundle
   Set of classes & resources deployed as a
    versioned module
   Can depend on other bundles by version
    ranges

 A Java archive
   Includes special Manifest entries in
    META-INF/MANIFEST.MF

 Deployed to container

 Can be extended with Fragments
Service Registry
Bundle Lifecycle

 Installed


 Resolved


 Starting


 Active


 Stopping


 Uninstalled
Modular Java - OSGi

 Eclipse Gemini
   Formerly: Spring Dynamic Modules
   Spring Blueprint service – Bundle extension for Bean Context
   Bundle activation
   Service registration

 Eclipse Virgo
   Formerly: Spring dm Server
   Full OSGi server platform
   Bundle Provisioning
   Console Management & Logging
   Modular UI Components
   Module Scoping
Bundle Manifest

 Contains identifying information
 Lists exported and imported packages
 Can provide a Bundle Activator
 Can list constraints such as JDK version, etc.

 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: maven-osgi-demo-services
 Bundle-Name: Maven OSGi Demo – Services
 Bundle-Version: 1.0.0.SNAPSHOT
 Export-Package:com.chariot.services
 Bundle-Activator:com.chariot.services.ServiceActivator
 Import-Package:com.chariot.services,com.chariot.services.impl,com.cha
 riot.services.interfaces,org.osgi.framework;version="1.3"
How does Spring help?

 Each Bundle has a Spring Context
 Services Exposed / Imported via OSGi namespace

<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-2.5.xsd
        http://www.springframework.org/schema/osgi
        http://www.springframework.org/schema/osgi/spring-osgi-1.0.xsd">


<osgi:service id="exampleBeanService”
       ref="exampleBean"
   interface="com.chariot.demo.bean.ExampleBean"/>

</beans>
Eclipse Virgo

 OSGi Server Platform built upon Eclipse Equinox

 Group bundles for deployment into modules

 Module deployment via PAR and PLAN files

 Provisioning
     Locate bundles in repositories
     Local or Remote repositories

 Admin Console
     Deploy & Manage Artifacts                        www.eclipse.org/virgo/
     Diagnostic dumps
     Bundle wiring

 Web Server
     Supports standard WAR files
     Ships with Tomcat
Session Topics

1.   What is Spring & Why use it?

2.   Architecting in Spring

3.   Enterprise Spring

4.   Spring & SOA

5.   Modular Spring w/ OSGi

6.   Spring RAD & Tools
RAD Tools

 Roo
   Build and configure Java objects

   Interactive management

   Demonstrates Best Practices

   Database Reverse engineering

 Grails
   Built on the Spring & Hibernate platform

   Dynamic coding with Groovy language

   Completely supports Java libraries

   Hundreds of plug-ins
SpringSource Tool Suite

 Built on the very popular Eclipse IDE


 Provides Spring specific features


 View components
   Bean Dependency Relationships

   Integration Flows



 Supports Roo, Grails & Groovy
Summary

 Comprehensive framework


 Java Standards


 Extensible


 Focus on Problem Domain


 Configure System Domain


 Designed RI for Eclipse OSGi Modular Projects

Weitere ähnliche Inhalte

Was ist angesagt?

Picking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use CasePicking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use CaseJimmy Guerrero
 
REST API Doc Best Practices
REST API Doc Best PracticesREST API Doc Best Practices
REST API Doc Best PracticesMarta Rauch
 
Business Applications Integration In The Cloud
Business Applications Integration In The CloudBusiness Applications Integration In The Cloud
Business Applications Integration In The CloudAnna Brzezińska
 
What is App Engine? O
What is App Engine? OWhat is App Engine? O
What is App Engine? Oikailan
 
HATEOAS 101 - Opinionated Introduction to a REST API Style
HATEOAS 101 - Opinionated Introduction to a REST API StyleHATEOAS 101 - Opinionated Introduction to a REST API Style
HATEOAS 101 - Opinionated Introduction to a REST API StyleApigee | Google Cloud
 
WAS vs JBoss, WebLogic, Tomcat (year 2015)
WAS vs JBoss, WebLogic, Tomcat (year 2015)WAS vs JBoss, WebLogic, Tomcat (year 2015)
WAS vs JBoss, WebLogic, Tomcat (year 2015)Roman Kharkovski
 
RESTful modules in zf2
RESTful modules in zf2RESTful modules in zf2
RESTful modules in zf2Corley S.r.l.
 
SharePoint Data Anywhere and Everywhere by Chris Beckett - SPTechCon
SharePoint Data Anywhere and Everywhere by Chris Beckett - SPTechConSharePoint Data Anywhere and Everywhere by Chris Beckett - SPTechCon
SharePoint Data Anywhere and Everywhere by Chris Beckett - SPTechConSPTechCon
 
Building ColdFusion And AngularJS Applications
Building ColdFusion And AngularJS ApplicationsBuilding ColdFusion And AngularJS Applications
Building ColdFusion And AngularJS ApplicationsColdFusionConference
 
API Design Methodology - Mike Amundsen, Director of API Architecture, API Aca...
API Design Methodology - Mike Amundsen, Director of API Architecture, API Aca...API Design Methodology - Mike Amundsen, Director of API Architecture, API Aca...
API Design Methodology - Mike Amundsen, Director of API Architecture, API Aca...CA API Management
 
Creating Web Services with Zend Framework - Matthew Turland
Creating Web Services with Zend Framework - Matthew TurlandCreating Web Services with Zend Framework - Matthew Turland
Creating Web Services with Zend Framework - Matthew TurlandMatthew Turland
 
Java EE and Spring Side-by-Side
Java EE and Spring Side-by-SideJava EE and Spring Side-by-Side
Java EE and Spring Side-by-SideReza Rahman
 
Locking and Race Conditions in Web Applications
Locking and Race Conditions in Web ApplicationsLocking and Race Conditions in Web Applications
Locking and Race Conditions in Web ApplicationsAndrew Kandels
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & DevelopmentAshok Pundit
 
26 top angular 8 interview questions to know in 2020 [www.full stack.cafe]
26 top angular 8 interview questions to know in 2020   [www.full stack.cafe]26 top angular 8 interview questions to know in 2020   [www.full stack.cafe]
26 top angular 8 interview questions to know in 2020 [www.full stack.cafe]Alex Ershov
 

Was ist angesagt? (20)

API Design- Best Practices
API Design-   Best PracticesAPI Design-   Best Practices
API Design- Best Practices
 
Picking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use CasePicking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use Case
 
REST API Doc Best Practices
REST API Doc Best PracticesREST API Doc Best Practices
REST API Doc Best Practices
 
Business Applications Integration In The Cloud
Business Applications Integration In The CloudBusiness Applications Integration In The Cloud
Business Applications Integration In The Cloud
 
Building REST and Hypermedia APIs with PHP
Building REST and Hypermedia APIs with PHPBuilding REST and Hypermedia APIs with PHP
Building REST and Hypermedia APIs with PHP
 
What is App Engine? O
What is App Engine? OWhat is App Engine? O
What is App Engine? O
 
HATEOAS 101 - Opinionated Introduction to a REST API Style
HATEOAS 101 - Opinionated Introduction to a REST API StyleHATEOAS 101 - Opinionated Introduction to a REST API Style
HATEOAS 101 - Opinionated Introduction to a REST API Style
 
WAS vs JBoss, WebLogic, Tomcat (year 2015)
WAS vs JBoss, WebLogic, Tomcat (year 2015)WAS vs JBoss, WebLogic, Tomcat (year 2015)
WAS vs JBoss, WebLogic, Tomcat (year 2015)
 
RESTful modules in zf2
RESTful modules in zf2RESTful modules in zf2
RESTful modules in zf2
 
SFDC REST API
SFDC REST APISFDC REST API
SFDC REST API
 
SharePoint Data Anywhere and Everywhere by Chris Beckett - SPTechCon
SharePoint Data Anywhere and Everywhere by Chris Beckett - SPTechConSharePoint Data Anywhere and Everywhere by Chris Beckett - SPTechCon
SharePoint Data Anywhere and Everywhere by Chris Beckett - SPTechCon
 
Building ColdFusion And AngularJS Applications
Building ColdFusion And AngularJS ApplicationsBuilding ColdFusion And AngularJS Applications
Building ColdFusion And AngularJS Applications
 
API Design Methodology - Mike Amundsen, Director of API Architecture, API Aca...
API Design Methodology - Mike Amundsen, Director of API Architecture, API Aca...API Design Methodology - Mike Amundsen, Director of API Architecture, API Aca...
API Design Methodology - Mike Amundsen, Director of API Architecture, API Aca...
 
Creating Web Services with Zend Framework - Matthew Turland
Creating Web Services with Zend Framework - Matthew TurlandCreating Web Services with Zend Framework - Matthew Turland
Creating Web Services with Zend Framework - Matthew Turland
 
Java EE and Spring Side-by-Side
Java EE and Spring Side-by-SideJava EE and Spring Side-by-Side
Java EE and Spring Side-by-Side
 
Mashups
MashupsMashups
Mashups
 
Restful services with ColdFusion
Restful services with ColdFusionRestful services with ColdFusion
Restful services with ColdFusion
 
Locking and Race Conditions in Web Applications
Locking and Race Conditions in Web ApplicationsLocking and Race Conditions in Web Applications
Locking and Race Conditions in Web Applications
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & Development
 
26 top angular 8 interview questions to know in 2020 [www.full stack.cafe]
26 top angular 8 interview questions to know in 2020   [www.full stack.cafe]26 top angular 8 interview questions to know in 2020   [www.full stack.cafe]
26 top angular 8 interview questions to know in 2020 [www.full stack.cafe]
 

Ähnlich wie Enterprise Spring Building Scalable Applications

Spring Mvc,Java, Spring
Spring Mvc,Java, SpringSpring Mvc,Java, Spring
Spring Mvc,Java, Springifnu bima
 
Spring Basics
Spring BasicsSpring Basics
Spring BasicsEmprovise
 
How Spring Framework Really Works?
How Spring Framework Really Works?How Spring Framework Really Works?
How Spring Framework Really Works?NexSoftsys
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework tola99
 
Spring Framework
Spring FrameworkSpring Framework
Spring Frameworknomykk
 
Sakai 2.0 Architecture Update 2005-06-09
Sakai 2.0 Architecture Update 2005-06-09Sakai 2.0 Architecture Update 2005-06-09
Sakai 2.0 Architecture Update 2005-06-09Charles Severance
 
java web framework standard.20180412
java web framework standard.20180412java web framework standard.20180412
java web framework standard.20180412FirmansyahIrma1
 
Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)Shameer Thaha Koya
 
Enabling modularization through OSGi and SpringDM
Enabling modularization through OSGi and SpringDMEnabling modularization through OSGi and SpringDM
Enabling modularization through OSGi and SpringDMmukulobject
 
Spring framework
Spring frameworkSpring framework
Spring frameworksrmelody
 
TheSpringFramework
TheSpringFrameworkTheSpringFramework
TheSpringFrameworkShankar Nair
 
Summer training java
Summer training javaSummer training java
Summer training javaArshit Rai
 
Spring boot vs spring framework razor sharp web applications
Spring boot vs spring framework razor sharp web applicationsSpring boot vs spring framework razor sharp web applications
Spring boot vs spring framework razor sharp web applicationsKaty Slemon
 
Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)Ian Robinson
 
Spring basics for freshers
Spring basics for freshersSpring basics for freshers
Spring basics for freshersSwati Bansal
 

Ähnlich wie Enterprise Spring Building Scalable Applications (20)

Spring Mvc
Spring MvcSpring Mvc
Spring Mvc
 
Spring Mvc,Java, Spring
Spring Mvc,Java, SpringSpring Mvc,Java, Spring
Spring Mvc,Java, Spring
 
Spring Basics
Spring BasicsSpring Basics
Spring Basics
 
Spring ppt
Spring pptSpring ppt
Spring ppt
 
How Spring Framework Really Works?
How Spring Framework Really Works?How Spring Framework Really Works?
How Spring Framework Really Works?
 
Spring Framework Rohit
Spring Framework RohitSpring Framework Rohit
Spring Framework Rohit
 
Spring
SpringSpring
Spring
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Sakai 2.0 Architecture Update 2005-06-09
Sakai 2.0 Architecture Update 2005-06-09Sakai 2.0 Architecture Update 2005-06-09
Sakai 2.0 Architecture Update 2005-06-09
 
java web framework standard.20180412
java web framework standard.20180412java web framework standard.20180412
java web framework standard.20180412
 
Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)
 
Riding with camel
Riding with camelRiding with camel
Riding with camel
 
Enabling modularization through OSGi and SpringDM
Enabling modularization through OSGi and SpringDMEnabling modularization through OSGi and SpringDM
Enabling modularization through OSGi and SpringDM
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
TheSpringFramework
TheSpringFrameworkTheSpringFramework
TheSpringFramework
 
Summer training java
Summer training javaSummer training java
Summer training java
 
Spring boot vs spring framework razor sharp web applications
Spring boot vs spring framework razor sharp web applicationsSpring boot vs spring framework razor sharp web applications
Spring boot vs spring framework razor sharp web applications
 
Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)
 
Spring basics for freshers
Spring basics for freshersSpring basics for freshers
Spring basics for freshers
 

Kürzlich hochgeladen

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Kürzlich hochgeladen (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Enterprise Spring Building Scalable Applications

  • 1. Spring in the Enterprise
  • 2. Session Topics 1. What is Spring & Why use it? 2. Architecting in Spring 3. Enterprise Spring 4. Spring & SOA 5. Modular Spring w/ OSGi 6. Spring RAD & Tools
  • 4. What is Spring? - The Basics  Open Source Framework  Bean Container  Bean Lifecycle Management  Bean Scope  Post Processing Hooks  Event Processing  Inversion of Control (IoC)  Dependency Injection (DI)  Centralized Configuration  Annotation Support <XML /> @Annotations
  • 5. What is Spring? - Features  Core  Standard Java Apps  Web Flow  Stateful Page Flows  Spring MVC  Powerful controller config  Flexible data formatting  Enterprise Integration  RESTful  JMS  Rich Web Applications  Remoting  Web Flow  Spring Integration  BlazeDS (Flex)  Spring Batch  Spring Faces (JSF)  Spring JS  Web Services  Spring JSP/JSTL
  • 6. Why Use Spring? – Core Benefits  POJOs  Our Java Beans  GOAL: Beans are technology & platform agnostic  Bean Lifecycle & Dependency Management  no more “new myClass()”  Standard Java Technologies  JSR-303, JSR-250, JSR-317, etc.  Data Management  Conversion, Marshaling, Formatting  Data from WS, UI, Remoting, Integration, JMS, etc.
  • 7. Why Use Spring? – Scalable  Configuration Flexibility  XML, Annotations, JavaConfigX  Implementation Changes w/o Recompile! RMI X MyBean M  Plumbing handled for us L JMS  If it “sucks” in Java, Spring makes it “suck less”  Aspect Oriented Programming (AOP)
  • 8. Why use Spring? - AOP  Spring uses AOP to perform common operations  Transactional processing  Data Access & Exception Wrapping  Security  etc.  Write Aspects to Augment POjOs  Spring AOP and AspectJ
  • 9. Why use Spring? - Enterprise Features  JEE Server Support  JTA/XA  GlassFish  Spring Security  JBoss  Authentication  Tomcat  WebLogic  Authorization  Websphere  SOAP &RESTfulWS  JNDI Access  Queues  Spring Integration  DB Resources  Spring Batch  Remoting  RMI  HTTP
  • 10. Why use Spring? – Comprehensive
  • 11. Session Topics 1. What is Spring & Why use it? 2. Architecting in Spring 3. Enterprise Spring 4. Spring & SOA 5. Modular Spring w/ OSGi 6. Spring RAD & Tools
  • 13. Architecting Services with POJOs  Plain Old Java Objects  Create Services as POJOs  Expose Services via Configuration  Do Not:  import, extend or inject framework or technology specific classes Gordo’s Rule  It’s Not a POJO if you have plumbing/framework references in the “imports”.
  • 14. Session Topics 1. What is Spring & Why use it? 2. Architecting in Spring 3. Enterprise Spring 4. Spring & SOA 5. Modular Spring w/ OSGi 6. Spring RAD & Tools
  • 15. Enterprise Spring Projects Spring Web Flow Spring Security Spring Integration Spring Batch
  • 16. Spring Web Flow  Stateful Web Page Flows  Old “wizard” style  Plugs into Spring MVC Controllers  Use-Case:  Site Registration & Payment
  • 17. Spring Security  Separates Authentication from Authorization  Simple to configure  Feature Rich  Users, Roles, Groups, Voters, ACL  Authentication  DBMS – existing or custom  LDAP  Authorization  UI Components  Methods  URLs
  • 19. Spring Integration  Enterprise Messaging  Message Driven Solution  Message Routing, Transformation, Filtering  “Enterprise Integration Patterns” Architect?  by Hohpe& Wolfe – eaipatterns.com YES  Focus on the Payload! Must Know EIP!!!
  • 20. Mail Sender  Use-Case: Trigger Mail to send to Gmail  Given MessageRecipient Bean  Advantages?
  • 21. Spring Batch  Large Dataset Processing  Offline and Online  Persistent Job states  Transaction size configuration  Job Segment Recovery  Scheduled or Triggered Jobs  Web Console  Use in simple psv main app  Use in enterprise apps
  • 22. Spring Integration Flows  Use-Case: File Uploading from UI, parse & persist  Large Files  File Indexing & Searching
  • 23. Spring Integration & Batch  Receive notification, retrieve file, parse & persist
  • 24. Session Topics 1. What is Spring & Why use it? 2. Architecting in Spring 3. Enterprise Spring 4. Spring & SOA 5. Modular Spring w/ OSGi 6. Spring RAD & Tools
  • 25. Spring & SOA  Spring SOAP Web Services  Spring RESTful Web Services  Spring Remoting  RMI  HTTP  Hessian & Burlap  Corba IIOP  EJB Invocation
  • 26. Session Topics 1. What is Spring & Why use it? 2. Architecting in Spring 3. Enterprise Spring 4. Spring & SOA 5. Modular Spring w/ OSGi 6. Spring RAD & Tools
  • 27. Modular Java with OSGi  Disciplined paradigm  Reduces:  Classpath hell!  Controlled QA  Only deploy modules needed or bought
  • 28. OSGi Container  A dynamic component platform  Configures, starts & stops components at runtime  Provides a set of Management APIs and lifecycle events  Products:  Apache Felix  Eclipse Equinox  Eclipse Virgo  Knopflerfish
  • 29. OSGi Bundles  Bundle  Set of classes & resources deployed as a versioned module  Can depend on other bundles by version ranges  A Java archive  Includes special Manifest entries in META-INF/MANIFEST.MF  Deployed to container  Can be extended with Fragments
  • 31. Bundle Lifecycle  Installed  Resolved  Starting  Active  Stopping  Uninstalled
  • 32. Modular Java - OSGi  Eclipse Gemini  Formerly: Spring Dynamic Modules  Spring Blueprint service – Bundle extension for Bean Context  Bundle activation  Service registration  Eclipse Virgo  Formerly: Spring dm Server  Full OSGi server platform  Bundle Provisioning  Console Management & Logging  Modular UI Components  Module Scoping
  • 33. Bundle Manifest  Contains identifying information  Lists exported and imported packages  Can provide a Bundle Activator  Can list constraints such as JDK version, etc. Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-SymbolicName: maven-osgi-demo-services Bundle-Name: Maven OSGi Demo – Services Bundle-Version: 1.0.0.SNAPSHOT Export-Package:com.chariot.services Bundle-Activator:com.chariot.services.ServiceActivator Import-Package:com.chariot.services,com.chariot.services.impl,com.cha riot.services.interfaces,org.osgi.framework;version="1.3"
  • 34. How does Spring help?  Each Bundle has a Spring Context  Services Exposed / Imported via OSGi namespace <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-2.5.xsd http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi-1.0.xsd"> <osgi:service id="exampleBeanService” ref="exampleBean" interface="com.chariot.demo.bean.ExampleBean"/> </beans>
  • 35. Eclipse Virgo  OSGi Server Platform built upon Eclipse Equinox  Group bundles for deployment into modules  Module deployment via PAR and PLAN files  Provisioning  Locate bundles in repositories  Local or Remote repositories  Admin Console  Deploy & Manage Artifacts www.eclipse.org/virgo/  Diagnostic dumps  Bundle wiring  Web Server  Supports standard WAR files  Ships with Tomcat
  • 36. Session Topics 1. What is Spring & Why use it? 2. Architecting in Spring 3. Enterprise Spring 4. Spring & SOA 5. Modular Spring w/ OSGi 6. Spring RAD & Tools
  • 37. RAD Tools  Roo  Build and configure Java objects  Interactive management  Demonstrates Best Practices  Database Reverse engineering  Grails  Built on the Spring & Hibernate platform  Dynamic coding with Groovy language  Completely supports Java libraries  Hundreds of plug-ins
  • 38. SpringSource Tool Suite  Built on the very popular Eclipse IDE  Provides Spring specific features  View components  Bean Dependency Relationships  Integration Flows  Supports Roo, Grails & Groovy
  • 39. Summary  Comprehensive framework  Java Standards  Extensible  Focus on Problem Domain  Configure System Domain  Designed RI for Eclipse OSGi Modular Projects