A place for everything, everything in its place Benjamin Franklin

Size: px
Start display at page:

Download "A place for everything, everything in its place Benjamin Franklin"

Transcription

1 A place for everything, everything in its place Benjamin Franklin

2 What do I do I create software holistic approach Technology (Java, Java EE) and Craftsmanship Design, architecture, usability Exploration of methodologies and best practices I work as a trainer and consultant Java technologies Software engineering Community Leader of Lublin Java Users Group Blogger, speaker, publisher...

3 Agenda Challenges of software Domain Driven Design introduction advanced topics Technical and architectural aspects of implementation When to use DDD Beyond DDD

4 Business software No sophisticated stuff nothing like Fast Fourier Transform Just simple operations... just multiplied by 1000:) synergy of simple components continuously changing We need a structure for dozens of simple elements

5 Symptoms You read code and understand nothing You can't see any rules or process You don't know how to translate business requirements to code You change code and nothing works Now it's Your problem:)

6 Complexity Essential inherent and unavoidable depends on problem Accidental caused by chosen approach depends on solution

7 The Second Law of Thermodynamics Entropy does not diminish

8 Cowards solution Cowards solution;)

9 What would You change... if You start everything from the beginning? XML Annotations SOA Another web framework;) Dynamic language New server New version of the server

10 Insanity: doing the same thing over and over again and expecting different results

11 Where is the problem? Presentation layer Logic layer Data access layer

12 It's all about the model Model needs care Model is a heart of the system reason why creating it main value advantage factor Modelling is the toughest part weak model leads to failure *it's not truth for all system, it's just DDD perspective

13 Unstructured design Just adding new features with no care about model big ball of mud chaos and anarchy costs in long term

14 What model IS NOT Database is not a model just data structure very technical no behavior static we can't see whats going on created to early later we need to hack

15 What model IS FOR continous knowledge gathering about rules about dynamics common (client developer) understanding of domain vocabulary jargon

16 What model IS Real model description and simplification for current needs no unimportant stuff avoid mental overload knowledge base - rules and behavior

17 Domain Driven Design General concept technology and platform independent Set of design and analysis techniques focus on domain logic layer complexity reduction extension-ability and changeability Pragmatic approach to OOD and OOA

18 DDD IS NOT A SILVER BULLET

19 EVANS IS NOT A SAVIOR

20 There is technically nothing new or revolutionary in DDD, there is only a guide to a better way of thinking. Casey Charlton

21 DDD Mental shift Focus on behavioral model Common (Ubiquitous) Language Strategic modeling Core Domain Contexts Domain Layer OOD Data and rules Roles that implicate responsibility Responsibility Driven Design GRASP SOLID

22 Language of the model If domain expert don't understand model than something is really wrong

23 Problems with models No model just add features (somewhere;) Model at the beginning, but no maintenance useless, inadequate documents Distinct jargon leads to need of translation translation leads to errors and misunderstandings Pure analytical model fails fast unimplementable models are useless "I've done my job, I don't care how You will implement it"

24 Solution: Ubiquitous language Model must be bind to code modeling in right paradigm there is no pure modeling support for procedural paradigm OOD techniques used by annalists building blocks... Modeler must code coding is not low-skilled job result: creating implementable models Coder must fell responsibility for the model

25 Good picture is worth more than 1000 words Not only UML Use any form that supports common understanding and communication Client specific diagrams Sketch System metaphor...

26 System metaphor Software design tend to be abstract Organize design around metaphor hard to grasp absorb vocabulary Find metaphor in real world that describes your system loose, easy do understand large scale structure

27 Effort reduction + Domain Model Analysis == Domain Model Design Domain Logic Layer

28 How to bind model and code? Responsibility Driven Design Define roles that objects can play Roles determines responsibility Separate logic in layers

29 Layers User interface Application logic Domain logic Infrastructure Presentation can be very sophisticated; do not underestimate Thin layer - just coordinates and delegates to domain Heart of the system model of the business concepts and rules Technical capabilities - may exist as a few layers (persistence, messages, etc)

30 Building Blocks of Domain Layer Entities (not anemic) Value Objects Aggregates Services (business) Policies and Specifications Business events Factories Repositories

31 Entities Object that need to be distinguished even if attributes are the same some ID Not only data Also behavior (business responsibility) characteristic essential

32 Value Objects Just description of some characteristic No distinction no identity VOs are the same if their attributes are the same Typical usage: Usually immutable - because has no identity attributes of call between objects therefore can be reusable we don't care which instance is being used Usually no need to persist if You have search criteria => You can create an instance

33 Power of VOs Expression of business concepts adds conceptual power more meaningful than just String May contain useful methods (instead of utils) validation constructor may validate input Examples color, point (source, destination) address*, phone number money

34 Candidates for VO Strings with format limitations zip code name Numbers with limitations percentage quantity Business object's arguments/returns money composed: amount + currency maybe can be exchanged? address can be valid only for specific time period?

35 Services Business Services Sometimes it just isn't a thing OO is not always proper approach OO is not always possible (human factor) When can not find natural "home" in Entity/VO Operation without state Defined in terms of other Building Block Should not strip Entity/VO of all their responsibilities

36 Aggregate Cluster of objects (Entity/VOs) inner objects can reference each other inside boundary with one root Outer entity is Aggregate root controls access - encapsulation Unit of data change

37 Encapsulation is virtue human.getdigestionsystem(). human.getdigestionsystem(). getperitoneum().getstomach(). getperitoneum().getstomach(). add(new add(new Sausage(2)); Sausage(2)); human.eat(new human.eat(new Sausage(2)); Sausage(2)); public public void void eat(food eat(food f){ f){ if if (! (! ilike(f)) ilike(f)) thow thow new new IDontLikeItException(f); IDontLikeItException(f); this.digestionsystem.swallow(f); this.digestionsystem.swallow(f); }}

38 public public class class Order{ private OrderId OrderId id; private private List<OrderItem> items items == new new ArrayList<OrderItem>(); ArrayList<OrderItem>(); private private BigDecimal BigDecimal sum sum == new new BigDecimal(0); BigDecimal(0); //... status, createdate, rebatepolicy, //... status, createdate, rebatepolicy, productrepository,... productrepository,... public public void void add(productid add(productid id, id, int int quantity){ quantity){ Product p = productrepository.load(id); Product p = productrepository.load(id); OrderItem OrderItem oi oi == orderitemfactory.build(p, orderitemfactory.build(p, quantity, quantity, rebatepolicy); rebatepolicy); items.add(oi); items.add(oi); sum sum == sum.add(oi.getcost()); sum.add(oi.getcost()); }} public public void void submit(){ submit(){ if if (status (status!=!= Status.NEW) Status.NEW) throw new InvalidStateException(); throw new InvalidStateException(); status status == Status.IN_PROGRESS; Status.IN_PROGRESS; createdate createdate == new new Date(); Date(); eventsmanager.handle(ordereventsfactory.ordersubmitted(this)); eventsmanager.handle(ordereventsfactory.ordersubmitted(this)); }} }} public public Iterator<OrderItem> Iterator<OrderItem> getorderitems(){ getorderitems(){ return items.iterator(); return items.iterator(); }}

39 Builder Design Pattern Director Builder

40 Factory Use factory when creation of Entity/Aggregate is complicated Factory prevents from invalid Domain Object if raw material is invalid than factory vetoes Options add factory method to closely related objects if creating VO consider Singleton Architectural aspects when creating ORM Entities (out of IoC containter control) than inject dependencies manually in factory method

41 Repository Storage abstraction of objects (Entity/Aggregate) of some type Encapsulates DB access decoupling domain and technical stuff Retrieves objects by identity business criteria (in business Use Cases) don't use it as a finder (use separate service)

42 AOP Transactions Application Service Transaction Proxy Application Service OrdersRepository InvoicesRepository OrmOrdersRepositoryImpl OrmInvoicesRepositoryImpl Persistence Unit + Transactions Manager

43 Policy Process as a Domain Object makes it explicit extends Ubiquitous Language Simply: Strategy Design Pattern Useful when there is more than one way to carry out a process if process variations can be covered by common interface to choose process is to choose strategy

44 Policy example public class Order{ //FIXME: change to BigDecimal private double totalcost; <<interface>> TaxPolicy calculatetax(order) private TaxPolicy taxpolicy; private RebatePolicy rebatepolicy; PolishTaxPolicy } public void submit(){ totalcost-=rebatepolicy.calculaterebate(this); totalcost-=taxpolicy.calculatetax(this);... } UKTaxPolicy

45 Policy injection getorderfactory IoC Container OrderFactory settaxpolicy return OrderFactory PolishTaxPolicy

46 @Component public class OrderFactory{ private TaxPolicy taxpolicy; private RebatePolicy public OrderFactory(TaxPolicy tp, RebatePolicy rp){ this.taxpolicy = tp; this.rebatepolicy=rp; } } public Order createorder(...){ Order o = new Order(...); o.settaxpolicy(taxpolicy); o.setrebatepolicy(rebatepolicy); }

47 @Component( taxpolicy ) public class PolishTaxPolicy implements TaxPolicy{... } <bean id="taxpolicy" public class public TaxPolicy taxpolicy() { return... ; } }

48 Policy common pattern Change classic thinking noun class verb - method Activity is an object method is just a signal to execute it Unleash OO techniques polymorphic execution re-usability

49 Extension and Testability Extension without modification Strategy implies high cohesion Single policy can be tested Aggregate can be tested using policy stub/mock Aggregate <<interface>> Strategy Test Stub/Mock Test Impl Concrete Business Impl Test

50 Events Business Event is a signal from Aggregate Aggregate is highly decoupled does not know about receiver type does not know how many receivers are interested in

51 public public class class Order{ Order{ public public void void submit(){ submit(){ if (status if (status!=!= Status.NEW) Status.NEW) throw new InvalidStateException(); throw new InvalidStateException(); status status == Status.IN_PROGRESS; Status.IN_PROGRESS; createdate createdate == new new Date(); Date(); }} }} eventsmanager.handle(ordereventsfactory.ordersubmitted(this)); eventsmanager.handle(ordereventsfactory.ordersubmitted(this));

52 What are Events for? Decouple additional behavior adding new behavior without domain modification strong form of Inversion of Control Collect state change (if we need to keep track of entity changes history) Events Sourcing events can signalize change Asynchronous invocation When fast response is needed Distributed DDD...

53 Specification Model of rules Makes rules explicit Can be used for Entity/Aggregate validation or selection public public interface interface InvoiceSpecyfication{ InvoiceSpecyfication{ public public Collection<InvoiceProblem> Collection<InvoiceProblem> check(invoice check(invoice i) i) }}

54 public public interface interface InvoiceCriterion{ InvoiceCriterion{ public public String String validate(invoice validate(invoice i); i); public public boolean boolean iscritical(); iscritical(); }} public public class class CombinedInvoiceSpecyfication CombinedInvoiceSpecyfication implements implements InvoiceSpecyfication{ InvoiceSpecyfication{ private private List<InvoiceCriterion> List<InvoiceCriterion> criteria; criteria; public public Iterable<InvoiceProblem> Iterable<InvoiceProblem> check(invoice check(invoice i){ i){ Collection<InvoiceProblem> Collection<InvoiceProblem> result result == new new...;...; for for (InvoiceCriterion (InvoiceCriterion criterion criterion :: criteria){ criteria){ String String problem problem == criterion.validate(i); criterion.validate(i); if if (problem (problem!=!= null){ null){ result.add(new result.add(new InvoiceProblem(problem)); InvoiceProblem(problem)); if if (criterion.iscritical()) (criterion.iscritical()) break; break; return return result; result; }}}} }}}}

55 Building Blocks - cooperation Application Layer (Application Services, Use Case Agents) Domain Layer (Business Logic) Entity (Aggregate root) Delegate business methods Factory Business Service Delegate Create Entity Delegate <<interface>> Policy (Strategy Design Pattern) <<interface>> Repository Load Save Value Object Aggregate Generate Event PolicyImpl1 PolicyImpl2

56 Comparison to procedural approach PROCEDURE orderservice(o:torder); BEGIN... END; TOrder = RECORD id: integer;... END;

57 memory.reset();

58 Strategic design Distillation of Domains Defining Bounded Contexts Introduce Anti-corruption Layer

59 You can't do everything perfect Welcome to the real world, Neo Not enough knowledge Not enough skilled people Not enough time Not enough money Not enough time Not enough money Not enough time Not enough money Not enough time

60 Focus on core domain Core Domain Reason why we create system Main business features (give advantage to the client) Focus intellectual effort invest time and best people Supporting Domain Additional features not critical Lower quality is acceptable Can be rewritten (someday - sure;) Generic Domain Very specific (invoicing, math calculations) Buy/use working solution and integrate with it

61 Core Domain Strategies Write Domain Vision Statement what brings value? Keep it small Invest the best people Fame for implementing "sexy" business features

62 Context When distinct models are combined, we are in troubles difficult to understand unreliable buggy

63 Grand Unified Theory Common anti-pattern one, big, corporate model meaningless one word in different contexts mean different thing responsibility behavior structure

64 Bounded Context When system grow up complexity is too high can't look at the level of individual objects Define context where model applies Context is encapsulated communicates with outer word via interface inner business model is hermetic therefore it can evolve -changes don't spread through whole system

65 Contexts Strategies Common Core Context can be defined Shared Kernel Decouple distinct Domain Contexts Core (business) Generic (Math stuff etc)

66 Anti-corruption Layer

67 Anti-corruption Strategies Our brand new shiny nice system Anti-corruption Layer Facade Adapter Service Ugly legacy system

68 Technical aspects of DDD impl.

69 Main rule Platform, framework or technical architecture should not influence arena of domain model

70 Useful techniques already discussed ORM - aggregates Inversion of Control Dependency Injection - policies Events Aspect Oriented Programming transactions (also security) over application layer that impact Repositories Design Patterns Policy, Specification, Anti-corruption Layer

71 Command-query Separation Paradigm Method should play one of the following roles command executes some logic query return data Multiple query should not affect the answer Eliminates side effect

72 Sample violation of CqS Class level violation private private int int x; x; public int incrementandreturn(){ public int incrementandreturn(){ x++; x++; return return x; x; }} System level violation Add an Order and return list of all orders it's GUI functionality but server API should offer 2 methods

73 Command-query Responsibility Segregation (G)UI Query Command DTO Application Logic Facade Data provider/finder via Service Business Logic Repository/DAO ORM + JDBC

74 CqRS Characteristic Processing C and Q is often asymmetrical Should be scaled separately Is it worth to apply in CRUD systems?

75 CqRS Distributed DDD and scalability (G)UI Query Command DTO Application Logic Business Logic Data provider/finder Event (asynch) DB 2 Change Events Bus + Event handlers Repository/DAO DB 1

76 Query sample impl. public public class class SearchDocumentsQuery SearchDocumentsQuery implements implements Serializable{ Serializable{ private Status status; private Status status; private private Date Date epirydate; epirydate; private String[] private String[] titlewords; titlewords; private String[] contentwords; private String[] contentwords; //Getters //Getters and and setters/constructor setters/constructor }} public public class class DocumentQueries DocumentQueries /*implements /*implements SomeInterface*/{ SomeInterface*/{ public List<Document> search(searchdocumentsquery public List<Document> search(searchdocumentsquery query){ query){ //ORM return entities simple case //ORM return entities simple case }} }} public public List<DocumentDTO> List<DocumentDTO> search(searchdocumentsquery search(searchdocumentsquery query){ query){ //SQL return UseCase relevant Data Transfer Object //SQL return UseCase relevant Data Transfer Object }}

77 Query a'la DSL public public class class SearchDocumentsQuery SearchDocumentsQuery implements implements Serializable{ Serializable{ private Status status; private Status status; private private Date Date epirydate; epirydate; private String[] private String[] titlewords; titlewords; private String[] contentwords; private String[] contentwords; //ONLY //ONLY getters getters public public SearchDocumentsQuery SearchDocumentsQuery expired(){ expired(){ status = Status.ACTIVE; status = Status.ACTIVE; expirydate expirydate == new new Date(); Date(); return this; return this; }} }} public public SearchDocumentsQuery SearchDocumentsQuery contains(string contains(string phrase){ phrase){ String[] words = phrase.split(" "); String[] words = phrase.split(" "); titlewords titlewords == words; words; contentwords = contentwords = words; words; return this; return this; }}

78 Command classic impl. public public class class OrderProductCommand OrderProductCommand implelents implelents Serializable{ Serializable{ private int productid; private int productid; private private int int quantity; quantity; //getters and //getters and constructor constructor }} public public class class Basket Basket /*implements /*implements SomeInterface*/{ SomeInterface*/{ private Order order; private Order order; public public void void add(addproductcommand add(addproductcommand cmd){ cmd){ Product prod = productrepository.get(cmd.getproductid()); Product prod = productrepository.get(cmd.getproductid()); order.add(prod, order.add(prod, cmd.getquantity()); cmd.getquantity()); }} }} public public void void submit(submitordercommand submit(submitordercommand cmd){ cmd){ order.submit(cmd.getpayment(), cmd.getaddressinfo()); order.submit(cmd.getpayment(), cmd.getaddressinfo()); orderrepository.save(order); orderrepository.save(order); eventsmanager.ordersubmitted(new eventsmanager.ordersubmitted(new OrderSubmittedEvent(order)); OrderSubmittedEvent(order)); }}

79 Command handlers based impl. public public class class OrderProductCommand OrderProductCommand extends extends Command{...} Command{...} public public interface interface Handler<T> Handler<T> {{ void void handlemessage(t handlemessage(t message) message) throws throws Exception; Exception; }}

80 public public class class AddProductHandler AddProductHandler implements implements Handler<AddProductCommand>{ Handler<AddProductCommand>{ private private ProductRepository ProductRepository repository; repository; }} public public void void handlemessage(addproductcommand handlemessage(addproductcommand message) message) {{ //... //... }} public public class class CommandBus{ CommandBus{ public void public void handle(command handle(command cmd) cmd) Collection<Handler<?>> matchedhandlers Collection<Handler<?>> matchedhandlers == handlers.get(message.getclass()); handlers.get(message.getclass()); for (Handler for (Handler handler handler :: matchedhandlers){ matchedhandlers){ //prepare environment //prepare environment (transactions, (transactions, security, security, //inject current user, etc) //inject current user, etc) handler.handlemessage(cmd); handler.handlemessage(cmd); }} }} }} //may //may generate generate message message

81 Event Sourcing If state of Aggregate at any given time is needed to be rebuild not the same as Logs "Inner" events represents current state of Aggregate events are stored in persistence layer Aggregate can be recreated to given state (point in time) by rebuilding information from relevant events.

82 Temporal Object Pattern Alternative to Event Sourcing whole state of Aggregate version persisted newest version is always available no computation source:

83 Is DDD right for me? Aspects of personality Aspects of business domain itself Aspects of project nature

84 Constructor Writer

85 Sometimes it's all about just collecting data (with nice GUI)

86 DDD Prerequisites Domain is not trivial Team has experience and interest in OOP/OOD You have access to domain experts You have an iterative process

87 Beyond DDD

88 Advanced data models Model Archetype analytical design pattern standard "model component" that can be taken off the shelf, customized, and instantiated in your own models adaptable can be trimmed to fit actual requirements extensible can be extended to fit new requirements Catalog of models: Company structure and relationships, customers, products, inventory, orders, scientific stuff (laboratory),...

89 How to model People and Organizations? Person User Employee Client Company Inheritance is not a good idea to model roles:p

90 Party source: Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML By Jim Arlow, Ila Neustadt

91 General Idea source: Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML By Jim Arlow, Ila Neustadt

92 Example source: Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML By Jim Arlow, Ila Neustadt

93 Model source: Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML By Jim Arlow, Ila Neustadt

94 Details of Party source: Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML By Jim Arlow, Ila Neustadt

95 Person is a Party source: Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML By Jim Arlow, Ila Neustadt

96 Organization is a Party source: Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML By Jim Arlow, Ila Neustadt

97 Customer is a Party source: Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML By Jim Arlow, Ila Neustadt

98 Customer is a different story... source: Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML By Jim Arlow, Ila Neustadt

99 Behavior Driven Development Agile software development technique Encourages collaboration between developers, QA non-technical or business participants BDD focuses on exposing internal logic (typically business rules) to review by stakeholders. Native language in combination with the ubiquitous language of DDD describe the purpose and benefit of the code

100 Data Context Interaction New programming paradigm needs dynamic language syntax (mixins, traits) Trygve Reenskaug co-inventor of Object Oriented inventor of MVC Mainstream OO languages are not Object Oriented they are rather Class Oriented

101 Use Case flow and global algorithm Classes Classes Classes Classes Classes

102 Context Whole Use Case or just few steps adds meaning to the data Data core basically dumb may contain basic responsibility Interactions business responsibility operates on data Full working Objects makes sense only in context methods implies by current role

103 DDD summary No rocket science Just rational usage of OOA and OOD Pragmatic approach to complexity of business logic Most important things: Ubiquitous Language Strategic Design Building Block are not the most important thing:p

104 Code should mean something Dan Bergh Johnsson

105 Dziękuję za uwagę więcej... Sławomir Sobótka

106 Photo credits https://star-cosmos.com/starcomsos_blog/wp-content/uploads/2009/08/human-body.jpg SQUARESPACE_CACHEVERSION=

September 18, 2014. Modular development in Magento 2. Igor Miniailo Magento

September 18, 2014. Modular development in Magento 2. Igor Miniailo Magento September 18, 2014 Modular development in Magento 2 Igor Miniailo Magento Agenda 1 Magento 2 goals 2 Magento 1 modules 3 Decoupling techniques 4 Magento 2 is it getting better? 5 Modularity examples Magento

More information

Customer Bank Account Management System Technical Specification Document

Customer Bank Account Management System Technical Specification Document Customer Bank Account Management System Technical Specification Document Technical Specification Document Page 1 of 15 Table of Contents Contents 1 Introduction 3 2 Design Overview 4 3 Topology Diagram.6

More information

Domain-Driven Design

Domain-Driven Design SWE577 2011S 1 Domain-Driven Design Ali Fındık Abstract Domain Driven Design (DDD) is an approach to developing software for complex needs by deeply connecting the implementation to an evolving model of

More information

Creating Models. Rob Allen, June 2014

Creating Models. Rob Allen, June 2014 Creating Models Rob Allen, June 2014 I make business websites 19ft.com The business logic is the hard part MVC MVC The model is the solution to a problem A problem A customer wants to plan a journey

More information

Java EE Web Development Course Program

Java EE Web Development Course Program Java EE Web Development Course Program Part I Introduction to Programming 1. Introduction to programming. Compilers, interpreters, virtual machines. Primitive types, variables, basic operators, expressions,

More information

Service-Oriented Architecture and Software Engineering

Service-Oriented Architecture and Software Engineering -Oriented Architecture and Software Engineering T-86.5165 Seminar on Enterprise Information Systems (2008) 1.4.2008 Characteristics of SOA The software resources in a SOA are represented as services based

More information

Enterprise Application Development In Java with AJAX and ORM

Enterprise Application Development In Java with AJAX and ORM Enterprise Application Development In Java with AJAX and ORM ACCU London March 2010 ACCU Conference April 2010 Paul Grenyer Head of Software Engineering p.grenyer@validus-ivc.co.uk http://paulgrenyer.blogspot.com

More information

Dynamic website development using the Grails Platform. Joshua Davis Senior Architect Cognizant Technology Solutions joshua.davis@cognizant.

Dynamic website development using the Grails Platform. Joshua Davis Senior Architect Cognizant Technology Solutions joshua.davis@cognizant. Dynamic website development using the Grails Platform Joshua Davis Senior Architect Cognizant Technology Solutions joshua.davis@cognizant.com Topics Covered What is Groovy? What is Grails? What are the

More information

Service Oriented Architecture and the DBA Kathy Komer Aetna Inc. New England DB2 Users Group. Tuesday June 12 1:00-2:15

Service Oriented Architecture and the DBA Kathy Komer Aetna Inc. New England DB2 Users Group. Tuesday June 12 1:00-2:15 Service Oriented Architecture and the DBA Kathy Komer Aetna Inc. New England DB2 Users Group Tuesday June 12 1:00-2:15 Service Oriented Architecture and the DBA What is Service Oriented Architecture (SOA)

More information

Architecture Rules Enforcement and Governance Using Aspects

Architecture Rules Enforcement and Governance Using Aspects Architecture Rules Enforcement and Governance Using Aspects Srini Penchikala SATURN 2009 About the Speaker Enterprise Architect Writer, Speaker, Editor (InfoQ) Detroit Java User Group Leader Working with

More information

Patterns & Techniques for Separating Business Logic in New SOA System Development. Iyad Jabri Intelliun Corporation CEO

Patterns & Techniques for Separating Business Logic in New SOA System Development. Iyad Jabri Intelliun Corporation CEO Patterns & Techniques for Separating Business Logic in New SOA System Development Iyad Jabri Intelliun Corporation CEO Building a Service Oriented Architecture with BPM & MDA October 16-19, 2006 Burlingame,

More information

SL-110: Fundamentals of Java Revision 15 October Sun Educational Services Instructor-Led Course Description

SL-110: Fundamentals of Java Revision 15 October Sun Educational Services Instructor-Led Course Description Sun Educational Services Instructor-Led Course Description Fundamentals of Java SL-110 The Fundamentals of the Java course provides students, with little or no programming experience, with the basics of

More information

Core J2EE Patterns, Frameworks and Micro Architectures

Core J2EE Patterns, Frameworks and Micro Architectures Core J2EE Patterns, Frameworks and Micro Architectures Deepak.Alur@sun.com Patterns & Design Expertise Center Sun Software Services January 2004 Agenda Patterns Core J2EE Pattern Catalog Background J2EE

More information

Designing an Enterprise Application Framework for Service-Oriented Architecture 1

Designing an Enterprise Application Framework for Service-Oriented Architecture 1 Designing an Enterprise Application Framework for Service-Oriented Architecture 1 Shyam Kumar Doddavula, Sandeep Karamongikar Abstract This article is an attempt to present an approach for transforming

More information

Java (12 Weeks) Introduction to Java Programming Language

Java (12 Weeks) Introduction to Java Programming Language Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short

More information

SOA REFERENCE ARCHITECTURE: WEB TIER

SOA REFERENCE ARCHITECTURE: WEB TIER SOA REFERENCE ARCHITECTURE: WEB TIER SOA Blueprint A structured blog by Yogish Pai Web Application Tier The primary requirement for this tier is that all the business systems and solutions be accessible

More information

Object Oriented System Development with VB.NET

Object Oriented System Development with VB.NET Chapter 1 Object Oriented System Development with Objectives In this chapter, you will: Learn about OO development and Understand object-oriented concepts Recognize the benefits of OO development Preview

More information

Agile Techniques and Tools. White Paper

Agile Techniques and Tools. White Paper Agile Techniques and Tools White Paper Agile Techniques and Tools Synopsis This section provides an overview of a number of techniques and tools that are commonly used by agile development teams. These

More information

A Meeting Room Scheduling Problem

A Meeting Room Scheduling Problem A Scheduling Problem Objective Engineering, Inc. 699 Windsong Trail Austin, Texas 78746 512-328-9658 FAX: 512-328-9661 ooinfo@oeng.com http://www.oeng.com Objective Engineering, Inc., 1999-2007. Photocopying,

More information

2/9/2010. Standard Approach to Distribution. Remote Procedure Calls (RPC) Example: Music Jukebox in the Cloud

2/9/2010. Standard Approach to Distribution. Remote Procedure Calls (RPC) Example: Music Jukebox in the Cloud Remote Batch Invocation for Compositional Object Services CPS 296.1 9 th Feb 2010 Vamsidhar Thummala Content borrowed from William R Cook Standard Approach to Distribution Step I: Design a language Clean

More information

Research Article. ISSN 2347-9523 (Print) *Corresponding author Lili Wang Email: lily@nepu.edu.cn

Research Article. ISSN 2347-9523 (Print) *Corresponding author Lili Wang Email: lily@nepu.edu.cn Scholars Journal of Engineering and Technology (SJET) Sch. J. Eng. Tech., 2015; 3(4B):424-428 Scholars Academic and Scientific Publisher (An International Publisher for Academic and Scientific Resources)

More information

Designing and Writing a Program DESIGNING, CODING, AND DOCUMENTING. The Design-Code-Debug Cycle. Divide and Conquer! Documentation is Code

Designing and Writing a Program DESIGNING, CODING, AND DOCUMENTING. The Design-Code-Debug Cycle. Divide and Conquer! Documentation is Code Designing and Writing a Program DESIGNING, CODING, AND DOCUMENTING Lecture 16 CS2110 Spring 2013 2 Don't sit down at the terminal immediately and start hacking Design stage THINK first about the data you

More information

Architectural Design

Architectural Design Software Engineering Architectural Design 1 Software architecture The design process for identifying the sub-systems making up a system and the framework for sub-system control and communication is architectural

More information

How service-oriented architecture (SOA) impacts your IT infrastructure

How service-oriented architecture (SOA) impacts your IT infrastructure IBM Global Technology Services January 2008 How service-oriented architecture (SOA) impacts your IT infrastructure Satisfying the demands of dynamic business processes Page No.2 Contents 2 Introduction

More information

How to Build Successful DSL s. Jos Warmer Leendert Versluijs

How to Build Successful DSL s. Jos Warmer Leendert Versluijs How to Build Successful DSL s Jos Warmer Leendert Versluijs Jos Warmer Expert in Model Driven Development One of the authors of the UML standard Author of books Praktisch UML MDA Explained Object Constraint

More information

Considerations: Mastering Data Modeling for Master Data Domains

Considerations: Mastering Data Modeling for Master Data Domains Considerations: Mastering Data Modeling for Master Data Domains David Loshin President of Knowledge Integrity, Inc. June 2010 Americas Headquarters EMEA Headquarters Asia-Pacific Headquarters 100 California

More information

Swirl. Multiplayer Gaming Simplified. CS4512 Systems Analysis and Design. Assignment 1 2010. Marque Browne 0814547. Manuel Honegger - 0837997

Swirl. Multiplayer Gaming Simplified. CS4512 Systems Analysis and Design. Assignment 1 2010. Marque Browne 0814547. Manuel Honegger - 0837997 1 Swirl Multiplayer Gaming Simplified CS4512 Systems Analysis and Design Assignment 1 2010 Marque Browne 0814547 Manuel Honegger - 0837997 Kieran O' Brien 0866946 2 BLANK MARKING SCHEME 3 TABLE OF CONTENTS

More information

Exploratory Testing in an Agile Context

Exploratory Testing in an Agile Context Exploratory Testing in an Agile Context A guide to using Exploratory Testing on Agile software development teams. Elisabeth Hendrickson 2 Exploratory Testing. So you bang on the keyboard randomly, right?

More information

Domain Driven Design and Model Driven Software Development

Domain Driven Design and Model Driven Software Development Domain Driven Design and Model Driven Software Development Karsten Klein, hybrid labs, January 2007 Version: 1.0 Introduction Eric Evans Book Domain Driven Design was first published end of 2003 [Evans2003].

More information

The Service Revolution software engineering without programming languages

The Service Revolution software engineering without programming languages The Service Revolution software engineering without programming languages Gustavo Alonso Institute for Pervasive Computing Department of Computer Science Swiss Federal Institute of Technology (ETH Zurich)

More information

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces Software Engineering, Lecture 4 Decomposition into suitable parts Cross cutting concerns Design patterns I will also give an example scenario that you are supposed to analyse and make synthesis from The

More information

Developing SOA solutions using IBM SOA Foundation

Developing SOA solutions using IBM SOA Foundation Developing SOA solutions using IBM SOA Foundation Course materials may not be reproduced in whole or in part without the prior written permission of IBM. 4.0.3 4.0.3 Unit objectives After completing this

More information

MA-WA1920: Enterprise iphone and ipad Programming

MA-WA1920: Enterprise iphone and ipad Programming MA-WA1920: Enterprise iphone and ipad Programming Description This 5 day iphone training course teaches application development for the ios platform. It covers iphone, ipad and ipod Touch devices. This

More information

Journal of Chemical and Pharmaceutical Research, 2015, 7(3):417-421. Research Article

Journal of Chemical and Pharmaceutical Research, 2015, 7(3):417-421. Research Article Available online www.jocpr.com Journal of Chemical and Pharmaceutical Research, 2015, 7(3):417-421 Research Article ISSN : 0975-7384 CODEN(USA) : JCPRC5 Design and implementation of pharmaceutical enterprise

More information

Java Application Developer Certificate Program Competencies

Java Application Developer Certificate Program Competencies Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle

More information

Service Oriented Architecture

Service Oriented Architecture Service Oriented Architecture Service Oriented Analysis and Design (SOAD) in Practice Part 4 Adomas Svirskas Vilnius University October 2005 Agenda Service identification and definition Business process

More information

From Systems to Services

From Systems to Services From Systems to Services How we can collaborate in the new paradigm? Randy Ballew, Chief Technology Architect, IST-AS Steve Masover, Architecture Group, IST-AS Overview What is "software as services"?

More information

Developing the Architectural Framework for SOA Adoption

Developing the Architectural Framework for SOA Adoption Developing the Architectural Framework for SOA Adoption Oliver Sims Enterprise Architect oliver.sims@open-it.co.uk Copyright Open-IT Limited 2005 Agenda Service Orientation just a good technology? The

More information

BDD FOR AUTOMATING WEB APPLICATION TESTING. Stephen de Vries

BDD FOR AUTOMATING WEB APPLICATION TESTING. Stephen de Vries BDD FOR AUTOMATING WEB APPLICATION TESTING Stephen de Vries www.continuumsecurity.net INTRODUCTION Security Testing of web applications, both in the form of automated scanning and manual security assessment

More information

What is a database? COSC 304 Introduction to Database Systems. Database Introduction. Example Problem. Databases in the Real-World

What is a database? COSC 304 Introduction to Database Systems. Database Introduction. Example Problem. Databases in the Real-World COSC 304 Introduction to Systems Introduction Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca What is a database? A database is a collection of logically related data for

More information

Object-Oriented Systems Analysis and Design

Object-Oriented Systems Analysis and Design Object-Oriented Systems Analysis and Design Noushin Ashrafi Professor of Information System University of Massachusetts-Boston Hessam Ashrafi Software Architect Pearson Education International CONTENTS

More information

Agile Software Development

Agile Software Development Agile Software Development Principles, Patterns, and Practices Robert Cecil Martin Alan Apt Series Prentice «: : Hall Pearson Education, Inc. Upper Saddle River, New Jersey 07458 Foreword Preface About

More information

Service Oriented Architectures

Service Oriented Architectures 8 Service Oriented Architectures Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ The context for SOA A bit of history

More information

Settlers of Catan Phase 1

Settlers of Catan Phase 1 Settlers of Catan Phase 1 Objective In this phase you will design, implement, and test the following subsystems: 1. Catan Model 2. Server Proxy 3. Server Poller Catan Model The Catan Model will be at the

More information

SOA Success is Not a Matter of Luck

SOA Success is Not a Matter of Luck by Prasad Jayakumar, Technology Lead at Enterprise Solutions, Infosys Technologies Ltd SERVICE TECHNOLOGY MAGAZINE Issue L May 2011 Introduction There is nothing either good or bad, but thinking makes

More information

SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture

SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q Number: S90-03A Passing Score: 800 Time Limit: 120 min File Version: 14.5 http://www.gratisexam.com/ Exam Code: S90-03A Exam Name:

More information

History OOP languages Year Language 1967 Simula-67 1983 Smalltalk

History OOP languages Year Language 1967 Simula-67 1983 Smalltalk History OOP languages Intro 1 Year Language reported dates vary for some languages... design Vs delievered 1957 Fortran High level programming language 1958 Lisp 1959 Cobol 1960 Algol Structured Programming

More information

Programming and Software Development CTAG Alignments

Programming and Software Development CTAG Alignments Programming and Software Development CTAG Alignments This document contains information about four Career-Technical Articulation Numbers (CTANs) for Programming and Software Development Career-Technical

More information

7. Excursus: Business Information Systems Darmstadt University of Applied Sciences, Department of Computer Science Dr. Markus Voß (Accso GmbH)

7. Excursus: Business Information Systems Darmstadt University of Applied Sciences, Department of Computer Science Dr. Markus Voß (Accso GmbH) SOA Service Oriented Architecture 7. Excursus: Business Information Systems Darmstadt University of Applied Sciences, Department of Computer Science Dr. Markus Voß (Accso GmbH) Today s topic 1. Introduction

More information

Software Architecture Document

Software Architecture Document Software Architecture Document Natural Language Processing Cell Version 1.0 Natural Language Processing Cell Software Architecture Document Version 1.0 1 1. Table of Contents 1. Table of Contents... 2

More information

A Near Real-Time Personalization for ecommerce Platform Amit Rustagi arustagi@ebay.com

A Near Real-Time Personalization for ecommerce Platform Amit Rustagi arustagi@ebay.com A Near Real-Time Personalization for ecommerce Platform Amit Rustagi arustagi@ebay.com Abstract. In today's competitive environment, you only have a few seconds to help site visitors understand that you

More information

Software Service Engineering Architect s Dream or Developer s Nightmare?

Software Service Engineering Architect s Dream or Developer s Nightmare? Software Service Engineering Architect s Dream or Developer s Nightmare? Gregor Hohpe Google, 1600 Amphitheatre Parkway, Mountain View, CA 94043 gregor@hohpe.com Abstract. Architectural principles such

More information

PG DAC. Syllabus. Content. Eligibility Criteria

PG DAC. Syllabus. Content. Eligibility Criteria PG DAC Eligibility Criteria Qualification 1. Engg Graduate in any discipline or equivalent (eg. BE/B.Tech/4 years B. Sc Engg./ AMIE/ AIETE / DoEACC B level etc). 2. PG in Engg. Sciences (eg. MCA / M.Sc.

More information

Software Documentation Guidelines

Software Documentation Guidelines Software Documentation Guidelines In addition to a working program and its source code, you must also author the documents discussed below to gain full credit for the programming project. The fundamental

More information

Specialized Programme on Web Application Development using Open Source Tools

Specialized Programme on Web Application Development using Open Source Tools Specialized Programme on Web Application Development using Open Source Tools Objective: At the end of the course, Students will be able to: Understand various open source tools(programming tools and databases)

More information

OUR COURSES 19 November 2015. All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan 32 411 19 Göteborg Sweden

OUR COURSES 19 November 2015. All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan 32 411 19 Göteborg Sweden OUR COURSES 19 November 2015 Solid Beans AB Kungsgatan 32 411 19 Göteborg Sweden Java for beginners JavaEE EJB 3.1 JSF (Java Server Faces) PrimeFaces Spring Core Spring Advanced Maven One day intensive

More information

Design and UML Class Diagrams

Design and UML Class Diagrams Design and UML Class Diagrams 1 Suggested reading: Practical UML: A hands on introduction for developers http://dn.codegear.com/article/31863 UML DistilledCh. 3, by M. Fowler How do people draw / write

More information

Methods and tools for data and software integration Enterprise Service Bus

Methods and tools for data and software integration Enterprise Service Bus Methods and tools for data and software integration Enterprise Service Bus Roman Hauptvogl Cleverlance Enterprise Solutions a.s Czech Republic hauptvogl@gmail.com Abstract Enterprise Service Bus (ESB)

More information

What is a life cycle model?

What is a life cycle model? What is a life cycle model? Framework under which a software product is going to be developed. Defines the phases that the product under development will go through. Identifies activities involved in each

More information

CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards

CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards Course Title: TeenCoder: Java Programming Course ISBN: 978 0 9887070 2 3 Course Year: 2015 Note: Citation(s) listed may represent

More information

Core Java+ J2EE+Struts+Hibernate+Spring

Core Java+ J2EE+Struts+Hibernate+Spring Core Java+ J2EE+Struts+Hibernate+Spring Java technology is a portfolio of products that are based on the power of networks and the idea that the same software should run on many different kinds of systems

More information

Domain driven design, NoSQL and multi-model databases

Domain driven design, NoSQL and multi-model databases Domain driven design, NoSQL and multi-model databases Java Meetup New York, 10 November 2014 Max Neunhöffer www.arangodb.com Max Neunhöffer I am a mathematician Earlier life : Research in Computer Algebra

More information

Masters of Science in Software & Information Systems

Masters of Science in Software & Information Systems Masters of Science in Software & Information Systems To be developed and delivered in conjunction with Regis University, School for Professional Studies Object Oriented Design Table of Contents January

More information

Domain Driven Design. Informatik IT-Uddannelse og IT-Udvikling

Domain Driven Design. Informatik IT-Uddannelse og IT-Udvikling Domain Driven Design Morten Mertner Senior Consultant, Teknologisk Institut - Architect and Software Developer (C#) - Teacher - Speaker (conferences and gatherings) Certifications - MSCD.NET - MCT Open

More information

Robust Object Oriented System Analysis

Robust Object Oriented System Analysis Robust Object Oriented System Analysis Dr Jie Zhao, Dunstan Thomas Consulting Summary Uses cases are widely accepted as the best approach to capturing system requirements, in particular, functional requirements.

More information

Stock Trader System. Architecture Description

Stock Trader System. Architecture Description Stock Trader System Architecture Description Michael Stevens mike@mestevens.com http://www.mestevens.com Table of Contents 1. Purpose of Document 2 2. System Synopsis 2 3. Current Situation and Environment

More information

... Introduction... 17

... Introduction... 17 ... Introduction... 17 1... Workbench Tools and Package Hierarchy... 29 1.1... Log on and Explore... 30 1.1.1... Workbench Object Browser... 30 1.1.2... Object Browser List... 31 1.1.3... Workbench Settings...

More information

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB September Case Studies of Running the Platform NetBeans UML Servlet JSP GlassFish EJB In this project we display in the browser the Hello World, Everyone! message created in the session bean with servlets

More information

M4.1-R4: APPLICATION OF.NET TECHNOLOGY

M4.1-R4: APPLICATION OF.NET TECHNOLOGY M4.1-R4: APPLICATION OF.NET TECHNOLOGY NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE is to be answered in the TEAR-OFF

More information

WebSphere ESB Best Practices

WebSphere ESB Best Practices WebSphere ESB Best Practices WebSphere User Group, Edinburgh 17 th September 2008 Andrew Ferrier, IBM Software Services for WebSphere andrew.ferrier@uk.ibm.com Contributions from: Russell Butek (butek@us.ibm.com)

More information

Query Engine. A Pattern for Performing Dynamic Searches in Information Systems. Tim Wellhausen kontakt@tim-wellhausen.de http://www.tim-wellhausen.

Query Engine. A Pattern for Performing Dynamic Searches in Information Systems. Tim Wellhausen kontakt@tim-wellhausen.de http://www.tim-wellhausen. Query Engine A Pattern for Performing Dynamic Searches in Information Systems Tim Wellhausen kontakt@tim-wellhausen.de http://www.tim-wellhausen.de Jan 24, 2006 Abstract: This paper presents an architecture

More information

Application of Next Generation Telecom Network Management Architecture to Satellite Ground Systems

Application of Next Generation Telecom Network Management Architecture to Satellite Ground Systems Application of Next Generation Telecom Network Management Architecture to Satellite Ground Systems Author: P.Ramachandran Name: Date: Designation: March 2 nd, 2005 Date: February, 2004 0 Agenda Background

More information

The Software Development Life Cycle: An Overview. Last Time. Session 5: Agenda. Why Objects? Principles of the O-O Paradigm

The Software Development Life Cycle: An Overview. Last Time. Session 5: Agenda. Why Objects? Principles of the O-O Paradigm The Software Development Life Cycle: An Overview Presented by Maxwell Drew and Dan Kaiser Southwest State University Computer Science Program Last Time The design process and design methods Design strategies

More information

Software Tests with Faktor-IPS Gunnar Tacke, Jan Ortmann (Dokumentversion 203)

Software Tests with Faktor-IPS Gunnar Tacke, Jan Ortmann (Dokumentversion 203) Software Tests with Faktor-IPS Gunnar Tacke, Jan Ortmann (Dokumentversion 203) Overview In each software development project, software testing entails considerable expenses. Running regression tests manually

More information

How To Implement Lightweight ESOA with Java

How To Implement Lightweight ESOA with Java Abstract How To Implement Lightweight ESOA with Java La arquitectura SOA utiliza servicios para integrar sistemas heterogéneos. Enterprise SOA (ESOA) extiende este enfoque a la estructura interna de sistemas,

More information

Government's Adoption of SOA and SOA Examples

Government's Adoption of SOA and SOA Examples Government's Adoption of SOA and SOA Examples Presented by : Ajay Budhraja, Chief of Enterprise Services ME (Engg), MS (Management), PMP, CICM, CSM, ECM (Master) AIIM, ITIL-F Copyright 2008 Ajay Budhraja

More information

Design Patterns. Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems.

Design Patterns. Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems. Design Patterns Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems. What are the major description parts? Design Patterns Descriptions

More information

So we thought we knew money

So we thought we knew money So we thought we knew money Ying Hu Sam Peng Here at Custom House Global Foreign Exchange, we have built and are continuing to evolve a system that processes online foreign exchange transactions. Currency,

More information

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1 Open Source egovernment Reference Architecture Osera.modeldriven.org Slide 1 Caveat OsEra and the Semantic Core is work in progress, not a ready to use capability Slide 2 OsEra What we will cover OsEra

More information

The Sun Certified Associate for the Java Platform, Standard Edition, Exam Version 1.0

The Sun Certified Associate for the Java Platform, Standard Edition, Exam Version 1.0 The following applies to all exams: Once exam vouchers are purchased you have up to one year from the date of purchase to use it. Each voucher is valid for one exam and may only be used at an Authorized

More information

Unit I Page No. 1 System Development Object Basics Development Life Cycle Methodologies Patterns Frameworks Unified Approach UML

Unit I Page No. 1 System Development Object Basics Development Life Cycle Methodologies Patterns Frameworks Unified Approach UML Unit I Page No. 1 System Development Object Basics Development Life Cycle Methodologies Patterns Frameworks Unified Approach UML System Development (SD) : - o SD refers to all activities that go into producing

More information

Software harder than Hardware!?

Software harder than Hardware!? Dr. Falk Langhammer Living Pages Research GmbH Software harder than Hardware!? Failures of object-oriented and promises of organic programming Agenda What is complex? Hands-on (35 min) Philosophy Acknowledgements

More information

Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence

Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence Service Oriented Architecture SOA and Web Services John O Brien President and Executive Architect Zukeran Technologies

More information

Aspect Oriented Programming. with. Spring

Aspect Oriented Programming. with. Spring Aspect Oriented Programming with Spring Problem area How to modularize concerns that span multiple classes and layers? Examples of cross-cutting concerns: Transaction management Logging Profiling Security

More information

Patterns for Business Object Model Integration in Process-Driven and Service-Oriented Architectures

Patterns for Business Object Model Integration in Process-Driven and Service-Oriented Architectures Patterns for Business Object Model Integration in Process-Driven and Service-Oriented Architectures Carsten Hentrich IBM Business Consulting Services, SerCon GmbH c/o IBM Deutschland GmbH Hechtsheimer

More information

Fundamentals of Java Programming

Fundamentals of Java Programming Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors

More information

PIE. Internal Structure

PIE. Internal Structure PIE Internal Structure PIE Composition PIE (Processware Integration Environment) is a set of programs for integration of heterogeneous applications. The final set depends on the purposes of a solution

More information

Cache Database: Introduction to a New Generation Database

Cache Database: Introduction to a New Generation Database Cache Database: Introduction to a New Generation Database Amrita Bhatnagar Department of Computer Science and Engineering, Birla Institute of Technology, A 7, Sector 1, Noida 201301 UP amritapsaxena@gmail.com

More information

WebSphere Server Administration Course

WebSphere Server Administration Course WebSphere Server Administration Course Chapter 1. Java EE and WebSphere Overview Goals of Enterprise Applications What is Java? What is Java EE? The Java EE Specifications Role of Application Server What

More information

If you wanted multiple screens, there was no way for data to be accumulated or stored

If you wanted multiple screens, there was no way for data to be accumulated or stored Handling State in Web Applications Jeff Offutt http://www.cs.gmu.edu/~offutt/ SWE 642 Software Engineering for the World Wide Web sources: Professional Java Server Programming, Patzer, Wrox Web Technologies:

More information

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures Part I EAI: Foundations, Concepts, and Architectures 5 Example: Mail-order Company Mail order Company IS Invoicing Windows, standard software IS Order Processing Linux, C++, Oracle IS Accounts Receivable

More information

Service Oriented Architecture

Service Oriented Architecture Service Oriented Architecture Charlie Abela Department of Artificial Intelligence charlie.abela@um.edu.mt Last Lecture Web Ontology Language Problems? CSA 3210 Service Oriented Architecture 2 Lecture Outline

More information

Object Relational Database Mapping. Alex Boughton Spring 2011

Object Relational Database Mapping. Alex Boughton Spring 2011 + Object Relational Database Mapping Alex Boughton Spring 2011 + Presentation Overview Overview of database management systems What is ORDM Comparison of ORDM with other DBMSs Motivation for ORDM Quick

More information

Performance Comparison of Persistence Frameworks

Performance Comparison of Persistence Frameworks Performance Comparison of Persistence Frameworks Sabu M. Thampi * Asst. Prof., Department of CSE L.B.S College of Engineering Kasaragod-671542 Kerala, India smtlbs@yahoo.co.in Ashwin A.K S8, Department

More information

DESIGN REPORT FOR THE PROJECT INVENTORY CONTROL SYSTEM FOR CALCULATION AND ORDERING OF AVAILABLE AND PROCESSED RESOURCES

DESIGN REPORT FOR THE PROJECT INVENTORY CONTROL SYSTEM FOR CALCULATION AND ORDERING OF AVAILABLE AND PROCESSED RESOURCES DESIGN REPORT FOR THE PROJECT INVENTORY CONTROL SYSTEM FOR CALCULATION AND ORDERING OF AVAILABLE AND PROCESSED RESOURCES (November 12, 2012) GROUP 9 SIMANT PUROHIT AKSHAY THIRKATEH BARTLOMIEJ MICZEK ROBERT

More information

Business Process Execution Language for Web Services

Business Process Execution Language for Web Services Business Process Execution Language for Web Services Second Edition An architect and developer's guide to orchestrating web services using BPEL4WS Matjaz B. Juric With Benny Mathew and Poornachandra Sarang

More information

Complete Web Application Security. Phase1-Building Web Application Security into Your Development Process

Complete Web Application Security. Phase1-Building Web Application Security into Your Development Process Complete Web Application Security Phase1-Building Web Application Security into Your Development Process Table of Contents Introduction 3 Thinking of security as a process 4 The Development Life Cycle

More information

Data Modeling Basics

Data Modeling Basics Information Technology Standard Commonwealth of Pennsylvania Governor's Office of Administration/Office for Information Technology STD Number: STD-INF003B STD Title: Data Modeling Basics Issued by: Deputy

More information

Integration of Application Business Logic and Business Rules with DSL and AOP

Integration of Application Business Logic and Business Rules with DSL and AOP e-informatica Software Engineering Journal, Volume 4, Issue, 200 Integration of Application Business Logic and Business Rules with DSL and AOP Bogumiła Hnatkowska, Krzysztof Kasprzyk Faculty of Computer

More information