2008-09-16 24 views
7

मेरे पास एक मौजूदा जे 2 ईई एंटरप्राइज़ एप्लिकेशन है जिसमें मुझे ऑडिटिंग जोड़ने की आवश्यकता है, यानी कई महत्वपूर्ण डोमेन प्रकारों (कर्मचारी, प्रशासक राइट्स इत्यादि) पर सीआरयूडी संचालन रिकॉर्ड करने में सक्षम होना चाहिए।किसी मौजूदा ऐप में ऑडिटिंग जोड़ने के लिए अच्छा पैटर्न या ढांचा?

  • वेब इंटरफेस
  • व्यापार राज्यविहीन सत्र सेम और व्यवहार POJOs (वसंत का उपयोग) का एक मिश्रण के भीतर समझाया संचालन
  • दृढ़ता का एक मिश्रण है:

    आवेदन एक मानक एन-स्तरीय संरचना है प्रत्यक्ष जेडीबीसी (व्यापार परत के भीतर से) और ईजेबी 2.x बीएमपी इकाई बीन्स (मुझे पता है, मुझे पता है)

मेरा प्रश्न है: क्या कोई मानक पैटर्न है या (बेहतर अभी भी) ढांचे/पुस्तकालयों विशेष रूप से एक क्रॉस-काटने की चिंता के रूप में लेखा परीक्षा जोड़ने के लिए? मुझे पता है कि सामान्य रूप से क्रॉस-कटिंग चिंताओं को लागू करने के लिए एओपी का उपयोग किया जा सकता है; मैं जानना चाहता हूं कि विशेष रूप से ऑडिटिंग के उद्देश्य से कुछ है या नहीं।

+0

क्या कम-से-कम मतदाता कम से कम एक टिप्पणी छोड़ सकते हैं क्यों? –

उत्तर

2

अभी मैं वेब परत के संपर्क में आने वाले व्यावसायिक संचालन की सलाह देने के लिए स्प्रिंग एओपी ("एस्पेक्टजे" शैली का उपयोग करके) का उपयोग करने की ओर झुका रहा हूं।

+0

मैं यहां भी शुरू करूंगा, खासकर यदि मेरा ऐप स्प्रिंग pojos का उपयोग कर रहा था- इसे एक अलग एओपी लाइब्रेरी की कोशिश करने से अपेक्षाकृत आसान बनाना चाहिए। –

0

Aspect Oriented प्रोग्रामिंग ढांचे का प्रयास करें।

विकिपीडिया से "पहलू उन्मुख प्रोग्रामिंग (एओपी) एक प्रोग्रामिंग प्रतिमान है जो क्रॉस-कटिंग चिंताओं को अलग करने की अनुमति देकर मॉड्यूलरिटी बढ़ाता है"।

0

सभी EJBs के लिए आप EJB 3.0 Interceptors उपयोग कर सकते हैं और वसंत (वसंत से परिचित नहीं) के लिए एक और इसी तरह इंटरसेप्टर आप EJBs के साथ ही वसंत के रूप में प्रयोग कर रहे हैं कि पूरे कवर नहीं कर सकते हैं (इस फिल्टर सर्वलेट को कुछ इसी तरह है) लेन-देन। एक और दृष्टिकोण फ्रंट कंट्रोलर का उपयोग कर सकता है हालांकि क्लाइंट पक्ष में कुछ संशोधन की आवश्यकता है। फिर भी एक और दृष्टिकोण एक सर्वलेट फ़िल्टर का उपयोग कर सकता है, हालांकि इसका अर्थ प्रस्तुति परत में डोमेन तर्क को कार्यान्वित करना है।

मैं इस मामले में फ्रंट कंट्रोलर की सिफारिश करता हूं।

2

मैं यहां अनाज के खिलाफ थोड़ा सा जा रहा हूं और सुझाव देता हूं कि आप निम्न-स्तरीय समाधान देखें। हमारे पास हमारे आवेदन में एक समान वास्तुकला है, और हमारे ऑडिटिंग के लिए हम डेटाबेस-स्तरीय ऑडिट ट्रिगर्स के साथ गए हैं जो आरडीबीएमएस के भीतर संचालन ट्रैक करते हैं। इसे ठीक-ठीक या मोटे अनाज के रूप में किया जा सकता है, आपको बस उन इकाइयों की पहचान करनी होगी जिन्हें आप ट्रैक करना चाहते हैं।

अब, यह एक वैचारिक रूप से शुद्ध समाधान नहीं है; इसमें डेटाबेस में तर्क डालना शामिल है जो कि तर्कसंगत रूप से व्यापार स्तर में रहना चाहिए, और मैं इनकार नहीं कर सकता कि इस दृष्टिकोण का मूल्य है, लेकिन हमारे मामले में हमारे पास डेटा मॉडल के साथ कई स्वतंत्र अनुप्रयोग हैं, कुछ सी में लिखे गए हैं, कुछ लिखित, और अन्य जे 2 ईई ऐप्स, और उनमें से सभी को लगातार ऑडिट किया जाना है।

संभवतः अभी भी कुछ एओपी काम जे 2 ईई पक्ष पर किया जाना है, आपको दिमाग; किसी भी विधि जो डेटाबेस को अद्यतन करता है, उस डेटाबेस को बताने के लिए कुछ अतिरिक्त काम करना पड़ सकता है जो उपयोगकर्ता काम कर रहा है। हम ऐसा करने के लिए डेटाबेस सत्र चर का उपयोग करते हैं, लेकिन निश्चित रूप से अन्य समाधान भी हैं।

0

मैंने अभी स्प्रिंग डेटा जेपीए नामक एक नई स्प्रिंग प्रोजेक्ट के बारे में सीखा है जो AOP-based auditing feature प्रदान करता है। यह अभी तक जीए नहीं है, लेकिन यह नजर रखता है।

5

शायद आपको Audit4j पर एक नज़र रखना चाहिए जो व्यावसायिक कार्यक्षमता की लेखा परीक्षा प्रदान करता है और इसमें कॉन्फ़िगरेशन के लिए कई विकल्प हैं। एक और ढांचा JaVers है जो दृढ़ता परत पर निम्न स्तर के संशोधन की ऑडिटिंग पर अधिक ध्यान केंद्रित करता है, जो आपके मामले से थोड़ा बेहतर मिलान कर सकता है।

दोनों ढांचे ऑडिट-विशिष्ट कार्यक्षमताओं को प्रदान करते हैं जो सादे एओपी/इंटरसेप्टर्स से परे होते हैं।