SlideShare a Scribd company logo
1 of 20
Download to read offline
This Presentation Courtesy of the
                              International SOA Symposium
                              October 7-8, 2008 Amsterdam Arena
                              www.soasymposium.com
                              info@soasymposium.com


                                               Founding Sponsors




Platinum Sponsors




Gold Sponsors           Silver Sponsors




     SOA Symposium
       October 7-8, 2008, Amsterdam




                     Implementing Service Models
                     with Java


                    André Tost (andretost@us.ibm.com)
                    Senior Technical Staff Member, SOA Technology
                    IBM Software Services for WebSphere




                                                                    © 2008 IBM Corporation




                                                                                             1
SOA Symposium


Agenda


        Service Models
          – Utility Services
          – Entity Services
          – Task Services
        Service Composition
        Backup: Service Orientation Principles with Java Web
         Services
          – If time permits
        Summary




3               Implementing Service Models in Java                                     © 2008 IBM Corporation




                SOA Symposium


Intro (and shameless plug)
     The content of this presentation is extracted from content of the forthcoming
      book “SOA in Java”, which is part of the Prentice Hall Service-Oriented
      Computing Series from Thomas Erl
     It doesn‟t cover the entire book, but only content that is
      related to Service Models




     We assume that your implementation and deployment platform is Java
       – Well, if this surprises you, you obviously didn‟t read the title of this presentation!
     We assume Java 5
     We used Glassfish for creation of examples
     However, I will not show a lot of actual Java code. I expect you know how to
      write Java. We will focus on architectural and design aspects, testing,
      packaging considerations and other best practices.



4               Implementing Service Models in Java                                     © 2008 IBM Corporation




                                                                                                                 2
SOA Symposium




    Service Models




5              Implementing Service Models in Java                                 © 2008 IBM Corporation




               SOA Symposium


Service Models

     To give structure to our service-oriented environment, we create layers of
      functionality
       – High level business processes are represented in the Process Layer
       – Traditional IT systems are in the Application Layer
       – The Service Interface Layer allows functionality from the Application Layer to be
         leveraged in the Process Layer
     The Service Interface Layer can be further decomposed into three layers
       – Orchestration Service Layer
       – Business Service Layer
       – Application Service Layer
     All of these layers can be sorted into a service layer „stack‟
       – Shows dependencies and relationships between different parts of a solution
       – These parts can be developed top-down, bottom-up, or both




6              Implementing Service Models in Java                                 © 2008 IBM Corporation




                                                                                                            3
SOA Symposium


Service Models




7               Implementing Service Models in Java                                       © 2008 IBM Corporation




                SOA Symposium


Service Models
     We can associate different service models with these layers
       – Different types of services exist at different levels in the resulting „stack‟
       – All are part of the service portfolio for an enterprise
       – Service models allow classifying and structuring service portfolio
     Utility Services
       – In the Application Services layer
       – Offer technical functionality
     Entity Services
       – In the Business Services layer
       – Offer access to data
     Task Services
       – In the Business Services layer
       – Represent activities within a business process
     We will not cover logic existing in the other layers in this session
     We will focus on aspects of developing these service models in Java



8               Implementing Service Models in Java                                       © 2008 IBM Corporation




                                                                                                                   4
SOA Symposium




     Service Models:
         Utility Services




9                Implementing Service Models in Java                                       © 2008 IBM Corporation




                 SOA Symposium


Utility Services – Architectural Considerations
      Utility Services are used by services in the Business Services layer
        – Not the other way around
        – They might be invoked from within an ESB, making them totally transparent to the Business
          Services
      They are usually not identified in the process and domain decomposition phase of the
       SOA analysis and design process
      Utility service identification is triggered by, for example:
        – Non-functional requirements (NFR)
        – „Wrapping‟ of existing non-SOA technology
        – Existing Java standards




10               Implementing Service Models in Java                                       © 2008 IBM Corporation




                                                                                                                    5
SOA Symposium


Utility Services – Architectural Considerations

      Various ways exist for invoking Utility
       Services
        – Local versus remote
        – Call-by-value versus call-by-reference
      Performance aspects
        – Mainly through serialization
        – Different serialization options exist
            – XML, binary
      Concurrency aspects
        – Multiple clients accessing the service
          implementation
        – Must be thread safe
        – Java EE application servers handle this
          automatically




11                Implementing Service Models in Java                             © 2008 IBM Corporation




                  SOA Symposium


Utility Services - Types
      Omni utility services
        – Very generic in nature
            – E.g. eventing, security, logging
        – Typically use JAX-WS Provider
      Resource utility services
        – Encapsulate resources like messaging, data, network, etc
            – i.e. acts as façade
        – Use existing standard Java APIs
        – May want to add transfer objects to reduce “chattiness”
      Micro utility services
        – Fine grained
        – E.g. encryption/decryption, mathematical calculations, transformation
        – Typically not accessed remotely
            – No Web services
      Wrapper utility services
        – Also called “connector services” or “adapter services”
        – JCA is the prime standard leveraged by these services

12                Implementing Service Models in Java                             © 2008 IBM Corporation




                                                                                                           6
SOA Symposium


Utility Services – Design and Implementation
      Utility Services are highly reusable across many business domains
        – Should have generic interfaces
             – XML: <xsd:any/> or <xsd:anyType/>
             – Remote Java: java.io.Serializable, e.g. String
             – Local Java: java.lang.Object
        – Make sure implementation supports multi-threading
             – Use synchronized where appropriate
             – Avoid using instance-level state
      Use of Java editions
        – Java SE supports several relevant APIs for Utility Services
             – Security (JAAS), Management (JMX), Transformation (JAXP), Logging, Persistence (JDBC)
        – Java EE adds an additional rich set of APIs that are relevant
             – Messaging (JMS), Transformation (JAXB), Transactions (JTA), Registry (JNDI, JAXR), Legacy Integration
               (JCA)
        – Leveraging EJB ensures high degree of autonomy and scalability
      Open Source Frameworks can help creating Utility Services
        –   Spring
        –   Hibernate
        –   Commons Logging
        –   …


13                 Implementing Service Models in Java                                                  © 2008 IBM Corporation




                   SOA Symposium


Utility Services – Design and Implementation
      Utility Services as Web Services
        – Don‟t use <xsd:string> as type for XML documents
             – Will be encoded, thus increasing the size of the message
        – Use <xsd:any/> instead
        – JAX-WS supports „provider style‟ service implementation
             –   Implement javax.xml.ws.Provider
             –   No parsing or serialization
             –   XML message is directly passed to the implementation
             –   Use SAAJ to parse message content


                  @ServiceMode(value=Service.Mode.MESSAGE)
                  @WebServiceProvider()
                  public class GenericProviderImpl implements javax.xml.ws.Provider<javax.xml.soap.SOAPMessage> {
                    public SOAPMessage invoke(SOAPMessage message) {
                               // read and process SOAPMessage...
                    }
                  }




14                 Implementing Service Models in Java                                                  © 2008 IBM Corporation




                                                                                                                                 7
SOA Symposium


Utility Services – Testing and Packaging
      Testing
        –   Use JUnit
        –   High degree of reuse requires thorough testing
        –   NFR may not always be known in advance
        –   Make services as autonomous as possible
      Packaging
        – Java logic can be packaged in JAR, WAR or EAR
        – Depends on the deployment environment
             – Java EE or Java SE etc




15               Implementing Service Models in Java         © 2008 IBM Corporation




                 SOA Symposium




     Service Models:
         Entity Services




16               Implementing Service Models in Java         © 2008 IBM Corporation




                                                                                      8
SOA Symposium


Entity Services – Architectural Considerations
      Entity Services are used by higher-level Task Services and Process Services
      Typically support an enterprise canonical model
        – Addressing inconsistencies in data used across many applications
           – One version of the “truth”
        – Provide uniform view of domain-specific views of data
      Domain entities versus message entities
        – Domain entities represent enterprise data model
        – Message entities are driven by processes‟ needs
          for information
           – They are the information that flows between activities
             within the process
           – Offer a “shallow” view of the enterprise data
      Require Data Aggregation
        – Encapsulated by the Implementation
        – Must consider ownership




17                Implementing Service Models in Java                                          © 2008 IBM Corporation




                  SOA Symposium


Entity Services – Architectural Considerations
      Access mode
        – Defines whether or not data is accessed exclusively
        – Defines whether data can be accessed by other users/applications while it is being
          changed
        – Service Data Objects offer “disconnected data access” in Java
           –   Data is retrieved by consumer for work
           –   No physical locks are held on the data source
           –   Changes are made within a separate transaction
           –   Conflicts can be resolved in different ways (raise exception, overwrite, etc)
           –   This is also called “optimistic locking”
           –   See http://www.osoa.org/display/Main/Service+Data+Objects+Specifications
      Change notifications
        – Support notifying clients of updates made to data
        – Not usually supported




18                Implementing Service Models in Java                                          © 2008 IBM Corporation




                                                                                                                        9
SOA Symposium


Entity Services – Design and Implementation
      Do not expose underlying physical data model
        – It may change
      Exposed is a view of the data driven by business needs
      Entity Services are stateless
        – Use underlying technology to store the data
        – No operations named load(), save(), etc
      Avoid technical terms in interface and operation names
        – Should always be business relevant
        – Avoid exposing implementation details (e.g. “queryCustomerTable”)
      Use existing persistence frameworks to map domain entities into Java
        – JPA, EJB3
        – Hibernate
      Put message entities and domain entities into separate packages




19              Implementing Service Models in Java                           © 2008 IBM Corporation




                SOA Symposium


Entity Services – Design and Implementation
      Message entities can be viewed as shallow wrappers around domain entities
        – Carry only the attributes that are relevant to the consumer
        – Don‟t include full object graph
      For consumers with widely differing requirements for attributes, use generic
       types
      For Java SE implementation, you can use JDBC
        – But you must handle transactions, scrolling, partial loading, etc
      Better to use JPA
        – It is the underlying mechanism for EJB3 Entity beans
        – But it works in Java SE, too
        – Also supported (and heavily influenced by) Hibernate
      For Java EE implementation, create
       stateless session bean as façade
       over Entity beans




20              Implementing Service Models in Java                           © 2008 IBM Corporation




                                                                                                       10
SOA Symposium


Entity Services – Design and Implementation
      Entity Services are most likely always exposed as Web services
        – High degree of reuse across business domains
        – Single access point for information
      Data model can start out as XML Schema or as Java
        – Tooling (wsgen, wsimport, ….) can generate one from the other
        – Full XML Schema set now supported by JAXB
      Testing
        – Entity services can be used in different contexts, all of which have to be tested
           – Synchronous, “online”
           – Asynchronous, “batch”
        – High degree of concurrency
           – Test optimistic locking
        – Performance-critical
           – Especially when aggregating from multiple sources
      Packaging
        – Domain entities and message entities go into different packages
           – Put domain entities into Utility JAR for reuse
        – In Java EE, one enterprise application per Entity service


21               Implementing Service Models in Java                                 © 2008 IBM Corporation




                 SOA Symposium




     Service Models:
         Task Services




22               Implementing Service Models in Java                                 © 2008 IBM Corporation




                                                                                                              11
SOA Symposium


Task Services – Architectural Considerations

      Task Services stem from decomposition of business processes into activities
        – Often domain-specific or even process-specific
        – Less reusable
      “Top-down” design
      They often use Entity Services
        – Entity Services are often “bottom-up”
      Contain pure business logic
        – Technology agnostic
      Act as controllers
        – Expose coarse grained interface
        – Invoke finer grained (Entity) service interfaces
        – Might be co-located with these services to improve performance




23              Implementing Service Models in Java                               © 2008 IBM Corporation




                SOA Symposium


Task Services – Architectural Considerations

      Task service versus Process service
        – Task service invokes a sequence of lower level services
        – In plain Java
        – A task service represents an activity within a business process
        – The business process is implemented as an orchestration, using a higher level of
          abstraction, like WS-BPEL
        – Task services are short running, process services are long running
        – Task services have no human interaction
      Task services are stateless
        – But they may have to retain state across invocations of aggregated services
        – Can usually use local heap space




24              Implementing Service Models in Java                               © 2008 IBM Corporation




                                                                                                           12
SOA Symposium


Task Services – Design and Implementation

      Task service identification through process decomposition often leads to one
       operation per service
      Try to group similar operations and reduce number of distinct services
        – Services are governed, maintained and versioned as a unit
      Use namespaces as a way to distinguish between services in different layers
      Messages are specific to the context of the business process
        – May not always follow canonical model
      Implementation has to catch exceptions and error conditions from lower level
       technology and translate them into business level faults
        – Pay as much attention to modeling faults as to modeling the rest of the messages
      Implementation should not directly use low level Java APIs
        – Should use Entity and Utility services
        – For example, do not use JavaMail, use the “Email” service
        – Might lead to the need for additional services




25                Implementing Service Models in Java                                        © 2008 IBM Corporation




                  SOA Symposium


Task Services – Design and Implementation
      Implementation as stateless session EJB allows access from a variety of clients
        – Note that WS clients do not automatically carry context, like an EJB client does
            – Security, transactions
            – Might have to leverage advanced WS-* specifications




      Task services have many dependencies on other services
        – Challenging for unit testing
            – Create stubs for all invoked services
        – Might want to replace service proxies with local objects

26                Implementing Service Models in Java                                        © 2008 IBM Corporation




                                                                                                                      13
SOA Symposium




     Service Composition




27                Implementing Service Models in Java   © 2008 IBM Corporation




                  SOA Symposium


Service Composition – Terminology
      Service Composition (or Aggregation)
       means that a service invokes other,
       existing services to implement its logic
      The ability of services to be composed
       into a new service is one of the core
       principles of SOA
         – Allows building solutions quickly
         – Allows adapting existing solutions to new
           market demands quickly
      In our definition, Composition is different
       than Orchestration
         – Orchestration is one way of composing
           services among others
         – Orchestration is often done to implement a
           business process
         – Orchestration often uses BPEL
         – We will focus on Java-based composition
           here




28                Implementing Service Models in Java   © 2008 IBM Corporation




                                                                                 14
SOA Symposium


Service Composition - Terminology
      Services play different roles in
       compositions
      Composition Controller invokes other
       services
        – Controller acts as „parent‟
        – May have to store state across invocations
        – Utilizes different message exchange
          patterns for invocations
      Composition Member is invoked as part
       of a composition
        – Member acts as „child‟
        – Completely decoupled from controller‟s
          consumer
        – Can be controller for its own composition
            – Called “sub-controllers”




29                Implementing Service Models in Java          © 2008 IBM Corporation




                  SOA Symposium


Service Composition and Service Models
      Task Services are typical Composition Controllers
        – Can be members, too
      Task Services are typical Composition Sub-controllers
      Entity Services are typical Composition Members
        – Can be controllers, too
      Utility Services are Composition Members




30                Implementing Service Models in Java          © 2008 IBM Corporation




                                                                                        15
SOA Symposium


Service Composition – Design and Implementation
      Members are not aware of their controllers
        – This would create an unwanted degree of coupling
      Controllers are aware of their members, of course
        – Identifying suitable members is part of the design process for a service
      Usage of a service as a composition member must be subject to appropriate
       governance processes
        – SLAs must be put in place
      Used protocols imply certain Qualities of Service
        – HTTP is not reliable
        – JMS supports transactional message delivery
      May require support for additional standards
        – WS-ReliableMessaging
        – WS-AtomicTransaction
        – These are supported by the underlying runtime and do not have any impact on the
          service logic




31                Implementing Service Models in Java                                               © 2008 IBM Corporation




                  SOA Symposium


Service Composition – Design and Implementation
      Endpoint lookup
        – Composition member endpoints should not be hardcoded into the controller
        – javax.xml.ws.Service interface offers various ways of resolving this at runtime
            – addPort() creates a new port with new address
            – create() creates a Service instance from existing WSDL (including endpoint address)
            – Use createDispatch() method to implement completely dynamic invocation
        – Addresses should be looked up in a registry
        – Controller should cache member endpoint addresses
      Error handling
        – Controllers should not copy all Fault messages from members into its own contract
            – Again, unwanted coupling and exposure of implementation details
        – Catch all exceptions in downstream invocations and convert to exceptions that are appropriate to
          the functional context of the controller
            – Including “unmodeled” faults, i.e. RuntimeException or WebServiceException (JAX-WS)
        – i.e. avoid relying on unmodeled fault handling
            – Propagates implementation details to consumer that it cannot handle
      Tracing
        – Add „correlators‟ to each message to allow identifying it across member invocations
        – Do not make this part of the service contract
            – Use JAX-WS handlers instead



32                Implementing Service Models in Java                                               © 2008 IBM Corporation




                                                                                                                             16
SOA Symposium


Service Composition - Packaging
      If members are Web services, use wsimport to generate client packages for
       each composition member
        – Creates required utility classes and interfaces
        – Can easily be packaged into a utility JAR file
      If members are Java EE services (i.e. remote EJB), use client EJB bindings
        – Can also be packaged as utility JAR file
        – Use annotations in implementation logic to reference remote EJB
      Package utility JAR files with EAR for composition controller
      Very fine grained composition members (Utility services) may directly be
       included with controller logic
        – Cannot be called efficiently over a network
        – Creates a coupling between controller and member, e.g. member implementation
          cannot be changed without impacting the controller




33              Implementing Service Models in Java                           © 2008 IBM Corporation




                SOA Symposium




     Summary




34              Implementing Service Models in Java                           © 2008 IBM Corporation




                                                                                                       17
SOA Symposium


Summary
      Service Models allow structuring services into different categories, according to
       their characteristics
        – Utility Services are highly reusable, often technical in nature
        – Entity Services offer consistent access to data, are also reusable
        – Task Services represent activities within a business process, coarse grained, less
          reusable
      Java and especially Java EE offer predefined APIs and mechanisms to
       implement these services
        – JAXB to describe XML-based data
        – JAX-WS has a statically defined and a generic programming model to provide and
          invoke Web services
        – Many lower level APIs for Utility Services, e.g. JavaMail
        – JDBC, JPA and EJB3 for Entity Services
      Composition is a core capability of SOA
        – Includes orchestration, which is done in BPEL
        – Introduces new roles: composition controller and composition member
        – Different Service Models apply to different composition roles


35              Implementing Service Models in Java                                                             © 2008 IBM Corporation




                SOA Symposium




                                                                                                               Thai
                                                      Traditional Chinese




                              Russian
                                                                                   Gracias      Spanish




                                                 Thank            English




                                                 You         Merci
                                                                    French
                                                                                  Obrigado
                                                                                    Brazilian Portuguese
                                        Arabic




                 Grazie                                                                                    Danke
                    Italian                                                                                 German
                                                             Simplified Chinese




                                                                Japanese



36
36              Implementing Service Models in Java                                                             © 2008 IBM Corporation




                                                                                                                                         18
SOA Symposium




     Backup:
     Service-Orientation
     Principles with
     Java Web Services




37               Implementing Service Models in Java         © 2008 IBM Corporation




                 SOA Symposium


Service-Orientation Principles with Java Web Services
      Service Reusability
        –   Agnostic functional context
        –   Highly generic service logic
        –   Generic and extensible contract
        –   Concurrent access to service logic
      Standardized Service Contract Design
        – Top-down versus bottom-up design
        – Java2WSDL and WSDL2Java mapping
        – Use of industry standards
      Service Loose Coupling
        – Separation of contract and implementation
        – Functional context with no dependency on outside
        – Minimal requirements for consumer
      Service Abstraction
        – Abstracting technology details
        – Hiding service details
        – Document constraints

38               Implementing Service Models in Java         © 2008 IBM Corporation




                                                                                      19
SOA Symposium


Service-Orientation Principles with Java Web Services
      Service Composability
        –   Composition of members versus composition of controllers
        –   Highly efficient runtime environment
        –   Flexible service contract
        –   Standards-based runtime
      Service Autonomy
        – Well-defined functional boundary
        – Control over runtime environment
        – High concurrency
      Service Statelessness
      Service Discoverability
        – Design time discoverability
        – Runtime discoverability
        – Service registries




39               Implementing Service Models in Java                   © 2008 IBM Corporation




                                                                                                20

More Related Content

What's hot

SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session WSO2
 
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
The Java EE 7 Platform: Developing for the Cloud  (FISL 12)The Java EE 7 Platform: Developing for the Cloud  (FISL 12)
The Java EE 7 Platform: Developing for the Cloud (FISL 12)Arun Gupta
 
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)WSO2
 
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...Arun Gupta
 
OSGi Community Event 2010 - SOA Flexibility with OSGi remote services and the...
OSGi Community Event 2010 - SOA Flexibility with OSGi remote services and the...OSGi Community Event 2010 - SOA Flexibility with OSGi remote services and the...
OSGi Community Event 2010 - SOA Flexibility with OSGi remote services and the...mfrancis
 
01.egovFrame Training Book II
01.egovFrame Training Book II01.egovFrame Training Book II
01.egovFrame Training Book IIChuong Nguyen
 
Web Technologies in Java EE 7
Web Technologies in Java EE 7Web Technologies in Java EE 7
Web Technologies in Java EE 7Lukáš Fryč
 
GlassFish REST Administration Backend at JavaOne India 2012
GlassFish REST Administration Backend at JavaOne India 2012GlassFish REST Administration Backend at JavaOne India 2012
GlassFish REST Administration Backend at JavaOne India 2012Arun Gupta
 
SPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA
 
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the CloudTDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the CloudArun Gupta
 
IBM WebSphere Application Server Introduction for Lotus
IBM WebSphere Application Server Introduction for LotusIBM WebSphere Application Server Introduction for Lotus
IBM WebSphere Application Server Introduction for Lotusdominion
 
GIDS 2012: Java Message Service 2.0
GIDS 2012: Java Message Service 2.0GIDS 2012: Java Message Service 2.0
GIDS 2012: Java Message Service 2.0Arun Gupta
 
Collaborative lifecycle development for Mobile Software
Collaborative lifecycle development for Mobile Software Collaborative lifecycle development for Mobile Software
Collaborative lifecycle development for Mobile Software IBM WebSphereIndia
 
GIDS 2012: PaaSing a Java EE Application
GIDS 2012: PaaSing a Java EE ApplicationGIDS 2012: PaaSing a Java EE Application
GIDS 2012: PaaSing a Java EE ApplicationArun Gupta
 
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureJava EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureArun Gupta
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Arun Gupta
 
GlassFish REST Administration Backend
GlassFish REST Administration BackendGlassFish REST Administration Backend
GlassFish REST Administration BackendArun Gupta
 
F428435966 odtug web-logic for developers
F428435966 odtug   web-logic for developersF428435966 odtug   web-logic for developers
F428435966 odtug web-logic for developersMeng He
 

What's hot (18)

SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session
 
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
The Java EE 7 Platform: Developing for the Cloud  (FISL 12)The Java EE 7 Platform: Developing for the Cloud  (FISL 12)
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
 
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)
 
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
 
OSGi Community Event 2010 - SOA Flexibility with OSGi remote services and the...
OSGi Community Event 2010 - SOA Flexibility with OSGi remote services and the...OSGi Community Event 2010 - SOA Flexibility with OSGi remote services and the...
OSGi Community Event 2010 - SOA Flexibility with OSGi remote services and the...
 
01.egovFrame Training Book II
01.egovFrame Training Book II01.egovFrame Training Book II
01.egovFrame Training Book II
 
Web Technologies in Java EE 7
Web Technologies in Java EE 7Web Technologies in Java EE 7
Web Technologies in Java EE 7
 
GlassFish REST Administration Backend at JavaOne India 2012
GlassFish REST Administration Backend at JavaOne India 2012GlassFish REST Administration Backend at JavaOne India 2012
GlassFish REST Administration Backend at JavaOne India 2012
 
SPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA Java Case Study
SPEC INDIA Java Case Study
 
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the CloudTDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
 
IBM WebSphere Application Server Introduction for Lotus
IBM WebSphere Application Server Introduction for LotusIBM WebSphere Application Server Introduction for Lotus
IBM WebSphere Application Server Introduction for Lotus
 
GIDS 2012: Java Message Service 2.0
GIDS 2012: Java Message Service 2.0GIDS 2012: Java Message Service 2.0
GIDS 2012: Java Message Service 2.0
 
Collaborative lifecycle development for Mobile Software
Collaborative lifecycle development for Mobile Software Collaborative lifecycle development for Mobile Software
Collaborative lifecycle development for Mobile Software
 
GIDS 2012: PaaSing a Java EE Application
GIDS 2012: PaaSing a Java EE ApplicationGIDS 2012: PaaSing a Java EE Application
GIDS 2012: PaaSing a Java EE Application
 
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureJava EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for future
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
 
GlassFish REST Administration Backend
GlassFish REST Administration BackendGlassFish REST Administration Backend
GlassFish REST Administration Backend
 
F428435966 odtug web-logic for developers
F428435966 odtug   web-logic for developersF428435966 odtug   web-logic for developers
F428435966 odtug web-logic for developers
 

Viewers also liked

Mohamad Afshar Moving Beyond Project Level S O A V1
Mohamad  Afshar    Moving Beyond Project Level S O A V1Mohamad  Afshar    Moving Beyond Project Level S O A V1
Mohamad Afshar Moving Beyond Project Level S O A V1SOA Symposium
 
Mark Little R E S Tand W S Star
Mark  Little    R E S Tand W S StarMark  Little    R E S Tand W S Star
Mark Little R E S Tand W S StarSOA Symposium
 
David Booth R D F & S O A
David  Booth    R D F &  S O ADavid  Booth    R D F &  S O A
David Booth R D F & S O ASOA Symposium
 
Ian Robinson Testable Foundations
Ian  Robinson    Testable  FoundationsIan  Robinson    Testable  Foundations
Ian Robinson Testable FoundationsSOA Symposium
 
Dharmes Mistry Tony De Bree S O A Business Persp V1a
Dharmes  Mistry    Tony De  Bree   S O A Business Persp V1aDharmes  Mistry    Tony De  Bree   S O A Business Persp V1a
Dharmes Mistry Tony De Bree S O A Business Persp V1aSOA Symposium
 
Chris Riley Design Patterns For Web Service Versioning
Chris  Riley   Design Patterns For Web Service VersioningChris  Riley   Design Patterns For Web Service Versioning
Chris Riley Design Patterns For Web Service VersioningSOA Symposium
 
Raj Anthony Carrato R E S T Patterns
Raj    Anthony  Carrato    R E S T PatternsRaj    Anthony  Carrato    R E S T Patterns
Raj Anthony Carrato R E S T PatternsSOA Symposium
 
Anish Karmakar S C A
Anish  Karmakar    S C AAnish  Karmakar    S C A
Anish Karmakar S C ASOA Symposium
 
Robert Schneider 10 Strategies
Robert  Schneider   10  StrategiesRobert  Schneider   10  Strategies
Robert Schneider 10 StrategiesSOA Symposium
 
Paul Butterworth Policy Based Approach
Paul  Butterworth    Policy  Based  ApproachPaul  Butterworth    Policy  Based  Approach
Paul Butterworth Policy Based ApproachSOA Symposium
 

Viewers also liked (10)

Mohamad Afshar Moving Beyond Project Level S O A V1
Mohamad  Afshar    Moving Beyond Project Level S O A V1Mohamad  Afshar    Moving Beyond Project Level S O A V1
Mohamad Afshar Moving Beyond Project Level S O A V1
 
Mark Little R E S Tand W S Star
Mark  Little    R E S Tand W S StarMark  Little    R E S Tand W S Star
Mark Little R E S Tand W S Star
 
David Booth R D F & S O A
David  Booth    R D F &  S O ADavid  Booth    R D F &  S O A
David Booth R D F & S O A
 
Ian Robinson Testable Foundations
Ian  Robinson    Testable  FoundationsIan  Robinson    Testable  Foundations
Ian Robinson Testable Foundations
 
Dharmes Mistry Tony De Bree S O A Business Persp V1a
Dharmes  Mistry    Tony De  Bree   S O A Business Persp V1aDharmes  Mistry    Tony De  Bree   S O A Business Persp V1a
Dharmes Mistry Tony De Bree S O A Business Persp V1a
 
Chris Riley Design Patterns For Web Service Versioning
Chris  Riley   Design Patterns For Web Service VersioningChris  Riley   Design Patterns For Web Service Versioning
Chris Riley Design Patterns For Web Service Versioning
 
Raj Anthony Carrato R E S T Patterns
Raj    Anthony  Carrato    R E S T PatternsRaj    Anthony  Carrato    R E S T Patterns
Raj Anthony Carrato R E S T Patterns
 
Anish Karmakar S C A
Anish  Karmakar    S C AAnish  Karmakar    S C A
Anish Karmakar S C A
 
Robert Schneider 10 Strategies
Robert  Schneider   10  StrategiesRobert  Schneider   10  Strategies
Robert Schneider 10 Strategies
 
Paul Butterworth Policy Based Approach
Paul  Butterworth    Policy  Based  ApproachPaul  Butterworth    Policy  Based  Approach
Paul Butterworth Policy Based Approach
 

Similar to Andre Tost Service Models Java

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
 
Zero to Portlet in 20 minutes or less
Zero to Portlet in 20 minutes or lessZero to Portlet in 20 minutes or less
Zero to Portlet in 20 minutes or lessDavalen LLC
 
Summer School Soa EAP Asanka 18 Jun
Summer School Soa EAP Asanka 18 JunSummer School Soa EAP Asanka 18 Jun
Summer School Soa EAP Asanka 18 JunWSO2
 
SOA Solution Patterns
SOA Solution PatternsSOA Solution Patterns
SOA Solution PatternsWSO2
 
Introduction to java_ee
Introduction to java_eeIntroduction to java_ee
Introduction to java_eeYogesh Bindwal
 
Umit Yalcinalp Enterprise Mashupsfor S O A
Umit  Yalcinalp    Enterprise Mashupsfor S O AUmit  Yalcinalp    Enterprise Mashupsfor S O A
Umit Yalcinalp Enterprise Mashupsfor S O ASOA Symposium
 
IBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginnersIBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginnersShubham Gupta
 
Reconfigurable Service-Oriented Architectures
Reconfigurable Service-Oriented ArchitecturesReconfigurable Service-Oriented Architectures
Reconfigurable Service-Oriented Architectureslseinturier
 
JEE Course - JEE Overview
JEE Course - JEE  OverviewJEE Course - JEE  Overview
JEE Course - JEE Overviewodedns
 
What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?Tim Ellison
 
Service Oriented Architecture (SOA) [2/5] : Enterprise Service Bus
Service Oriented Architecture (SOA) [2/5] : Enterprise Service BusService Oriented Architecture (SOA) [2/5] : Enterprise Service Bus
Service Oriented Architecture (SOA) [2/5] : Enterprise Service BusIMC Institute
 
The Java EE 7 Platform: Developing for the Cloud
The Java EE 7 Platform: Developing for the CloudThe Java EE 7 Platform: Developing for the Cloud
The Java EE 7 Platform: Developing for the Cloudcodemotion_es
 
Acceleo Day - Orange
Acceleo Day - OrangeAcceleo Day - Orange
Acceleo Day - Orangesliard
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC vipin kumar
 

Similar to Andre Tost Service Models Java (20)

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)
 
Zero to Portlet in 20 minutes or less
Zero to Portlet in 20 minutes or lessZero to Portlet in 20 minutes or less
Zero to Portlet in 20 minutes or less
 
J2 ee architecture
J2 ee architectureJ2 ee architecture
J2 ee architecture
 
Sca
ScaSca
Sca
 
Summer School Soa EAP Asanka 18 Jun
Summer School Soa EAP Asanka 18 JunSummer School Soa EAP Asanka 18 Jun
Summer School Soa EAP Asanka 18 Jun
 
SOA Solution Patterns
SOA Solution PatternsSOA Solution Patterns
SOA Solution Patterns
 
Introduction to java_ee
Introduction to java_eeIntroduction to java_ee
Introduction to java_ee
 
As 400
As 400As 400
As 400
 
Umit Yalcinalp Enterprise Mashupsfor S O A
Umit  Yalcinalp    Enterprise Mashupsfor S O AUmit  Yalcinalp    Enterprise Mashupsfor S O A
Umit Yalcinalp Enterprise Mashupsfor S O A
 
IBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginnersIBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginners
 
Reconfigurable Service-Oriented Architectures
Reconfigurable Service-Oriented ArchitecturesReconfigurable Service-Oriented Architectures
Reconfigurable Service-Oriented Architectures
 
Jboss
JbossJboss
Jboss
 
JEE Course - JEE Overview
JEE Course - JEE  OverviewJEE Course - JEE  Overview
JEE Course - JEE Overview
 
What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?What's New in IBM Java 8 SE?
What's New in IBM Java 8 SE?
 
Riding with camel
Riding with camelRiding with camel
Riding with camel
 
Service Oriented Architecture (SOA) [2/5] : Enterprise Service Bus
Service Oriented Architecture (SOA) [2/5] : Enterprise Service BusService Oriented Architecture (SOA) [2/5] : Enterprise Service Bus
Service Oriented Architecture (SOA) [2/5] : Enterprise Service Bus
 
The Java EE 7 Platform: Developing for the Cloud
The Java EE 7 Platform: Developing for the CloudThe Java EE 7 Platform: Developing for the Cloud
The Java EE 7 Platform: Developing for the Cloud
 
Acceleo Day - Orange
Acceleo Day - OrangeAcceleo Day - Orange
Acceleo Day - Orange
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC
 
Spring framework
Spring frameworkSpring framework
Spring framework
 

More from SOA Symposium

Sven Hakan Olsson Composability Index V2
Sven Hakan Olsson    Composability  Index V2Sven Hakan Olsson    Composability  Index V2
Sven Hakan Olsson Composability Index V2SOA Symposium
 
Thomas Erl Introducing S O A Design Patterns
Thomas  Erl    Introducing  S O A  Design  PatternsThomas  Erl    Introducing  S O A  Design  Patterns
Thomas Erl Introducing S O A Design PatternsSOA Symposium
 
Radovan Janecek Avoiding S O A Pitfalls
Radovan  Janecek   Avoiding  S O A  PitfallsRadovan  Janecek   Avoiding  S O A  Pitfalls
Radovan Janecek Avoiding S O A PitfallsSOA Symposium
 
Natasja Paulssen S A P M D M And E S O A At Philips
Natasja  Paulssen    S A P  M D M And E S O A At  PhilipsNatasja  Paulssen    S A P  M D M And E S O A At  Philips
Natasja Paulssen S A P M D M And E S O A At PhilipsSOA Symposium
 
Anthony Carrato S O A Business Architecture
Anthony  Carrato    S O A  Business  ArchitectureAnthony  Carrato    S O A  Business  Architecture
Anthony Carrato S O A Business ArchitectureSOA Symposium
 
David Chappel S O A Grid
David  Chappel    S O A  GridDavid  Chappel    S O A  Grid
David Chappel S O A GridSOA Symposium
 
Johan Kumps Federal E S B
Johan  Kumps    Federal  E S BJohan  Kumps    Federal  E S B
Johan Kumps Federal E S BSOA Symposium
 
Laurent Tarin B P M Ilog
Laurent  Tarin    B P M  IlogLaurent  Tarin    B P M  Ilog
Laurent Tarin B P M IlogSOA Symposium
 
Jim Webber Guerrilla S O A With Web Services
Jim Webber    Guerrilla  S O A With  Web  ServicesJim Webber    Guerrilla  S O A With  Web  Services
Jim Webber Guerrilla S O A With Web ServicesSOA Symposium
 
Robert Schneider What Every Developer
Robert  Schneider    What Every DeveloperRobert  Schneider    What Every Developer
Robert Schneider What Every DeveloperSOA Symposium
 
Thomas Rischbeck Real Life E S B
Thomas  Rischbeck    Real  Life  E S BThomas  Rischbeck    Real  Life  E S B
Thomas Rischbeck Real Life E S BSOA Symposium
 
Stefan Pappe Making S O A Operational
Stefan  Pappe    Making  S O A  OperationalStefan  Pappe    Making  S O A  Operational
Stefan Pappe Making S O A OperationalSOA Symposium
 
Paul Brown Org Man Issues
Paul  Brown    Org  Man  IssuesPaul  Brown    Org  Man  Issues
Paul Brown Org Man IssuesSOA Symposium
 
Arnaud Simon Flight Data Processing
Arnaud  Simon    Flight  Data ProcessingArnaud  Simon    Flight  Data Processing
Arnaud Simon Flight Data ProcessingSOA Symposium
 
Mark Little Web Services And Transactions
Mark  Little    Web  Services And  TransactionsMark  Little    Web  Services And  Transactions
Mark Little Web Services And TransactionsSOA Symposium
 
S Ven Hakan Olsson Compos Index
S Ven  Hakan  Olsson    Compos IndexS Ven  Hakan  Olsson    Compos Index
S Ven Hakan Olsson Compos IndexSOA Symposium
 
Art Ligthart Service Identification Techniques
Art  Ligthart    Service  Identification  TechniquesArt  Ligthart    Service  Identification  Techniques
Art Ligthart Service Identification TechniquesSOA Symposium
 
Paul C Brown S O A Governance
Paul  C  Brown    S O A  GovernancePaul  C  Brown    S O A  Governance
Paul C Brown S O A GovernanceSOA Symposium
 
Brian Loesgen An Early Look At Oslo
Brian  Loesgen    An  Early  Look At  OsloBrian  Loesgen    An  Early  Look At  Oslo
Brian Loesgen An Early Look At OsloSOA Symposium
 
Chris Riley S O A Modeling
Chris  Riley    S O A ModelingChris  Riley    S O A Modeling
Chris Riley S O A ModelingSOA Symposium
 

More from SOA Symposium (20)

Sven Hakan Olsson Composability Index V2
Sven Hakan Olsson    Composability  Index V2Sven Hakan Olsson    Composability  Index V2
Sven Hakan Olsson Composability Index V2
 
Thomas Erl Introducing S O A Design Patterns
Thomas  Erl    Introducing  S O A  Design  PatternsThomas  Erl    Introducing  S O A  Design  Patterns
Thomas Erl Introducing S O A Design Patterns
 
Radovan Janecek Avoiding S O A Pitfalls
Radovan  Janecek   Avoiding  S O A  PitfallsRadovan  Janecek   Avoiding  S O A  Pitfalls
Radovan Janecek Avoiding S O A Pitfalls
 
Natasja Paulssen S A P M D M And E S O A At Philips
Natasja  Paulssen    S A P  M D M And E S O A At  PhilipsNatasja  Paulssen    S A P  M D M And E S O A At  Philips
Natasja Paulssen S A P M D M And E S O A At Philips
 
Anthony Carrato S O A Business Architecture
Anthony  Carrato    S O A  Business  ArchitectureAnthony  Carrato    S O A  Business  Architecture
Anthony Carrato S O A Business Architecture
 
David Chappel S O A Grid
David  Chappel    S O A  GridDavid  Chappel    S O A  Grid
David Chappel S O A Grid
 
Johan Kumps Federal E S B
Johan  Kumps    Federal  E S BJohan  Kumps    Federal  E S B
Johan Kumps Federal E S B
 
Laurent Tarin B P M Ilog
Laurent  Tarin    B P M  IlogLaurent  Tarin    B P M  Ilog
Laurent Tarin B P M Ilog
 
Jim Webber Guerrilla S O A With Web Services
Jim Webber    Guerrilla  S O A With  Web  ServicesJim Webber    Guerrilla  S O A With  Web  Services
Jim Webber Guerrilla S O A With Web Services
 
Robert Schneider What Every Developer
Robert  Schneider    What Every DeveloperRobert  Schneider    What Every Developer
Robert Schneider What Every Developer
 
Thomas Rischbeck Real Life E S B
Thomas  Rischbeck    Real  Life  E S BThomas  Rischbeck    Real  Life  E S B
Thomas Rischbeck Real Life E S B
 
Stefan Pappe Making S O A Operational
Stefan  Pappe    Making  S O A  OperationalStefan  Pappe    Making  S O A  Operational
Stefan Pappe Making S O A Operational
 
Paul Brown Org Man Issues
Paul  Brown    Org  Man  IssuesPaul  Brown    Org  Man  Issues
Paul Brown Org Man Issues
 
Arnaud Simon Flight Data Processing
Arnaud  Simon    Flight  Data ProcessingArnaud  Simon    Flight  Data Processing
Arnaud Simon Flight Data Processing
 
Mark Little Web Services And Transactions
Mark  Little    Web  Services And  TransactionsMark  Little    Web  Services And  Transactions
Mark Little Web Services And Transactions
 
S Ven Hakan Olsson Compos Index
S Ven  Hakan  Olsson    Compos IndexS Ven  Hakan  Olsson    Compos Index
S Ven Hakan Olsson Compos Index
 
Art Ligthart Service Identification Techniques
Art  Ligthart    Service  Identification  TechniquesArt  Ligthart    Service  Identification  Techniques
Art Ligthart Service Identification Techniques
 
Paul C Brown S O A Governance
Paul  C  Brown    S O A  GovernancePaul  C  Brown    S O A  Governance
Paul C Brown S O A Governance
 
Brian Loesgen An Early Look At Oslo
Brian  Loesgen    An  Early  Look At  OsloBrian  Loesgen    An  Early  Look At  Oslo
Brian Loesgen An Early Look At Oslo
 
Chris Riley S O A Modeling
Chris  Riley    S O A ModelingChris  Riley    S O A Modeling
Chris Riley S O A Modeling
 

Recently uploaded

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Recently uploaded (20)

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

Andre Tost Service Models Java

  • 1. This Presentation Courtesy of the International SOA Symposium October 7-8, 2008 Amsterdam Arena www.soasymposium.com info@soasymposium.com Founding Sponsors Platinum Sponsors Gold Sponsors Silver Sponsors SOA Symposium October 7-8, 2008, Amsterdam Implementing Service Models with Java André Tost (andretost@us.ibm.com) Senior Technical Staff Member, SOA Technology IBM Software Services for WebSphere © 2008 IBM Corporation 1
  • 2. SOA Symposium Agenda  Service Models – Utility Services – Entity Services – Task Services  Service Composition  Backup: Service Orientation Principles with Java Web Services – If time permits  Summary 3 Implementing Service Models in Java © 2008 IBM Corporation SOA Symposium Intro (and shameless plug)  The content of this presentation is extracted from content of the forthcoming book “SOA in Java”, which is part of the Prentice Hall Service-Oriented Computing Series from Thomas Erl  It doesn‟t cover the entire book, but only content that is related to Service Models  We assume that your implementation and deployment platform is Java – Well, if this surprises you, you obviously didn‟t read the title of this presentation!  We assume Java 5  We used Glassfish for creation of examples  However, I will not show a lot of actual Java code. I expect you know how to write Java. We will focus on architectural and design aspects, testing, packaging considerations and other best practices. 4 Implementing Service Models in Java © 2008 IBM Corporation 2
  • 3. SOA Symposium Service Models 5 Implementing Service Models in Java © 2008 IBM Corporation SOA Symposium Service Models  To give structure to our service-oriented environment, we create layers of functionality – High level business processes are represented in the Process Layer – Traditional IT systems are in the Application Layer – The Service Interface Layer allows functionality from the Application Layer to be leveraged in the Process Layer  The Service Interface Layer can be further decomposed into three layers – Orchestration Service Layer – Business Service Layer – Application Service Layer  All of these layers can be sorted into a service layer „stack‟ – Shows dependencies and relationships between different parts of a solution – These parts can be developed top-down, bottom-up, or both 6 Implementing Service Models in Java © 2008 IBM Corporation 3
  • 4. SOA Symposium Service Models 7 Implementing Service Models in Java © 2008 IBM Corporation SOA Symposium Service Models  We can associate different service models with these layers – Different types of services exist at different levels in the resulting „stack‟ – All are part of the service portfolio for an enterprise – Service models allow classifying and structuring service portfolio  Utility Services – In the Application Services layer – Offer technical functionality  Entity Services – In the Business Services layer – Offer access to data  Task Services – In the Business Services layer – Represent activities within a business process  We will not cover logic existing in the other layers in this session  We will focus on aspects of developing these service models in Java 8 Implementing Service Models in Java © 2008 IBM Corporation 4
  • 5. SOA Symposium Service Models: Utility Services 9 Implementing Service Models in Java © 2008 IBM Corporation SOA Symposium Utility Services – Architectural Considerations  Utility Services are used by services in the Business Services layer – Not the other way around – They might be invoked from within an ESB, making them totally transparent to the Business Services  They are usually not identified in the process and domain decomposition phase of the SOA analysis and design process  Utility service identification is triggered by, for example: – Non-functional requirements (NFR) – „Wrapping‟ of existing non-SOA technology – Existing Java standards 10 Implementing Service Models in Java © 2008 IBM Corporation 5
  • 6. SOA Symposium Utility Services – Architectural Considerations  Various ways exist for invoking Utility Services – Local versus remote – Call-by-value versus call-by-reference  Performance aspects – Mainly through serialization – Different serialization options exist – XML, binary  Concurrency aspects – Multiple clients accessing the service implementation – Must be thread safe – Java EE application servers handle this automatically 11 Implementing Service Models in Java © 2008 IBM Corporation SOA Symposium Utility Services - Types  Omni utility services – Very generic in nature – E.g. eventing, security, logging – Typically use JAX-WS Provider  Resource utility services – Encapsulate resources like messaging, data, network, etc – i.e. acts as façade – Use existing standard Java APIs – May want to add transfer objects to reduce “chattiness”  Micro utility services – Fine grained – E.g. encryption/decryption, mathematical calculations, transformation – Typically not accessed remotely – No Web services  Wrapper utility services – Also called “connector services” or “adapter services” – JCA is the prime standard leveraged by these services 12 Implementing Service Models in Java © 2008 IBM Corporation 6
  • 7. SOA Symposium Utility Services – Design and Implementation  Utility Services are highly reusable across many business domains – Should have generic interfaces – XML: <xsd:any/> or <xsd:anyType/> – Remote Java: java.io.Serializable, e.g. String – Local Java: java.lang.Object – Make sure implementation supports multi-threading – Use synchronized where appropriate – Avoid using instance-level state  Use of Java editions – Java SE supports several relevant APIs for Utility Services – Security (JAAS), Management (JMX), Transformation (JAXP), Logging, Persistence (JDBC) – Java EE adds an additional rich set of APIs that are relevant – Messaging (JMS), Transformation (JAXB), Transactions (JTA), Registry (JNDI, JAXR), Legacy Integration (JCA) – Leveraging EJB ensures high degree of autonomy and scalability  Open Source Frameworks can help creating Utility Services – Spring – Hibernate – Commons Logging – … 13 Implementing Service Models in Java © 2008 IBM Corporation SOA Symposium Utility Services – Design and Implementation  Utility Services as Web Services – Don‟t use <xsd:string> as type for XML documents – Will be encoded, thus increasing the size of the message – Use <xsd:any/> instead – JAX-WS supports „provider style‟ service implementation – Implement javax.xml.ws.Provider – No parsing or serialization – XML message is directly passed to the implementation – Use SAAJ to parse message content @ServiceMode(value=Service.Mode.MESSAGE) @WebServiceProvider() public class GenericProviderImpl implements javax.xml.ws.Provider<javax.xml.soap.SOAPMessage> { public SOAPMessage invoke(SOAPMessage message) { // read and process SOAPMessage... } } 14 Implementing Service Models in Java © 2008 IBM Corporation 7
  • 8. SOA Symposium Utility Services – Testing and Packaging  Testing – Use JUnit – High degree of reuse requires thorough testing – NFR may not always be known in advance – Make services as autonomous as possible  Packaging – Java logic can be packaged in JAR, WAR or EAR – Depends on the deployment environment – Java EE or Java SE etc 15 Implementing Service Models in Java © 2008 IBM Corporation SOA Symposium Service Models: Entity Services 16 Implementing Service Models in Java © 2008 IBM Corporation 8
  • 9. SOA Symposium Entity Services – Architectural Considerations  Entity Services are used by higher-level Task Services and Process Services  Typically support an enterprise canonical model – Addressing inconsistencies in data used across many applications – One version of the “truth” – Provide uniform view of domain-specific views of data  Domain entities versus message entities – Domain entities represent enterprise data model – Message entities are driven by processes‟ needs for information – They are the information that flows between activities within the process – Offer a “shallow” view of the enterprise data  Require Data Aggregation – Encapsulated by the Implementation – Must consider ownership 17 Implementing Service Models in Java © 2008 IBM Corporation SOA Symposium Entity Services – Architectural Considerations  Access mode – Defines whether or not data is accessed exclusively – Defines whether data can be accessed by other users/applications while it is being changed – Service Data Objects offer “disconnected data access” in Java – Data is retrieved by consumer for work – No physical locks are held on the data source – Changes are made within a separate transaction – Conflicts can be resolved in different ways (raise exception, overwrite, etc) – This is also called “optimistic locking” – See http://www.osoa.org/display/Main/Service+Data+Objects+Specifications  Change notifications – Support notifying clients of updates made to data – Not usually supported 18 Implementing Service Models in Java © 2008 IBM Corporation 9
  • 10. SOA Symposium Entity Services – Design and Implementation  Do not expose underlying physical data model – It may change  Exposed is a view of the data driven by business needs  Entity Services are stateless – Use underlying technology to store the data – No operations named load(), save(), etc  Avoid technical terms in interface and operation names – Should always be business relevant – Avoid exposing implementation details (e.g. “queryCustomerTable”)  Use existing persistence frameworks to map domain entities into Java – JPA, EJB3 – Hibernate  Put message entities and domain entities into separate packages 19 Implementing Service Models in Java © 2008 IBM Corporation SOA Symposium Entity Services – Design and Implementation  Message entities can be viewed as shallow wrappers around domain entities – Carry only the attributes that are relevant to the consumer – Don‟t include full object graph  For consumers with widely differing requirements for attributes, use generic types  For Java SE implementation, you can use JDBC – But you must handle transactions, scrolling, partial loading, etc  Better to use JPA – It is the underlying mechanism for EJB3 Entity beans – But it works in Java SE, too – Also supported (and heavily influenced by) Hibernate  For Java EE implementation, create stateless session bean as façade over Entity beans 20 Implementing Service Models in Java © 2008 IBM Corporation 10
  • 11. SOA Symposium Entity Services – Design and Implementation  Entity Services are most likely always exposed as Web services – High degree of reuse across business domains – Single access point for information  Data model can start out as XML Schema or as Java – Tooling (wsgen, wsimport, ….) can generate one from the other – Full XML Schema set now supported by JAXB  Testing – Entity services can be used in different contexts, all of which have to be tested – Synchronous, “online” – Asynchronous, “batch” – High degree of concurrency – Test optimistic locking – Performance-critical – Especially when aggregating from multiple sources  Packaging – Domain entities and message entities go into different packages – Put domain entities into Utility JAR for reuse – In Java EE, one enterprise application per Entity service 21 Implementing Service Models in Java © 2008 IBM Corporation SOA Symposium Service Models: Task Services 22 Implementing Service Models in Java © 2008 IBM Corporation 11
  • 12. SOA Symposium Task Services – Architectural Considerations  Task Services stem from decomposition of business processes into activities – Often domain-specific or even process-specific – Less reusable  “Top-down” design  They often use Entity Services – Entity Services are often “bottom-up”  Contain pure business logic – Technology agnostic  Act as controllers – Expose coarse grained interface – Invoke finer grained (Entity) service interfaces – Might be co-located with these services to improve performance 23 Implementing Service Models in Java © 2008 IBM Corporation SOA Symposium Task Services – Architectural Considerations  Task service versus Process service – Task service invokes a sequence of lower level services – In plain Java – A task service represents an activity within a business process – The business process is implemented as an orchestration, using a higher level of abstraction, like WS-BPEL – Task services are short running, process services are long running – Task services have no human interaction  Task services are stateless – But they may have to retain state across invocations of aggregated services – Can usually use local heap space 24 Implementing Service Models in Java © 2008 IBM Corporation 12
  • 13. SOA Symposium Task Services – Design and Implementation  Task service identification through process decomposition often leads to one operation per service  Try to group similar operations and reduce number of distinct services – Services are governed, maintained and versioned as a unit  Use namespaces as a way to distinguish between services in different layers  Messages are specific to the context of the business process – May not always follow canonical model  Implementation has to catch exceptions and error conditions from lower level technology and translate them into business level faults – Pay as much attention to modeling faults as to modeling the rest of the messages  Implementation should not directly use low level Java APIs – Should use Entity and Utility services – For example, do not use JavaMail, use the “Email” service – Might lead to the need for additional services 25 Implementing Service Models in Java © 2008 IBM Corporation SOA Symposium Task Services – Design and Implementation  Implementation as stateless session EJB allows access from a variety of clients – Note that WS clients do not automatically carry context, like an EJB client does – Security, transactions – Might have to leverage advanced WS-* specifications  Task services have many dependencies on other services – Challenging for unit testing – Create stubs for all invoked services – Might want to replace service proxies with local objects 26 Implementing Service Models in Java © 2008 IBM Corporation 13
  • 14. SOA Symposium Service Composition 27 Implementing Service Models in Java © 2008 IBM Corporation SOA Symposium Service Composition – Terminology  Service Composition (or Aggregation) means that a service invokes other, existing services to implement its logic  The ability of services to be composed into a new service is one of the core principles of SOA – Allows building solutions quickly – Allows adapting existing solutions to new market demands quickly  In our definition, Composition is different than Orchestration – Orchestration is one way of composing services among others – Orchestration is often done to implement a business process – Orchestration often uses BPEL – We will focus on Java-based composition here 28 Implementing Service Models in Java © 2008 IBM Corporation 14
  • 15. SOA Symposium Service Composition - Terminology  Services play different roles in compositions  Composition Controller invokes other services – Controller acts as „parent‟ – May have to store state across invocations – Utilizes different message exchange patterns for invocations  Composition Member is invoked as part of a composition – Member acts as „child‟ – Completely decoupled from controller‟s consumer – Can be controller for its own composition – Called “sub-controllers” 29 Implementing Service Models in Java © 2008 IBM Corporation SOA Symposium Service Composition and Service Models  Task Services are typical Composition Controllers – Can be members, too  Task Services are typical Composition Sub-controllers  Entity Services are typical Composition Members – Can be controllers, too  Utility Services are Composition Members 30 Implementing Service Models in Java © 2008 IBM Corporation 15
  • 16. SOA Symposium Service Composition – Design and Implementation  Members are not aware of their controllers – This would create an unwanted degree of coupling  Controllers are aware of their members, of course – Identifying suitable members is part of the design process for a service  Usage of a service as a composition member must be subject to appropriate governance processes – SLAs must be put in place  Used protocols imply certain Qualities of Service – HTTP is not reliable – JMS supports transactional message delivery  May require support for additional standards – WS-ReliableMessaging – WS-AtomicTransaction – These are supported by the underlying runtime and do not have any impact on the service logic 31 Implementing Service Models in Java © 2008 IBM Corporation SOA Symposium Service Composition – Design and Implementation  Endpoint lookup – Composition member endpoints should not be hardcoded into the controller – javax.xml.ws.Service interface offers various ways of resolving this at runtime – addPort() creates a new port with new address – create() creates a Service instance from existing WSDL (including endpoint address) – Use createDispatch() method to implement completely dynamic invocation – Addresses should be looked up in a registry – Controller should cache member endpoint addresses  Error handling – Controllers should not copy all Fault messages from members into its own contract – Again, unwanted coupling and exposure of implementation details – Catch all exceptions in downstream invocations and convert to exceptions that are appropriate to the functional context of the controller – Including “unmodeled” faults, i.e. RuntimeException or WebServiceException (JAX-WS) – i.e. avoid relying on unmodeled fault handling – Propagates implementation details to consumer that it cannot handle  Tracing – Add „correlators‟ to each message to allow identifying it across member invocations – Do not make this part of the service contract – Use JAX-WS handlers instead 32 Implementing Service Models in Java © 2008 IBM Corporation 16
  • 17. SOA Symposium Service Composition - Packaging  If members are Web services, use wsimport to generate client packages for each composition member – Creates required utility classes and interfaces – Can easily be packaged into a utility JAR file  If members are Java EE services (i.e. remote EJB), use client EJB bindings – Can also be packaged as utility JAR file – Use annotations in implementation logic to reference remote EJB  Package utility JAR files with EAR for composition controller  Very fine grained composition members (Utility services) may directly be included with controller logic – Cannot be called efficiently over a network – Creates a coupling between controller and member, e.g. member implementation cannot be changed without impacting the controller 33 Implementing Service Models in Java © 2008 IBM Corporation SOA Symposium Summary 34 Implementing Service Models in Java © 2008 IBM Corporation 17
  • 18. SOA Symposium Summary  Service Models allow structuring services into different categories, according to their characteristics – Utility Services are highly reusable, often technical in nature – Entity Services offer consistent access to data, are also reusable – Task Services represent activities within a business process, coarse grained, less reusable  Java and especially Java EE offer predefined APIs and mechanisms to implement these services – JAXB to describe XML-based data – JAX-WS has a statically defined and a generic programming model to provide and invoke Web services – Many lower level APIs for Utility Services, e.g. JavaMail – JDBC, JPA and EJB3 for Entity Services  Composition is a core capability of SOA – Includes orchestration, which is done in BPEL – Introduces new roles: composition controller and composition member – Different Service Models apply to different composition roles 35 Implementing Service Models in Java © 2008 IBM Corporation SOA Symposium Thai Traditional Chinese Russian Gracias Spanish Thank English You Merci French Obrigado Brazilian Portuguese Arabic Grazie Danke Italian German Simplified Chinese Japanese 36 36 Implementing Service Models in Java © 2008 IBM Corporation 18
  • 19. SOA Symposium Backup: Service-Orientation Principles with Java Web Services 37 Implementing Service Models in Java © 2008 IBM Corporation SOA Symposium Service-Orientation Principles with Java Web Services  Service Reusability – Agnostic functional context – Highly generic service logic – Generic and extensible contract – Concurrent access to service logic  Standardized Service Contract Design – Top-down versus bottom-up design – Java2WSDL and WSDL2Java mapping – Use of industry standards  Service Loose Coupling – Separation of contract and implementation – Functional context with no dependency on outside – Minimal requirements for consumer  Service Abstraction – Abstracting technology details – Hiding service details – Document constraints 38 Implementing Service Models in Java © 2008 IBM Corporation 19
  • 20. SOA Symposium Service-Orientation Principles with Java Web Services  Service Composability – Composition of members versus composition of controllers – Highly efficient runtime environment – Flexible service contract – Standards-based runtime  Service Autonomy – Well-defined functional boundary – Control over runtime environment – High concurrency  Service Statelessness  Service Discoverability – Design time discoverability – Runtime discoverability – Service registries 39 Implementing Service Models in Java © 2008 IBM Corporation 20