Survey On Concern Separation in Service Integration by Tomas Cerny* and Michal J. Donahoo # * Czech Technical University, Czech Rep. # Baylor University, TX, USA SofSem 2016, Harrachov, Czech Republic, Jan 23-28,
Goal Survey on Service Integration Contemporary issues Web Services Distinct evolution boundaries and life-span Development and maintenance efforts Service Interaction perspective Separation of concerns Concern-separating design Impact on Service Integration SofSem 2016, Harrachov, Czech Republic, Jan 23-28,
Code-centric design Background 3 layers 3 tiers Java Enterprise Edition SofSem 2016, Harrachov, Czech Republic, Jan 23-28, Correlation
Service Integration Background Large enterprise software applications Heterogeneous data sources Decentralized governance Reusable, independently replaceable, scalable microservices Composable functionality Platform independence Interoperable Well-defined interfaces Builds on standard machine-readable formats XML, JSON Location transparency SofSem 2016, Harrachov, Czech Republic, Jan 23-28,
Correlation Service Integration Background Addresses disadvantages of code-centric monolithic design Independent components Service provider Integration component Service consumer SofSem 2016, Harrachov, Czech Republic, Jan 23-28, Correlation
Service Provider and Integration Component SofSem 2016, Harrachov, Czech Republic, Jan 23-28, Integration Component Service Provider >
Service Provider and Integration Component SofSem 2016, Harrachov, Czech Republic, Jan 23-28, Integration Component 1 Service Provider > Integration Component 2 > June, 2015 Version 1 Integration Component 1 Service Provider > Integration Component 2 > January, 2016 Version 2 Version 1 ?? Data Data structure Validation Business rules Context-awareness Data structure Validation Business rules Context-awareness
Service Provider and Integration Component SofSem 2016, Harrachov, Czech Republic, Jan 23-28, Service Provider Object-oriented programming (OOP) Industrial standards Persistence Object Relational Mapping Validation Security Business rules Object-based Domain Specific Languages REST/XML/JSON Context-awareness
SofSem 2016, Harrachov, Czech Republic, Jan 23-28, Independent application Coupling to provider Global weak type-safety Restatements Data structure Validation Business rules Context-awareness Security Location Time Service Provider and Integration Component Integration Component >
A Good Software Design 10 A single large procedure? 1000 Lines of code? Structural decomposition Separation of concerns Design principle Separating a computer program into distinct sections Each section addresses a separate concern A concern is a set of information affecting computer program Performance, Security, Logging, Transactional behavior, etc. What if we cannot effectively separate certain concerns? Results in tangled/spaghetti code, or in inefficient interaction Breaking a complex problem/system into parts easier to conceive, understand, program, and maintain. SofSem 2016, Harrachov, Czech Republic, Jan 23-28, 2016
Concern separating approaches Aspect-Oriented Programming (AOP) Component code + Aspect code 11 Concern reuse Need to design Weaver Concerns captured by Aspects No concern Reuse SofSem 2016, Harrachov, Czech Republic, Jan 23-28, 2016
Concern separating Service Design SofSem 2016, Harrachov, Czech Republic, Jan 23-28, Service Provider Code-inspection/Metaprogramming Deriving Join Point Representation Entities and constraints Java Persistence API Bean Validation Presentation Profiles Security annotations Domain Specific Languages Business rules Drools, MPS Validation/Security rules Context-awareness Runtime processing / weaving MetaWidget AspectFaces MetaWidget AspectFaces RuleGuvnor AspectFaces Concerns /Aspects Object/Co mponent AspectWeaver
Concern separating Integration Design SofSem 2016, Harrachov, Czech Republic, Jan 23-28, Integration Component Service Provider > Data structure Data values Validation Business rules Context-awareness Data structure Data values Validation Business rules Context-awareness > Provider Weaver Integration Weaver Runtime processing
Service Provider and Integration Component SofSem 2016, Harrachov, Czech Republic, Jan 23-28, Integration Component 1 Service Provider > Integration Component 2 > June, 2015 Version 1 Integration Component 1 Service Provider > Integration Component 2 > January, 2016 Version 2 Adapts Data values Data structure Validation Business rules Context-awareness Data values Data structure Validation Business rules Context-awareness
Performance MetaProgramming Slow Join point representation preloading/caching AspectWeaving Delegated to the integrating component Parallelization Caching aspects at the integrating component User Interface study Better responsiveness SofSem 2016, Harrachov, Czech Republic, Jan 23-28,
Conclusion Concern separation itself improves service design Multiple existing concern separating approaches Not yet applied to interaction Multiple communication channels Concurrent processing Caching Sharing service meta-information Integrating components adapt to service changes Adaptation relative to explicit field references User Interface Design - render all fields – implicit references Impacts design of the integrating components Dedicated weaver producing proxy objects Limited compile-time decisions SofSem 2016, Harrachov, Czech Republic, Jan 23-28,
Future work Extend Business Rule Distribution Compile-time property evaluation For integrating components type-safety ASM, Apache BCEL Enforce correlation across distributed environment AOP service backwards compatibility Service change == novel aspect for backwards compatibility Chain of Responsibility Mediation Internet of Things SofSem 2016, Harrachov, Czech Republic, Jan 23-28,
@ inproceedings {cerny2016, Title = {Survey On Concern Separation in Service Integration}, Author = {Tomas Cerny, and Michael J. Donahoo}, Booktitle = {SOFSEM2016: Theory and Practice of Computer Science}, Isbn = { }, Month = {January}, Year = {2016}, Pages = { }, Volume ={9587}, Series ={Lecture Notes in Computer Science}, Publisher ={Springer Berlin Heidelberg}, } SofSem 2016, Harrachov, Czech Republic, Jan 23-28, Questions/Answers
Invitation ICITCS Prague SofSem 2016, Harrachov, Czech Republic, Jan 23-28, Scopus ISI EI Scopus ISI EI