SlideShare a Scribd company logo
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

More Related Content

What's hot

API Design- Best Practices
API Design-   Best PracticesAPI Design-   Best Practices
API Design- Best Practices
Prakash Bhandari
 
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
Jimmy Guerrero
 
REST API Doc Best Practices
REST API Doc Best PracticesREST API Doc Best Practices
REST API Doc Best Practices
Marta Rauch
 
Business Applications Integration In The Cloud
Business Applications Integration In The CloudBusiness Applications Integration In The Cloud
Business Applications Integration In The Cloud
Anna Brzezińska
 
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
AzRy LLC, Caucasus School of Technology
 
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 Style
Apigee | 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 zf2
Corley S.r.l.
 
SFDC REST API
SFDC REST APISFDC REST API
SFDC REST API
Bohdan Dovhań
 
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
SPTechCon
 
Building ColdFusion And AngularJS Applications
Building ColdFusion And AngularJS ApplicationsBuilding ColdFusion And AngularJS Applications
Building ColdFusion And AngularJS Applications
ColdFusionConference
 
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-Side
Reza Rahman
 
Mashups
MashupsMashups
Mashups
Johan Eltes
 
Restful services with ColdFusion
Restful services with ColdFusionRestful services with ColdFusion
Restful services with ColdFusion
ColdFusionConference
 
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
Andrew Kandels
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & Development
Ashok 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
 

What's hot (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]
 

Similar to Enterprise Spring Building Scalable Applications

Spring Mvc
Spring MvcSpring Mvc
Spring Mvc
ifnu bima
 
Spring Mvc,Java, Spring
Spring Mvc,Java, SpringSpring Mvc,Java, Spring
Spring Mvc,Java, Spring
ifnu bima
 
Spring Basics
Spring BasicsSpring Basics
Spring Basics
Emprovise
 
Spring ppt
Spring pptSpring ppt
Spring ppt
Mumbai Academisc
 
How Spring Framework Really Works?
How Spring Framework Really Works?How Spring Framework Really Works?
How Spring Framework Really Works?
NexSoftsys
 
Spring
SpringSpring
Spring Framework
Spring Framework  Spring Framework
Spring Framework
tola99
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
nomykk
 
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.20180412
FirmansyahIrma1
 
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 java
Arshit 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 applications
Katy 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 freshers
Swati Bansal
 

Similar to 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
 

Recently uploaded

Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 

Recently uploaded (20)

Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 

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