soa fundamentals for java developers · soa fundamentals for java developers alexander ulanov,...

30
SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008 SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

Upload: others

Post on 22-May-2020

24 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

SOA Fundamentals For Java DevelopersAlexander Ulanov, System Architect

Odessa, 30 September 2008

SOA Fundamentals For Java DevelopersAlexander Ulanov, System Architect

Odessa, 30 September 2008

Page 2: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

What is SOA?What is SOA?

• Software Architecture style aimed on• Reuse• Growth• Interoperability

• Maturing technology framework supporting the architecture

• Next evolutionary step of enterprise information systems

• An effective mean to close the gap between business and IT

Page 3: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

Enterprise EcosystemEnterprise Ecosystem

SOA

Page 4: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

SOA for IT-resources integrationSOA for IT-resources integration

• Common infrastructure based on open and widely-adopted standards

• Reuse of enterprise information services and other software assets

• Going beyond the enterprise – integration with:• Partner’s IT• Global chain of information services providers and consumers

• Unified policies to all services and applications• Service level agreements

• Integrating legacy systems • Smooth transition

Page 5: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

SOA for Business-IT AlignmentSOA for Business-IT Alignment

• Software resources (services) are designed as a business function

• The services are orchestrated to fulfill particular business-process

• This involves:• Services are understandable in terms of business (visibility)• Local changes in IT as response to new or changed business-

process• Events in information system can be simply abstracted to

business key performance indicators (KPI)

Page 6: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

Reference ArchitectureReference Architecture

Page 7: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

Principles of Service DesignPrinciples of Service Design

• Top-down: from business-processes to services contract

• Bottom-up: from existing software assets – how to fulfill the contract

Page 8: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

Design by ContractDesign by Contract

• Contract• Interface definition

• Operations• Data types

• Policy assertions• Identify behavior

attributes

• “Contract first”

Page 9: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

Loose CouplingLoose Coupling

• Service contracts impose low consumer coupling requirements

• Negative coupling:• to implementation of service

logic• to vendor technology• to resources of the

implementation environment• to parent business-process

Page 10: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

AutonomyAutonomy

• High level of control over underlying runtime execution environment

• Gradual transformation• Reducing shared resources access• Increasing physical isolation

• Autonomy is especially important to the effectiveness of service compositions

Page 11: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

ComposabilityComposability

• Fundamental principle - system decomposition and separation of concerns

• Ability to act as an effective composition member so that it can support the realization of new business requirements that can be fulfilled by the assembly of service compositions

• That involves service properties:• Designed from business-process

model• Autonomous• Loosely coupled

• Composition design pattern:• Functional call

Page 12: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

StatelessnessStatelessness

• Concurrent access to statefull service is a scalability issue

• Deferring the management of state information when necessary• Empowers composition and reuse

Page 13: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

AbstractionAbstraction

• General categories of information about service:• Functional• Technology• Programmatic• Quality of Service

• Service contracts contain only essential information

• Information about services is limited to what is published in service contracts

Page 14: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

ReusabilityReusability

• Services contain and express agnostic logic• Contract centralization• Logic centralization

• Can be positioned as reusable enterprise resources• Inventory (Repository)

• To support reuse• Conservative

• Specify requirements to reuse that service

• Governance effort• Cultural change

• Developers encouraged to discoverfor reuse

Page 15: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

DiscoverabilityDiscoverability

• Services are supplemented with communicative meta-data• Functional• Quality of Service

• And can be effectively discovered and interpreted• Service Registry

• Similar process for run-time (dynamical binding)

Page 16: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

Standardized Service ContractStandardized Service Contract

• Same contract design standards within service inventory (repository)

• Standards enable automated policies governance

Page 17: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

ProcessProcess

Page 18: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

SOA ProgramSOA Program

Page 19: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

Service Life-Cycle ManagementService Life-Cycle Management

Page 20: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

Service InfrastructureService Infrastructure

Page 21: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

Communication ProtocolsCommunication Protocols

• WS-*• Large set of standards issued by OASIS

• Security, reliable messaging, policies, etc..• SOAP – basic communication protocol• Standard Java API – JAX-WS

• RESTful Services• JAX-RS

• JMS

• EJB (RMI/IIOP)

• etc

Page 22: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

Exposing and Calling Web-Services in JavaExposing and Calling Web-Services in Java

• JAX-WS: server • Expose service from

• EJB• POJO• Spring component

• From WSDL to code vs. from code to WSDL

• JAX-WS: client

Page 23: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

Infrastructure FunctionsInfrastructure Functions

• Mediation & Messaging• Synchronous and

asynchronous message delivery

• Transport protocol adapters• HTTP, SOAP, SMTP/POP3,

JMS, FTP, …

• Caching

• Security• End-to-end• Message-level

• Dynamical binding

• Service Composition• Data transformation• Content-based routing• Event-flow orchestration

• Management• Service Provisioning• Traffic management• Monitoring, Logging,

Alerting

Page 24: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

Apache Synapse / WSO2 ESBApache Synapse / WSO2 ESB

• Lightweight ESB • Mediation• Transformation (XSLT, XQuery)• Security (WS-Security)

Page 25: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

Service Component Architecture (SCA)Service Component Architecture (SCA)

• Programming model seen by application code remains the same regardless to protocol

Page 26: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

Service Component Architecture (SCA)Service Component Architecture (SCA)

• Assembly:• Packaging component as a

service• Combining into composites• Dependency Injection• Wiring, Auto-wiring• Properties

• Annotations• @Remotable, @Reference,

@Property…• SCDL configuration files

Page 27: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

Service Component Architecture (SCA)Service Component Architecture (SCA)

Advantage over Spring:• remote components• multiple protocols for communication • variety of programming languages for application components• support for an asynchronous programming model • flexible application of policy to components and to communications

Page 28: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

Open-Source Infrastructure ProductsOpen-Source Infrastructure Products

• JAX-WS Containers• Java 6 SDK WS-Container• Sun JAX-WS (Metro)• Apache CXF

• ESB• Apache ServiceMix

• IONA Fuse ESB• Mule ESB• Apache Synapse

• WSO2 ESB• Sun’s OpenESB• JBoss ESB

• SCA container• Apache Tuscany

• Messaging• Apache Active MQ

• Registry• ApacheDS (LDAP)• Sun OpenDS (LDAP)• Apache jUDDI (UDDI)

• Registry/Repository• Mule Galaxy• WSO2 Registry

Page 29: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

What else is worth to study?What else is worth to study?

Page 30: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008

Questions?Questions?