soa fundamentals for java developers · soa fundamentals for java developers alexander ulanov,...
TRANSCRIPT
![Page 1: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/1.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/2.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/3.jpg)
Enterprise EcosystemEnterprise Ecosystem
SOA
![Page 4: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/4.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/6.jpg)
Reference ArchitectureReference Architecture
![Page 7: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/12.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/13.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/14.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/15.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/16.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/17.jpg)
ProcessProcess
![Page 18: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/18.jpg)
SOA ProgramSOA Program
![Page 19: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/19.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/20.jpg)
Service InfrastructureService Infrastructure
![Page 21: SOA Fundamentals for Java Developers · SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/21.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/22.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/23.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/24.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/25.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/26.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/27.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/28.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/29.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022013009/5ec995e8bbcdfb09b032fdbc/html5/thumbnails/30.jpg)
Questions?Questions?