Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Agile SOA -- Agile Enterprise Integration

Agile SOA -- Agile Enterprise Integration

This is a talk I gave at an International Association of Software Architects regional conference in 2007.

richardalexandergreen

March 19, 2012
Tweet

More Decks by richardalexandergreen

Other Decks in Programming

Transcript

  1. 8/27/2007 9:33 AM Agile SOA, Agile EAI 1 IT Architect

    Regional Conference 2007 Agile SOA, Agile EAI Name: Richard Green Title: Principal Analyst - Enterprise Architecture Company: DTE Energy
  2. 8/27/2007 9:33 AM Agile SOA, Agile EAI 2 Agile SOA

    Agile SOA Agile EAI Agile EAI How do we achieve agility How do we achieve agility in Enterprise Integration? in Enterprise Integration? T h e p u r p o s e o f t h i s p a p e r i s t o e x p l a i n a f e w s i m p l e c o n c e p t s a n d m e t h o d s t h a t f a c i l i t a t e a g i l i t y i n E n t e r p r i s e I n t e g r a t i o n ( E A I ) a n d S e r v i c e O r i e n t e d A r c h i t e c t u r e ( S O A ) . T h i s p a p e r i s w r i t t e n a s a s h o r t t u t o r i a l . H o w e v e r , t h e r e a d e r s h o u l d b e f a m i l i a r w i t h b a s i c o b j e c t - o r i e n t e d a n a l y s i s a n d o b j e c t - o r i e n t e d d e s i g n c o n c e p t s a n d p r a c t i c e s t o f u l l y u n d e r s t a n d t h e c o n c e p t s d e s c r i b e d h e r e a n d t o p u t t h e m e t h o d s i n t o p r a c t i c e . Richard Green is an Enterprise Architect at DTE Energy – a gas and electric utility with headquarters in Detroit, Michigan. DTE Energy has nine billion dollars in revenues, twelve thousand employees, and three million customers. It is, obviously, a large complex operation with significant investments in legacy systems, major challenges, and ambitions for better integration across the real enterprise and the virtual enterprise. Richard is responsible for defining and articulating IT technical strategy and mentoring other IT roles. Working in this environment has taught Richard many lessons about implementing EAI and SOA in a large and venerable organization.
  3. 8/27/2007 9:33 AM Agile SOA, Agile EAI 3 What is

    Enterprise Integration? Enterprise Integration is the main activity of an in-house software development organization. A mature organization can buy any software it needs, so they don’t build software applications anymore. But they still need to create interfaces for almost everything they buy. Enterprise Integration means building application-to-application (A2A) and business-to-business (B2B) interfaces. W h y i s i t i m p o r t a n t t o b e a g i l e i n E A I a n d S O A ? E n t e r p r i s e I n t e g r a t i o n i s t h e p r i m a r y w o r k o f a n e n t e r p r i s e I T g r o u p . M a t u r e e n t e r p r i s e s r a r e l y n e e d t o d e v e l o p s o f t w a r e p r o d u c t s a n y m o r e . U s u a l l y , t h e y c a n b u y w h a t e v e r t h e y n e e d c h e a p e r t h a n t h e y c a n b u i l d i t . T h e r e a r e o n l y a f e w s i t u a t i o n s w h e r e a n e n t e r p r i s e i n a m a t u r e i n d u s t r y c a n c r e a t e a n y s t r a t e g i c a d v a n t a g e b y c r e a t i n g a d o - i t - y o u r s e l f a p p l i c a t i o n . I a m , o f c o u r s e , t a l k i n g a b o u t e n t e r p r i s e s w h o s e p r i m a r y b u s i n e s s i s s o m e t h i n g o t h e r t h a n c r e a t i n g a n d s e l l i n g s o f t w a r e . H o w e v e r , e v e n i n t h a t c a s e , t h e r e a r e s t i l l m a n y s i t u a t i o n s w h e r e e v e n a s o f t w a r e d e v e l o p m e n t e n t e r p r i s e s h o u l d b u y r a t h e r t h a n b u i l d s o f t w a r e . F o r e x a m p l e , i f a n e n t e r p r i s e s e l l s e n g i n e e r i n g d e s i g n s o f t w a r e , i t p r o b a b l y m a k e s n o s e n s e f o r i t t o b e b u i l d i n g a c c o u n t i n g a p p l i c a t i o n s . S o a l t h o u g h a n e n t e r p r i s e c a n g e n e r a l l y b u y a n y s o f t w a r e a p p l i c a t i o n i t n e e d s a t a f r a c t i o n o f t h e c o s t o f b u i l d i n g i t , t h e e n t e r p r i s e I T g r o u p w i l l n e e d t o i n t e g r a t e t h a t p u r c h a s e i n t o t h e e n t e r p r i s e s y s t e m s . W h a t i s t h e n a t u r e o f i n t e g r a t i o n ? I t i s t h e w o r k o f d e s i g n i n g a n d b u i l d i n g i n t e r f a c e s . H o w c a n w e d o t h a t i n a n a g i l e f a s h i o n ?
  4. 8/27/2007 9:33 AM Agile SOA, Agile EAI 4 Contents Contents

    Context Analysis Planning Managing Testing Deploying What is Enterprise Integration? The message is the feature-set. Release planning is a multi-player game. Concurrent engineering requires a different approach to project management. Re-usable components and services require automated test suites. Deployment requires configuration control. T h i s i s a t a b l e o f c o n t e n t s . I w i l l t a l k a b o u t a c h i e v i n g a g i l i t y a c r o s s t h e p r o g r e s s i o n o f d e v e l o p m e n t w o r k g o i n g f r o m c o n c e p t a l l t h e w a y t h r o u g h d e p l o y m e n t . I n m y r o l e a s a n E n t e r p r i s e A r c h i t e c t a t D T E E n e r g y , I h a v e b e e n c a l l e d i n t o c o n s u l t o n a n u m b e r o f i n t e g r a t i o n p r o j e c t s “ t o e x p l a i n S O A . ” I ’ v e f o u n d t h a t t h e t e a m s a r e o f t e n q u i t e c o n f u s e d a b o u t h o w t o o r g a n i z e t h e i r p r o j e c t a n d d e s i g n . T h e p r o b l e m w a s n o t t h a t t h e y d i d n o t u n d e r s t a n d S O A . T h e p r o b l e m w a s t h a t t h e y d i d n o t k n o w h o w t o a p p l y o b j e c t - o r i e n t e d a n a l y s i s ( O O A ) a n d o b j e c t - o r i e n t e d d e s i g n ( O O D ) c o n c e p t s a n d p r a c t i c e s a t t h e l e v e l o f t h e e n t e r p r i s e . I n t o o m a n y c a s e s , 1 9 8 0 ’ s d e s i g n s w e r e b e i n g r e p l i c a t e d i n J a v a . S o , I s t a r t e d w r i t i n g t u t o r i a l s . I n e e d e d t o s h o w a n a l y s t s h o w t o a p p l y O O A t o b u s i n e s s p r o c e s s i n t e g r a t i o n s c e n a r i o s . A n a l y s t s a n d d e s i g n e r s d i d n o t k n o w h o w t o r e c o g n i z e a s e r v i c e w h e n t h e y s a w o n e . I n e e d e d t o s h o w d e s i g n e r s h o w t o o r g a n i z e c o m p o n e n t a n d s e r v i c e i n t e r f a c e s i n a w a y t h a t a v o i d e d u n n e e d e d c o u p l i n g b e t w e e n c l i e n t a n d s e r v i c e . I n t h e p r o c e s s o f w r i t i n g t h o s e t u t o r i a l s , I d i s c o v e r e d a v e r y u s e f u l s i m p l i f i c a t i o n . I n a n e n t e r p r i s e i n t e g r a t i o n c o n t e x t s u c h a s E A I a n d / o r S O A , t h e m e s s a g e s t h a t a r e e x c h a n g e d b e t w e e n c o l l a b o r a t i n g p r o c e s s e s a r e t h e e s s e n t i a l f e a t u r e s . O n c e y o u r e a l i z e t h a t t h e “ m e s s a g e i s t h e f e a t u r e , ” m a n y a d d i t i o n a l s i m p l i f i c a t i o n s f o l l o w . A n d t h e m e s s a g e - f e a t u r e s t h e n p r o v i d e t h e u s e r - s t o r y u n i t - o f - w o r k t h a t t i e s y o u r a g i l e p r o j e c t t o g e t h e r .
  5. 8/27/2007 9:33 AM Agile SOA, Agile EAI 5 The message

    is the feature. The message is the feature. The message is the feature in EAI and SOA. Analysis: Enterprise Patterns. How to identify the messages quickly and simply. Messages are speech acts. Identify messages in complete sentences. Nouns identify business objects (data entities). B a s i c a l l y , S O A i s a n o l d w i n e i n a n e w b o t t l e . I a d m i t t h a t t h e r e i s s o m e W S D L s p i c e i n t h e w i n e n o w … w i t h s o m e B P E L c h e e s e o n t h e s i d e . B u t i t i s s t i l l o l d w i n e i n a n e w b o t t l e . Y o u c a n v e r i f y t h i s b y l o o k i n g a t t h e p r o m i s e s t h a t S O A m a k e s . T h e y s o u n d v e r y f a m i l i a r t o o l d t i m e r s l i k e m e . T h e y a r e t h e s a m e p r o m i s e s t h a t w e r e m a d e f o r o b j e c t - o r i e n t e d a n a l y s i s , f o r o b j e c t - o r i e n t e d d e s i g n , f o r r e - u s e , a n d f o r m e s s a g e - o r i e n t e d m i d d l e w a r e . A n d t h a t i s a n i m p o r t a n t l e s s o n ! W h a t i t m e a n s i s t h a t w e n e e d t o a p p l y O O A a n d O O D c o n c e p t s a n d p r i n c i p l e s a n d u s e s o m e k i n d o f m e s s a g e - o r i e n t e d i n f r a s t r u c t u r e i f w e a r e g o i n g t o m a k e t h o s e p r o m i s e s c o m e t r u e . T h e e p i p h a n y c o m e s w h e n y o u r e a l i z e t h a t E n t e r p r i s e I n t e g r a t i o n i s a l l a b o u t i m p r o v i n g t h e w a y t h a t b u s i n e s s p r o c e s s e s t a l k t o e a c h o t h e r . S o … h e r e i s t h e s i m p l e k e y t o a c h i e v i n g a g i l i t y : T h e m e s s a g e i s t h e f e a t u r e . T h e r e s t f o l l o w s f r o m t h a t … b y a p p l y i n g w e l l - k n o w n o b j e c t - o r i e n t e d a n a l y s i s a n d d e s i g n i d e a s . T h e f o l l o w i n g p a g e s s h o w h o w t o r e d u c e t h i s s i m p l e i d e a t o a s e t o f s i m p l e t e c h n i q u e s t h a t a l l o w y o u t o a p p l y a g i l e m e t h o d s i n E A I a n d S O A p r o j e c t s .
  6. 8/27/2007 9:33 AM Agile SOA, Agile EAI 6 The message

    is the feature … because: Enterprise Integration implements communications between business processes. The simple way to plan the integration features is to think about the messages that are exchanged between business processes. A major application is the IT proxy or interface for some business process. A2A or B2B -- It is the same thing. What if your enterprise decides to out-source a business process? E n t e r p r i s e I n t e g r a t i o n i m p l e m e n t s c o m m u n i c a t i o n s b e t w e e n b u s i n e s s p r o c e s s e s . I f y o u t h i n k a b o u t E n t e r p r i s e I n t e g r a t i o n a s j u s t a p p l i c a t i o n - t o - a p p l i c a t i o n ( A 2 A ) d a t a e x c h a n g e s , y o u w i l l m i s s t h e p o i n t . T h o s e a p p l i c a t i o n s a r e p r o x i e s f o r b u s i n e s s p r o c e s s e s . H e n c e , A 2 A a n d B 2 B a r e e s s e n t i a l l y t h e s a m e t h i n g . T h e d i f f e r e n c e i s j u s t a q u e s t i o n o f w h e t h e r t h e c o m m u n i c a t i n g p r o c e s s e s a r e u n d e r t h e s a m e e n t e r p r i s e o r i n t w o d i f f e r e n t e n t e r p r i s e s . H e n c e a s e r v i c e o r i e n t e d a r c h i t e c t u r e i n v o l v i n g t h e w e b i n t e r f a c e o f a n o u t - s o u r c e d b u s i n e s s p r o c e s s i s s i m p l y a n e x t e n s i o n o f E n t e r p r i s e I n t e g r a t i o n . S i n c e E n t e r p r i s e I n t e g r a t i o n i s a b o u t i m p r o v i n g c o m m u n i c a t i o n , o l d - f a s h i o n e d a n a l y s i s t e c h n i q u e s s t i l l w o r k v e r y w e l l . F o r e x a m p l e : A s c e n a r i o w r i t t e n a s a s e q u e n c e o f s t i m u l u s - r e s p o n s e p a i r s i s s t i l l a v e r y u s a b l e t e c h n i q u e . T h e t e c h n i q u e w o r k s w e l l a t t h e e n t e r p r i s e l e v e l w h e n i t f o c u s e s o n t h e m e s s a g e s e x c h a n g e d b e t w e e n t h e b u s i n e s s p r o c e s s e s . Y o u c a n v e r y q u i c k l y c h a r a c t e r i z e t h e i n t e r f a c e s b e t w e e n t w o o r m o r e b u s i n e s s p r o c e s s e s b y w r i t i n g a s c e n a r i o w i t h a s e r i e s o f “ h e s a y s … s h e s a y s ” s p e e c h e s – l i k e t h e s c r i p t f o r a s t a g e p l a y . T o f i n d t h e f e a t u r e s , s i m p l y i d e n t i f y a n d a n a l y z e t h e m e s s a g e s e x c h a n g e d b e t w e e n t h e b u s i n e s s p r o c e s s e s . T h e m e s s a g e i s t h e f e a t u r e . T h e f e a t u r e s a r e s o r t e d i n t o r e l e a s e s . E a c h m e s s a g e p a t t e r n h a s a d e s i g n p a t t e r n . T h e d e s i g n p a t t e r n p r o v i d e s t h e w o r k b r e a k d o w n s t r u c t u r e ( W B S ) f o r p r o j e c t m a n a g e m e n t , p e r f o r m a n c e m e t r i c s , a n d e s t i m a t i n g .
  7. 8/27/2007 9:33 AM Agile SOA, Agile EAI 7 Analysis: What

    to look for … In-coming Messages Request Work Order Request Query Work Order Status Entity State (data) Subscribed Event External Event of Interest to Me Data Subscribed Out-going Messages Response Work Order Complete Answer Progress / Exception Business Object (data) Published Event Event I Observe or Validate of Interest to Others Data Published I f y o u r e n t e r p r i s e w a n t s t o b e s e r v i c e o r i e n t e d , y o u h a v e t o r e c o g n i z e t h a t e a c h b u s i n e s s p r o c e s s i s a b u s i n e s s s e r v i c e . I t h a s c l i e n t s i n t h e f o r m o f o t h e r b u s i n e s s p r o c e s s e s t h a t d e l e g a t e w o r k t o i t . T h e d e l e g a t i o n o f w o r k m e a n s t h a t t h e r e i s a r e q u e s t - r e s p o n s e s c e n a r i o . I t a l s o m e a n s t h a t y o u c a n e x p e c t m a n y m e s s a g e s t o b e r i d i n g o n w o r k o r d e r s . I n a n a l y s i s a n d d e s i g n t e r m s , e x p e c t a t y p i c a l b u s i n e s s p a t t e r n , a t y p i c a l d e s i g n p a t t e r n , a n d a t y p i c a l w o r k b r e a k d o w n s t r u c t u r e ( W B S ) f o r i m p l e m e n t i n g t h e r e q u e s t - r e s p o n s e i n t e r f a c e s . W o r k o r d e r s a r e o f t e n t u r n - a r o u n d d o c u m e n t s . Y o u c a n e x p e c t t h e m t o g a t h e r d a t a w h i l e t h e w o r k e r s a r e g e t t i n g t h e w o r k d o n e a n d t h e n t o r e t u r n t h e d a t a t o t h e r e q u e s t e r a s a b y - p r o d u c t . T h i s c r e a t e s a h a z a r d b e c a u s e t h e d a t a - g a t h e r i n g f u n c t i o n o f a w o r k o r d e r i s o f t e n t r e a t e d a s a n a f t e r t h o u g h t , a n d t h e r e m a y b e s o m e d a t a q u a l i t y p r o b l e m s a s a r e s u l t . T y p i c a l l y , a s p e c i f i c b u s i n e s s p r o c e s s i s t h e n a t u r a l d a t a c u s t o d i a n f o r o n e o r m o r e b u s i n e s s d a t a e n t i t i e s . A s a c o n s e q u e n c e , t h e d a t a b a s e t h a t p r o v i d e s t h e e n t e r p r i s e m e m o r y f o r t h a t p r o c e s s i s t h e n a t u r a l s y s t e m o f r e c o r d f o r c e r t a i n d a t a e n t i t i e s . T h e r e f o r e , e x p e c t t o f i n d q u e s t i o n - a n s w e r s c e n a r i o s i n t h e s e r v i c e i n t e r f a c e . A l s o , e x p e c t t h e c u s t o d i a n b u s i n e s s p r o c e s s t o p u b l i s h e v e n t s r e l a t i n g t o t h e s y s t e m o f r e c o r d .
  8. 8/27/2007 9:33 AM Agile SOA, Agile EAI 8 Messages are

    speech acts. Express each message as a complete sentence. Request: Please install a new service S at location L. Response: Service S ervice S installed at location L location L. Question: What is the status of work order W? Notice: Inventory asset A moved from location L1 to location L2. I w o r k f o r a g a s a n d e l e c t r i c u t i l i t y , D T E E n e r g y . T h e e x a m p l e s a r e f r o m m y o w n e x p e r i e n c e . T o u n d e r s t a n d t h e e x a m p l e s , y o u c a n t h i n k o f a u t i l i t y a s a n e n t e r p r i s e t h a t d e l i v e r s a s e r v i c e a t a l o c a t i o n . T h e p o i n t - o f - s a l e d a t a c o m e s f r o m m e t e r s t h a t m e a s u r e h o w m u c h s e r v i c e w a s d e l i v e r e d . T h e p o i n t o f t h i s s l i d e i s t h a t m e s s a g e s a r e s p e e c h a c t s . Y o u c a n l o o k a t e x i s t i n g b u s i n e s s i n t e r f a c e s a n d a l m o s t a l w a y s c l a s s i f y t h e i n f o r m a t i o n t r a n s m i t t a l i n t o o n e o f t h e s e f o u r c a t e g o r i e s . I f i n d t h e s t y l e u s e d h e r e c o n v e n i e n t a n d s i m p l e . E a c h m e s s a g e i s i d e n t i f i e d w i t h a c o m p l e t e s e n t e n c e . T h e k e y n o u n s a r e a s s o c i a t e d w i t h p a r a m e t e r s i n d i c a t e d b y c a p i t a l l e t t e r s i n s e r t e d a f t e r t h e n o u n . Y o u m a y h a v e t o b r e a k p e o p l e o f t h e b a d h a b i t o f s t a t i n g a b u s i n e s s f e a t u r e a s “ M o v e f i l e F f r o m a p p l i c a t i o n A 1 t o a p p l i c a t i o n A 2 . ” T h a t i s n o t a b u s i n e s s r e q u i r e m e n t ; i t i s d e s i g n a d v i c e . F u r t h e r m o r e , i t i s b a d d e s i g n a d v i c e i f y o u w a n t a r e a l - t i m e e n t e r p r i s e . Y o u h a v e t o i n s i s t t h a t t h e m e s s a g e b e a t a l e v e l t h a t c l e a r l y d e s c r i b e s t h e b u s i n e s s i n t e n t a n d t h e r e a l - w o r l d o b j e c t s , n o t d a t a o b j e c t s .
  9. 8/27/2007 9:33 AM Agile SOA, Agile EAI 9 Noun =

    Business Object Write each message as a complete sentence. Use nouns in a consistent way. Avoid application-specific jargon. Request: Please install a new service S service S at location L location L. Response: Service S Service S installed at location L location L. Question: What is the status of work order W work order W? Notice: Inventory asset A asset A moved from location L1 location L1 to location L2 location L2. W r i t e e a c h m e s s a g e a s a c o m p l e t e E n g l i s h l a n g u a g e s e n t e n c e . You might be surprised at how hard it is to get professional people to do this! J a r g o n i s n o t E n g l i s h . S o m e I T p e o p l e h a v e g o n e j a r g o n c r a z y . S o m e b u s i n e s s p e o p l e h a v e g o n e j a r g o n c r a z y , t o o . I f y o u w a n t t o r e d u c e c o s t , w a s t e , a n d d e l a y s , y o u n e e d t o g e t d o w n t o b a s i c s . A l l t o o f r e q u e n t l y t h e j a r g o n o b s c u r e s t h e b a s i c c o n c e p t . B y e l i m i n a t i n g t h e j a r g o n , y o u o f t e n f i n d t h e k e y c o n c e p t e x p o s e d . T a b l e , f i l e , a n d a p p l i c a t i o n r e f e r e n c e s a r e n o t E n g l i s h . I f a p e r s o n o u t s i d e o f y o u r c o m p a n y w o u l d n o t k n o w w h a t y o u a r e t a l k i n g a b o u t , i t i s n o t E n g l i s h y e t . I t i s s t i l l j a r g o n . 1 . W r i t e e a c h m e s s a g e a s a c o m p l e t e s e n t e n c e . 2 . A n a l y z e t h e n o u n s . M o s t o f t h e m w i l l r e f e r t o r e a l - w o r l d e n t i t i e s . T h e s e a r e c a n d i d a t e b u s i n e s s o b j e c t s . Y o u p r o b a b l y a l r e a d y h a v e d a t a s t o r e s , d a t a s c h e m a s , a n d c l a s s e s r e p r e s e n t i n g t h e s e b u s i n e s s o b j e c t s . 3 . T r a n s l a t e t h e s e n t e n c e i n t o t h e n o t a t i o n a b o v e t o m a k e t h e p a r a m e t e r s o b v i o u s .
  10. 8/27/2007 9:33 AM Agile SOA, Agile EAI 10 Scenarios ==>

    Message Exchanges Request-Response (work order … publish-subscribe) Client: Please replace meter M at location L with a meter of type T. Service: Meter M1 with reading R1 replaced with meter M2 reading R2. Question-Answer (query … remote procedure call) Client: Order status S = What is the status of work order W? Service: Work order W has status S. Event Notice (event … publish-subscribe) Publisher: Work order W will be delayed due to problem P. Subscriber: (updates local work management) A g i l e p r a c t i c e s o f t e n r e v o l v e a r o u n d u s e c a s e s . T o m a k e y o u r E A I / S O A p r o j e c t a g i l e , t r e a t e a c h m e s s a g e - e x c h a n g e a s a f e a t u r e o r u s e r s t o r y . T h i s i s a u n i t o f w o r k t h a t i s e a s i l y u n d e r s t o o d b y b u s i n e s s p e o p l e a n d t e c h n i c a l p e o p l e . I r e c o m m e n d t h a t y o u u s e t h e c o m p l e t e s e n t e n c e t h a t e x p r e s s e s t h e s e n d e r ’ s m e s s a g e a s t h e n a m e o r t i t l e f o r t h e u s e r s t o r y o r f e a t u r e . T h i s w i l l a s s u r e c l a r i t y i n y o u r r e l e a s e p l a n s a n d o t h e r c o m m u n i c a t i o n s . M o s t b u s i n e s s i n t e g r a t i o n s c e n a r i o s c a n b e c l a s s i f i e d i n t o t h r e e p a t t e r n s , a s s h o w n a b o v e . T h e p a t t e r n a s s o c i a t e d w i t h t h e d e l e g a t i o n o f w o r k i s “ R e q u e s t - R e s p o n s e . ” T h e p a t t e r n a s s o c i a t e d w i t h a q u e s t i o n t o a d a t a c u s t o d i a n i s “ Q u e s t i o n - A n s w e r . ” T h e p a t t e r n a s s o c i a t e d w i t h d a t a s y n c h r o n i z a t i o n i s “ E v e n t N o t i c e . ” E a c h o f t h e s e m e s s a g e e x c h a n g e p a t t e r n s w i l l h a v e a c o r r e s p o n d i n g d e s i g n p a t t e r n , t e s t p l a n , a n d w o r k p l a n f o r p l a n n i n g a n d e s t i m a t i n g . T h e r e s u l t i n g d e s i g n p a t t e r n , t e s t p l a n , a n d w o r k - p l a n d e p e n d o n y o u r o r g a n i z a t i o n ’ s p a r t i c u l a r i n t e g r a t i o n i n f r a s t r u c t u r e , i m p l e m e n t a t i o n f r a m e w o r k s , d e v e l o p m e n t t o o l s , t e s t i n g t o o l s , a n d a g i l e m e t h o d s .
  11. 8/27/2007 9:33 AM Agile SOA, Agile EAI 11 Example: Metering

    Service In-coming Messages Request: (We accept the request.) Please install a meter of type T for service S at location L. Query: (We answer the question.) Metric M = How much energy has been used at meter M? Notice: (We subscribe to notice.) Meter M needs a new battery before date D. Out-going Messages Request: (We delegate work to …) Please install a meter of type T for service S at location L. Query: (We ask the delegate.) Status S = What is status of work order W? Subscribe: (When the work is done, the delegate responds with work order results.) Work order W completed normally with results R Publish: (We publish the event.) Meter M is monitoring service S at location L. H e r e i s a n e x a m p l e t o s h o w y o u h o w t h e a n a l y s i s c o n c e p t s m i g h t b e a p p l i e d . W e h a v e a b u s i n e s s p r o c e s s i n o u r u t i l i t y t h a t i s r e s p o n s i b l e f o r m e t e r i n g e n e r g y u s a g e . T o p u t t h i s i n t o a s e r v i c e o r i e n t e d v i e w , w e c h a n g e t h e n a m e o f t h e b u s i n e s s p r o c e s s t o r e f l e c t t h e f a c t t h a t i t i s a s e r v i c e . T h i s i s a b i g s t e p f o r s o m e p e o p l e . T h e y t e n d t o t h i n k o f b u s i n e s s p r o c e s s e s a s b o x e s o n o r g a n i z a t i o n c h a r t s . O r , t h e y t h i n k o n l y i n t e r m s o f d a t a b a s e s a n d d a t a t r a n s a c t i o n s . B e i n g s e r v i c e o r i e n t e d m i g h t r e q u i r e r e - o r i e n t a t i o n . I n t h e e x a m p l e , t h e M e t e r i n g S e r v i c e r e c e i v e s a r e q u e s t f r o m o n e o f i t s c l i e n t s ( t h e r e a r e s e v e r a l ) t o “ P l e a s e i n s t a l l a m e t e r … . ” I n a t y p i c a l u t i l i t y , t h e w o r k i s d e l e g a t e d t o a f i e l d w o r k o r g a n i z a t i o n . S o M e t e r i n g S e r v i c e s s t a r t s a w o r k f l o w t o p r o c e s s t h e r e q u e s t a n d d e l e g a t e s s o m e o f t h e w o r k b y s e n d i n g a w o r k o r d e r t o a n o t h e r o r g a n i z a t i o n . S i n c e t h e M e t e r i n g S e r v i c e i s t h e c u s t o d i a n o f t h e w o r k - i n - p r o g r e s s t h a t i t m a n a g e s , t h e w o r k f l o w c o m p o n e n t n e e d s t o p r o v i d e b a s i c c a p a b i l i t i e s t o a n s w e r q u e s t i o n s a b o u t t h e w o r k - i n - p r o g r e s s . T h e M e t e r i n g S e r v i c e i s a l s o t h e d a t a c u s t o d i a n o f t h e “ M e t e r ” b u s i n e s s o b j e c t . S o i t i s r e s p o n s i b l e f o r p u b l i s h i n g c h a n g e s t o t h e i n s t a l l e d i n v e n t o r y o f m e t e r s . T h i s i s h o w r e p l i c a t e d d a t a a r e s y n c h r o n i z e d .
  12. 8/27/2007 9:33 AM Agile SOA, Agile EAI 12 Business Collaboration

    Scenario E a c h s u b s c r i b e r u p d a t e s i t s w o r l d - m o d e l ( s t o r e d i n a d a t a b a s e ) t o r e f l e c t t h e b u s i n e s s e v e n t . T h e r e m a y b e a d d i t i o n a l s i d e - e f f e c t s . ( s e l f ) S u b s c r i b e r M e t e r M 1 r e a d i n g R 1 r e p l a c e d w i t h m e t e r M 2 r e a d i n g R 2 . ( T h i s e v e n t n o t i c e i s p u b l i s h e d f o r a l l i n t e r e s t e d s u b s c r i b e r s . ) S u b s c r i b e r s M e t e r i n g S e r v i c e M e t e r M 1 r e a d i n g R 1 r e p l a c e d w i t h m e t e r M 2 r e a d i n g R 2 . ( T h i s i s w o r k o r d e r W O - A c o m p l e t i o n r e p o r t s e n t t o C l i e n t . ) C l i e n t M e t e r i n g S e r v i c e M e t e r M 1 r e a d i n g R 1 r e p l a c e d w i t h m e t e r M 2 r e a d i n g R 2 . ( W o r k o r d e r W O - B c o m p l e t i o n r e p o r t r e c e i v e d f r o m F i e l d S e r v i c e . ) M e t e r i n g S e r v i c e F i e l d S e r v i c e P l e a s e r e p l a c e m e t e r M a t l o c a t i o n L w i t h a m e t e r o f t y p e T . ( T h i s i s w o r k o r d e r W O - B d e l e g a t i n g w o r k t o F i e l d S e r v i c e . ) F i e l d S e r v i c e M e t e r i n g S e r v i c e P l e a s e r e p l a c e m e t e r M a t l o c a t i o n L w i t h a m e t e r o f t y p e T . ( T h i s i s w o r k o r d e r W O - A r e c e i v e d f r o m t h e C l i e n t . ) M e t e r i n g S e r v i c e C l i e n t T h i s i s a s c e n a r i o o r u s e c a s e f o u n d i n a n E n t e r p r i s e I n t e g r a t i o n p r o j e c t . I t s h o w s t h e m e s s a g e s e x c h a n g e d b e t w e e n c o l l a b o r a t i n g b u s i n e s s p r o c e s s e s . T h e b u s i n e s s d o m a i n o b j e c t s ( d a t a e n t i t i e s ) r e f e r e n c e d b y e a c h m e s s a g e a r e i n d i c a t e d i n t h e n o t a t i o n . T h i s n o t a t i o n t e n d s t o c l a r i f y t h i n k i n g a b o u t w h a t a m e s s a g e m e a n s a n d w h a t i n f o r m a t i o n i t m u s t c a r r y . T h i s s c e n a r i o i s w h a t w e c a l l t h e “ h a p p y p a t h ” - - t h e n o r m a l , s i m p l e , a n d s u c c e s s f u l s c e n a r i o . E a c h p r o c e s s m a y h a v e s e v e r a l w a y s o f f a i l i n g ( g e n e r a t i n g a b u s i n e s s - p r o c e s s e x c e p t i o n ) . T h e b u s i n e s s a n a l y s t i s r e s p o n s i b l e f o r i d e n t i f y i n g v a r i a t i o n s i n t h e m e s s a g e t h a t k i c k s o f f t h e s c e n a r i o . T h e b u s i n e s s a n a l y s t i s a l s o r e s p o n s i b l e f o r i d e n t i f y i n g t h e b u s i n e s s - p r o c e s s f a i l u r e m o d e s – p r o c e s s e x c e p t i o n s . ( N o t e : T h i s i s n o t a b o u t I T s y s t e m f a i l u r e s . T h o s e a r e i n v i s i b l e t o t h e b u s i n e s s p r o c e s s . ) T h e t e s t e r i s r e s p o n s i b l e f o r c r e a t i n g a t e s t c a s e f o r e a c h v a r i a n t a n d e a c h e x c e p t i o n . T h i s s c e n a r i o i s w r i t t e n f r o m t h e p o i n t - o f - v i e w o f t h e M e t e r i n g S e r v i c e . D e t a i l s t h a t o c c u r w i t h i n t h e F i e l d S e r v i c e b u s i n e s s p r o c e s s a r e n o t s h o w n h e r e . W e d o n ’ t n e e d t o i n c l u d e t h e m h e r e b e c a u s e t h o s e d e t a i l s a r e h i d d e n f r o m t h e M e t e r i n g S e r v i c e . T h i s i s a n e x a m p l e o f t h e O O A , O O D p r i n c i p l e o f “ h i d i n g t h e i m p l e m e n t a t i o n . ” E a c h b u s i n e s s p r o c e s s i s o n l y r e s p o n s i b l e f o r i t s o w n w o r k f l o w .
  13. 8/27/2007 9:33 AM Agile SOA, Agile EAI 13 Release planning

    Release planning is a multi is a multi- -player game. player game. Planning and Budgeting Business Process -- owner / governor Application Portfolio -- owner / governor Component Library -- architect / planner Design and Construction Enterprise Architect -- architect / planner / coordinator Project Manager -- planner / coordinator Software Developer -- builder / tester / operator / maintainer T h e “ P l a n n i n g G a m e , ” a s i t i s c a l l e d i n E x t r e m e P r o g r a m m i n g p r a c t i c e , c a n b e r o u g h l y t w i c e a s c o m p l i c a t e d w h e n y o u a r e p l a n n i n g E n t e r p r i s e I n t e g r a t i o n . T h i s i s b e c a u s e t h e r e i s a s e n d e r a n d a r e c e i v e r f o r e v e r y m e s s a g e . T h e s e n d e r p r o c e s s a n d t h e r e c e i v e r p r o c e s s e a c h h a v e a f u l l c o m p l e m e n t o f p r o j e c t r o l e s . T h u s , y o u h a v e r o u g h l y t w i c e t h e n u m b e r o f p l a y e r s a t t h e p l a n n i n g t a b l e . I strongly recommend that you start thinking about how you do EAI and SOA planning if you have not already done so. The biggest obstacles to becoming agile in Enterprise Integration are associated with the planning process. I n a n y c a s e , t h e m e s s a g e i s t h e f e a t u r e : T h e m e s s a g e i s t h e p r i m a r y u n i t o f w o r k f o r r e l e a s e p l a n n i n g a n d i t e r a t i o n p l a n n i n g .
  14. 8/27/2007 9:33 AM Agile SOA, Agile EAI 14 How do

    you plan a release? A release is a coherent set of features for a specific audience (UI feature set) for a specific process (EAI feature set) Ask which features are necessary and sufficient. Is data replication necessary and sufficient? Is passive notification of exceptions sufficient? Is workflow needed? A r e l e a s e o n l y m a k e s s e n s e i f i t c o n t a i n s a c o h e r e n t s e t o f f e a t u r e s . T h a t b e g s t h e q u e s t i o n : W h a t m a k e s a s e t o f f e a t u r e s c o h e r e n t ? I n t h e c a s e o f a r e l e a s e w i t h a s e t o f u s e r i n t e r f a c e s , c o h e r e n c e m e a n s t h a t t h e f e a t u r e s a r e s u f f i c i e n t t o s u p p o r t a s p e c i f i c u s e r t a s k o r a s p e c i f i c b u s i n e s s p r o c e s s w i t h a c o n n e c t e d s e t o f u s e r t a s k s . U n t i l t h e t a s k o r t h e p r o c e s s i s a d e q u a t e l y s u p p o r t e d , t h e r e l e a s e i s i n c o m p l e t e f r o m t h e u s e r ’ s p o i n t o f v i e w . I n t h e c a s e o f a r e l e a s e w i t h a s e t o f b u s i n e s s - p r o c e s s i n t e r f a c e s , c o h e r e n c e b e c o m e s a m o r e a b s t r a c t c o n c e p t . H o w e v e r , i t i s s t i l l p o s s i b l e t o t h i n k o f c o h e r e n c e a c r o s s a b u s i n e s s p r o c e s s o r s u b - p r o c e s s i n m o s t c a s e s . T h u s , a c o h e r e n t r e l e a s e i n c l u d e s a l l o f t h e m e s s a g e s n e e d e d t o i m p l e m e n t s o m e b u s i n e s s p r o c e s s o r s u b - p r o c e s s .
  15. 8/27/2007 9:33 AM Agile SOA, Agile EAI 15 Interface Packaging

    ==> Wrappers publish subscribe Business Process A Application 1 Application 2 Application 3 Business Process B Application 4 Application 5 Application 6 Message Delivery Service Question Question Answer Answer A t y p i c a l b u s i n e s s p r o c e s s i s f a c i l i t a t e d b y a c o r e a p p l i c a t i o n a n d s o m e a d d i t i o n a l a p p l i c a t i o n s t h a t a c t a s h e l p e r s o r c o v e r s o m e n o n - c o r e a s p e c t o f t h e b u s i n e s s p r o c e s s . T o a c h i e v e c l a r i t y i n t h i n k i n g a n d c o n s i s t e n c y i n i n t e r f a c e d e s i g n , e m p l o y a s t r a t e g y o f w r a p p e r s w i t h i n w r a p p e r s . T h e c o n t e n t o f t h e w r a p p e r s i s c l e a r l y i n d i c a t e d b y t h e m e s s a g e s e x c h a n g e d b e t w e e n t h e b u s i n e s s p r o c e s s e s . Y o u c a n d e s i g n t h e i n t e r f a c e s b y s t a r t i n g w i t h t h e b u s i n e s s - p r o c e s s i n t e r f a c e s a n d t h e n m o v i n g t o t h e w r a p p e r s o n t h e a p p l i c a t i o n s . T h e e s s e n c e o f l e a n d e s i g n a n d a g i l e p r a c t i c e i s t h a t e a c h i n t e r f a c e s i g n a t u r e , e a c h m e t h o d , i s d i r e c t l y t r a c e a b l e t o a b u s i n e s s n e e d . I n t h i s c a s e , i t i s t r a c e a b l e t o a s p e c i f i c m e s s a g e i n t h e E n t e r p r i s e I n t e g r a t i o n c a s e . I n J a v a c o d i n g , t h e i n t e r f a c e s a n d w r a p p e r s a r e d e f i n e d b y J a v a “ i n t e r f a c e ” o b j e c t s a n d d o c u m e n t e d i n t h e a s s o c i a t e d J a v a D o c ' s . T h u s , f o r e a c h b u s i n e s s p r o c e s s , e x p e c t o n e o r m o r e J a v a i n t e r f a c e d e c l a r a t i o n s . I f y o u d o n ’ t a l r e a d y h a v e t h e m , y o u n e e d t o d e f i n e b u s i n e s s d o m a i n o b j e c t s i n J a v a i n t e r f a c e s o r c l a s s e s p r i o r t o d e f i n i n g t h e b u s i n e s s - p r o c e s s i n t e r f a c e s . O n c e t h e b u s i n e s s - p r o c e s s i n t e r f a c e s a r e w r i t t e n , y o u c a n d e f i n e J a v a w r a p p e r s f o r t h e a p p l i c a t i o n s b y a l l o c a t i n g t h e b u s i n e s s - p r o c e s s i n t e r f a c e s t o t h e a p p r o p r i a t e a p p l i c a t i o n w r a p p e r . S u m m a r y : 1 . I d e n t i f y t h e i n t e r - p r o c e s s m e s s a g e s . W h a t a r e t h e b u s i n e s s p r o c e s s e s s a y i n g t o e a c h o t h e r ? 2 . W r i t e e q u i v a l e n t m e t h o d s i g n a t u r e s f o r t h e B u s i n e s s S e r v i c e w r a p p e r . 3 . A l l o c a t e t h e m e t h o d s i g n a t u r e s t o t h e L e g a c y A p p l i c a t i o n w r a p p e r s .
  16. 8/27/2007 9:33 AM Agile SOA, Agile EAI 16 Work Breakdown

    Structure Sender Detect the event / need. Assemble the business objects into the message. Send the message. What about workflow? Workflow is essential for handling business-process exceptions. Each process manages its own workflow and no other workflow. Receiver Receive the request. Translate the business objects into local form. Call the equivalent method. Workflow Responsibilities Delegate work as needed. Respond to process exceptions. Publish events. Feed back results. Collect statistics. S o m e t h i n g s a b o u t t h e w o r k b r e a k d o w n s t r u c t u r e ( W B S ) f o r t h e i m p l e m e n t a t i o n o f a m e s s a g e a r e r e a s o n a b l y o b v i o u s … a n d o t h e r t h i n g s a r e n o t q u i t e s o o b v i o u s . • M u c h e n t e r p r i s e E A I a n d S O A o c c u r s i n a n e n v i r o n m e n t d o m i n a t e d b y p r e - J a v a “ l e g a c y ” a p p l i c a t i o n s . T h e c o n s e q u e n c e : A l o t o f w o r k g o e s i n t o r e v e r s e - e n g i n e e r i n g t h e l e g a c y a p p l i c a t i o n t o d i s c o v e r h o w t o d e t e c t a n e v e n t o r h o w t o p r o p e r l y p r o c e s s a n i n - c o m i n g e v e n t o r r e q u e s t . • W h e n a n e w r e q u e s t i s r e c e i v e d b y a l e g a c y a p p l i c a t i o n , t h e r e i s a l m o s t a l w a y s a p r e - e x i s t i n g c a p a b i l i t y . T h e t r i c k i s t o f i n d a w a y t o p r o p e r l y i n v o k e t h e e x i s t i n g c a p a b i l i t y . • W h e n a n e v e n t n o t i c e i s n e e d e d , t h e t r i c k i s t o f i n d a w a y t o r e l i a b l y d e t e c t t h e e v e n t a n d t h e n g a t h e r t h e a p p r o p r i a t e d a t a t o a t l e a s t p a r t i a l l y p o p u l a t e t h e b u s i n e s s o b j e c t s r e f e r e n c e d b y t h e e v e n t . • T h e t e a m s t h a t i m p l e m e n t s e n d e r - s i d e l o g i c a n d r e c e i v e r - s i d e l o g i c c a n p r o c e e d i n d e p e n d e n t l y b e c a u s e o u r p r o c e d u r e d e f i n e s t h e m e s s a g e i n a w a y t h a t a v o i d s c o u p l i n g b e t w e e n t h e s e n d e r a n d r e c e i v e r . T h i s g r e a t l y s i m p l i f i e s d e s i g n c o o r d i n a t i o n b e t w e e n t e a m s , b u t r e l e a s e s c h e d u l e s s t i l l r e q u i r e a p p r o p r i a t e s y n c h r o n i z a t i o n . • W h e n w o r k i s d e l e g a t e d , y o u a l m o s t a l w a y s h a v e t o d e a l w i t h b u s i n e s s - p r o c e s s e x c e p t i o n s f o r a n y n o n - t r i v i a l p r o c e s s . C o n s e q u e n t l y , y o u n e e d t o i m p l e m e n t a w o r k f l o w f o r e a c h r e q u e s t - r e s p o n s e s c e n a r i o . • I n c i d e n t a l l y , w e d i s c o v e r e d a s i m p l e t r i c k – m o s t o f t h e t i m e y o u d o n ’ t n e e d B E P L , a f a n c y w o r k f l o w e n g i n e , o r e v e n a p r o c e s s d i a g r a m . W e d e f i n e t h e w o r k f l o w v i a a “ n e x t s t e p ” t a b l e : next step = fc( prior step, completion status ) L e t t h e p u b l i s h - s u b s c r i b e f r a m e w o r k ( F o r e x a m p l e , J M S ) h a n d l e t h e d i s p a t c h o f t h e n e x t s t e p .
  17. 8/27/2007 9:33 AM Agile SOA, Agile EAI 17 Concurrent Engineering

    Concurrent Engineering Who should do which components? Each application’s maintenance team has the local knowledge to … Write logic to detect events. Write logic to translate between local representation and standard representation. Write application wrappers (API). Each business-process team has the knowledge to … Define and implement local workflows. Define and implement end-to-end tests. Design business-process monitoring (dashboard displays and reports). A tooling team has the skill and focus to … Create commonly-used components and services. Create and maintain a repertoire of common business objects. The project coordinators have the skills and tools to … Identify project-to-project dependencies. Coordinate release plans. T h e e n v i r o n m e n t i n w h i c h I w o r k c o n t a i n s a l a r g e n u m b e r o f “ l e g a c y ” a p p l i c a t i o n s a n d a l a r g e n u m b e r o f p u r c h a s e d a p p l i c a t i o n s . I n b o t h c a s e s , i m p l e m e n t i n g n e w i n t e r f a c e s t e n d s t o r e q u i r e a l o t o f “ d e s i g n d i s c o v e r y ” w o r k . B a s i c a l l y , t h i s m e a n s r e v e r s e - e n g i n e e r i n g t h e a p p l i c a t i o n . W h e r e i s t h e b e s t t a l e n t f o r d o i n g t h i s k i n d o f r e v e r s e - e n g i n e e r i n g ? I f y o u c a n n o t d r a f t t h e o r i g i n a l a u t h o r , t h e n e x t b e s t t a l e n t i s t h e m a i n t e n a n c e t e a m . P r o j e c t t e a m s a r e a p o o r c h o i c e f o r t h e d e s i g n o f g e n e r a l p u r p o s e c o m p o n e n t s o r t o o l s . T h e p r e s s u r e a n d l i m i t e d v i e w o f t h e p r o j e c t t e n d t o c o n s t r a i n t h e d e s i g n e r ’ s t h i n k i n g . I t i s a b e t t e r i d e a t o s t a f f a s m a l l t e a m a n d m a k e t h e m r e s p o n s i b l e f o r d e v e l o p i n g t o o l s . C r e a t e a t o o l i n g t e a m i f y o u c a n . I f t h e p r o j e c t i s d e l e g a t i n g w r a p p e r w o r k t o t h e l e g a c y a p p l i c a t i o n ’ s m a i n t e n a n c e t e a m s , a n d t o o l i n g t o t h e t o o l i n g t e a m , w h a t i s t h e c o r e t e a m d o i n g ? I t t u r n s o u t t h e y h a v e p l e n t y o f c h a l l e n g i n g w o r k t o d o . T h e y n e e d t o d i s c o v e r t h e p r o c e s s e x c e p t i o n s a n d i m p l e m e n t a w o r k f l o w f o r e a c h m e s s a g e . I f t h e s y s t e m i s t o h a v e l o n g - t e r m d u r a b i l i t y a n d r e l i a b i l i t y , a s u i t e o f a u t o m a t e d e n d - t o - e n d t e s t c a s e s n e e d s t o b e i m p l e m e n t e d . T h a t i s a l o t o f w o r k . T h e m o s t i m p o r t a n t c o n c e p t t h a t I l e a r n e d f r o m t h e s t u d y o f c o n c u r r e n t e n g i n e e r i n g p r a c t i c e s i s t h a t y o u n e e d t o p a y p a r t i c u l a r a t t e n t i o n t o i n t e r f a c e s . T h e y n e e d t o b e c l e a r l y s p e c i f i e d a n d c h a n g e s m u s t b e t i g h t l y c o n t r o l l e d . T h e r e a r e n u m e r o u s e x a m p l e s o f w h a t c a n h a p p e n w h e n o n e f a i l s t o d o t h i s . ( F o r e x a m p l e : T h e s p a c e c r a f t m i s s e s t h e p l a n e t M a r s . ) T h i s i s o n e m o r e r e a s o n t o f o c u s a t t e n t i o n o n t h e m e s s a g e s t h a t a r e e x c h a n g e d b e t w e e n b u s i n e s s p r o c e s s e s a n d t o a s s u r e t h e y a r e c l e a r l y s t a t e d .
  18. 8/27/2007 9:33 AM Agile SOA, Agile EAI 18 SOA requires

    automated test suites. Why do you need automated test suites? If you have a service with 10-20 clients, and you are about to deploy a new release … You can ask all of the clients to re You can ask all of the clients to re You can ask all of the clients to re You can ask all of the clients to re- - - -test. test. test. test. -OR- You can exhaustively test the service You can exhaustively test the service You can exhaustively test the service You can exhaustively test the service to assure backward compatibility. to assure backward compatibility. to assure backward compatibility. to assure backward compatibility. For a service of any complexity, automated tests are the only robust solution. By definition, integration tests cross system boundaries. Business process tests tend to require set-up, tear-down, etc. Some services have 100’s of clients W h e n t h e t e l e p h o n e s y s t e m a d d s a n o t h e r f e a t u r e t o t h e i r s e r v i c e s , d o t h e y a s k m i l l i o n s o f c u s t o m e r s t o r e - t e s t t h e s e r v i c e ? N o w a y ! S i m i l a r l y , a f e w m o m e n t s o f t h o u g h t l e a d s t o t h e c o n c l u s i o n t h a t y o u c a n n o t e x p e c t t h e c o n s t i t u e n t s o f a c o m p o n e n t o r s e r v i c e t o r e - t e s t t h e i r a p p l i c a t i o n w h e n o n e o f t h e c l i e n t s c a u s e s a n e w f e a t u r e t o b e a d d e d . T o b e s a f e a n d r e l i a b l e , y o u m u s t m a i n t a i n a u t o m a t e d t e s t s u i t e s , a n d t h e y m u s t b e c o m p r e h e n s i v e . W i t h a n y t h i n g l e s s t h a n t h a t , y o u a r e p u t t i n g y o u r e n t e r p r i s e a t r i s k . I r e c o m m e n d t h a t y o u r d e v e l o p e r s l e a r n h o w t o d e v e l o p “ m o c k s ” a n d s t u d y “ n e e d - d r i v e n d e v e l o p m e n t , ” w h i c h i s a v a r i a t i o n o n t e s t - d r i v e n d e v e l o p m e n t . I n a d d i t i o n , y o u n e e d t o t h i n k c a r e f u l l y a b o u t : • H o w w i l l y o u t e s t a n d h a n d l e b u s i n e s s - p r o c e s s e x c e p t i o n s ? - D o y o u r t e s t s g e n e r a t e a l l o f t h e p r o c e s s e x c e p t i o n s ? - W h a t i s y o u r d e f a u l t , f a l l - t h r o u g h , t r o u b l e - s h o o t i n g s t r a t e g y ? • W h e n a r e h e u r i s t i c s i n v o l v e d i n d a t a t r a n s l a t i o n s ? - B y d e f i n i t i o n , a h e u r i s t i c i s s i t u a t i o n a l - a n d m a y n o t b e s t a b l e . - Y o u n e e d a c l e a r s t r a t e g y f o r p a c k a g i n g a n d t e s t i n g d a t a t r a n s l a t i o n c o m p o n e n t s .
  19. 8/27/2007 9:33 AM Agile SOA, Agile EAI 19 Configuration Control

    Challenges Where is each component used? To whom do we send release notices? Where is this service used? When the service is down, who is affected? Which version is used where? When a method is deprecated, who is at risk? I f y o u d o n ’ t a l r e a d y o p e r a t e s o m e k i n d o f c o n f i g u r a t i o n c o n t r o l s y s t e m ( n o t j u s t a s o u r c e r e p o s i t o r y ) , i t i s j u s t a m a t t e r o f t i m e b e f o r e y o u n e e d o n e . S o m e w o r k - a - r o u n d s … s h o r t - t e r m f i x e s : • A s i m p l e s t r a t e g y i s t o r e q u i r e e a c h “ s e r v i c e o w n e r ” t o m a i n t a i n a l i s t o f c l i e n t s . • O t h e r s t r a t e g i e s i n c l u d e t r a c k i n g c h e c k - o u t s , r e g i s t e r i n g u s e r s , a n d e x a m i n i n g J a v a j a r f i l e s ( a s s e m b l i e s i n C # ) . • I f y o u h a v e a c e n t r a l i z e d s o u r c e r e p o s i t o r y , y o u c a n d o a l o t w i t h i t . B u t y o u s t i l l n e e d t o k n o w w h o m t o c o n t a c t w h e n y o u n e e d t o s e n d a n o t i c e . T h e r e a r e p r o d u c t s y o u c a n b u y t h a t p r o v i d e f o r t h i s . B u t b e w a r e t h e t e c h n o l o g y f i x . T h e i m p o r t a n t q u e s t i o n i s h o w t h e c o n f i g u r a t i o n d a t a f i t s i n t o y o u r I T b u s i n e s s p r o c e s s e s . U n l e s s y o u b u i l d i t i n t o y o u r p r o c e s s , i t w i l l n o t b e u s e d , n o t b e c o m p l e t e , a n d n o t b e a c c u r a t e .
  20. 8/27/2007 9:33 AM Agile SOA, Agile EAI 20 Summary Summary

    Business processes communicate via messages. That means the message is the feature (the user story) for agile EAI and agile SOA. Secret Sauce: Identify each message with a complete sentence. Secret Organization: Concurrent engineering reduces time to solution. T h e s e c r e t o f b e i n g a g i l e i n E n t e r p r i s e I n t e g r a t i o n i s u n d e r s t a n d i n g t h a t i n t e g r a t i o n i s r e a l l y a b o u t i m p r o v i n g c o m m u n i c a t i o n b e t w e e n b u s i n e s s p r o c e s s e s . H o w e v e r , a g r e a t d e a l o f c o n f u s i o n , s t r o n g c o u p l i n g , a n d n o n - e s s e n t i a l w o r k w i l l r e s u l t i f t h e c o m m u n i c a t i o n i s t r e a t e d a t t h e l e v e l o f f i l e s , r e c o r d s , a n d / o r f i e l d s ( t a b l e s , r o w s , a n d / o r c o l u m n s ) . T h e t r i c k t o a c h i e v i n g a g i l i t y i n E A I a n d S O A i s t o a p p l y o b j e c t - o r i e n t e d a n a l y s i s a n d o b j e c t - o r i e n t e d d e s i g n c o n c e p t s a t t h e l e v e l o f b u s i n e s s p r o c e s s e s a n d s e r v i c e s . T h e s e c r e t s a u c e i s t o f o c u s o n t h e m e s s a g e s e x c h a n g e d b e t w e e n t h e b u s i n e s s p r o c e s s e s . T h e m e s s a g e i s t h e f e a t u r e , t h e u s e r s t o r y , t h e s c e n a r i o f o r r e l e a s e p l a n n i n g . I t s e r v e s a s i m i l a r f u n c t i o n f o r t e s t p l a n n i n g . A m i s t a k e I s e e f r e q u e n t l y i s t o c o n f u s e t h e i n t e r f a c e w i t h t h e p i p e . F o c u s o n t h e m e s s a g e a n d i m p l e m e n t i t s o t h a t t h e t r a n s p o r t l a y e r d o e s n o t m a t t e r . D o n o t c o d e t o t h e p i p e ; c o d e t o t h e m e s s a g e s o t h a t t h e c h o i c e o f p i p e d o e s n o t m a t t e r . T h e s a m e m e s s a g e c a n b e d e l i v e r e d i n m u l t i p l e w a y s – J M S , R E S T , e v e n f i l e - t r a n s f e r c a n b e u s e d f o r a s y n c h r o n o u s r e q u e s t - r e s p o n s e a n d e v e n t n o t i c e s c e n a r i o s . S i m i l a r l y , R M I , W S D L , R E S T , a n d J D B C a n b e u s e d f o r q u e s t i o n - a n s w e r s c e n a r i o s . I n a n y c a s e , t h e m e s s a g e i s t h e s a m e r e g a r d l e s s o f t h e c h o i c e o f t r a n s p o r t . T h e o t h e r s e c r e t t o a g i l i t y i s d e l e g a t i o n . T h e p r o j e c t t e a m c a n a n d s h o u l d d e l e g a t e w o r k t o s p e c i a l i s t s – l e g a c y a p p l i c a t i o n m a i n t e n a n c e t e a m s f o r n e w s e n d e r s a n d r e c e i v e r s , a n d a t o o l i n g t e a m f o r n e w i n f r a s t r u c t u r e t o o l i n g . T h i s d e l e g a t i o n o f r e s p o n s i b i l i t y t o o t h e r d e s i g n e r s a n d d e v e l o p e r s r e q u i r e s m a n a g e m e n t s t r a t e g i e s b o r r o w e d f r o m c o n c u r r e n t e n g i n e e r i n g – b e c a u s e i t i s c o n c u r r e n t e n g i n e e r i n g . T h e e s s e n c e o f a g i l i t y i s r e d u c e d t i m e t o s o l u t i o n . S i m p l i f i c a t i o n r e d u c e s t i m e – f o c u s o n t h e m e s s a g e . C o n c u r r e n t e n g i n e e r i n g s t a r t s w i t h t h e i n t e r f a c e s . O n c e a g a i n , t h e s e c r e t i s t o f o c u s a t t e n t i o n o n t h e m e s s a g e s e x c h a n g e d b e t w e e n b u s i n e s s p r o c e s s e s .
  21. 8/27/2007 9:33 AM Agile SOA, Agile EAI 21 To achieve

    To achieve EAI / SOA agility: EAI / SOA agility: Focus on the Focus on the business business- -process process message exchanges. message exchanges. A u t h o r : R i c h a r d A . G r e e n - G r e e n R A @ D T E e n e r g y . c o m - 3 1 3 - 2 3 5 - 8 6 7 2 T i t l e : P r i n c i p a l A n a l y s t - R o l e : E n t e r p r i s e A r c h i t e c t E n t e r p r i s e A r c h i t e c t u r e – I n f o r m a t i o n T e c h n o l o g y S e r v i c e s – D T E E n e r g y D T E E n e r g y 2 0 0 0 S e c o n d A v e n u e M D 1 0 3 2 G O D e t r o i t , M i c h i g a n 4 8 2 2 6