2012-09-12 11 views
5

में प्रक्रिया/कार्य प्रवाह मुझे एक विशिष्ट प्रोजेक्ट मिला है जिसे मुझे करने की आवश्यकता है और मैं अपना पहला कदम लेने से पहले स्वामी से कुछ मार्गदर्शन चाहूंगा।जावा

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

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

अब, उपर्युक्त ध्वनि निश्चित रूप से कुछ ऐसा किया गया है जो पहले किया गया है ... और मैं पहिया को फिर से शुरू नहीं करना चाहता हूं। समस्या यह है कि उपरोक्त को वास्तविक समय के लेन-देन की उच्च मात्रा को संभालने में सक्षम होना चाहिए, इसलिए मुझे यकीन नहीं है कि बीपीईएल जैसी कुछ सही विकल्प होगी या नहीं।

मैं जाने से पहले और व्हील राउंडर बनाने से पहले कोई सिफारिशें?

+2

ऐसा लगता है कि आप कुछ ईटीएल उपकरण ढूंढ रहे हैं; प्रतिभा या अपतार की खोज करें। – SiB

उत्तर

1

मैं आपके आवेदन के लिए एक बहुत ही सरल XML बोली लिखूंगा। तत्व-प्रकार को न्यूनतम रखें, और रन-टाइम पर सही कक्षा-उदाहरण बनाने के लिए class="my.class.name' विशेषताओं का उपयोग करें। यह 3 कार्यान्वयन के साथ एक तत्व कहना आसान बनाता है (उदाहरण के लिए <source class="my.package.XmlRpc">, <source class="my.package.LocalFile"> और <source class="my.package.WebService">)। एक बार तत्काल, प्रत्येक तत्व-प्रकार को तुरंत अपने आप को कॉन्फ़िगर करने के लिए आवश्यक अतिरिक्त डेटा खोजने के लिए अपनी XML सामग्री को पढ़ना चाहिए।

कई उपयोग में आसान एक्सएमएल पार्सिंग लाइब्रेरीज़ (मैं जेडॉम की सिफारिश करता हूं), और एक्सएमएल देखने और संपादन के लिए बहुत सारे टूल समर्थन हैं। एक्सएमएल दस्तावेज, काम करने और जीयूआई में लपेटना आसान है।

तो: प्रत्येक घटक को तत्व-प्रकार मिलता है, और उनके विशिष्ट कार्यान्वयन-निर्भर कॉन्फ़िगरेशन तत्वों के अंदर दफन किए जाते हैं। यदि आपके पास साधारण वायरिंग है (विशिष्ट घटक उदाहरण केवल एक ही स्थान पर उपयोग किए जाते हैं), तो आप शामिल होने से दूर हो सकते हैं। यदि आपके पास जटिल वायरिंग है (आपको कई जगहों पर घटक उदाहरणों का पुन: उपयोग करने की आवश्यकता है; उदाहरण के लिए, आप फिल्टर का पुन: उपयोग करना चाहते हैं या इंटरमीडिएट परिणामों की गणना करना चाहते हैं), सबसे पहले आप घटक उदाहरण परिभाषित करते हैं, और फिर आप इन संदर्भों से तारों का निर्माण करते हैं उदाहरणों।

मैं अनिवार्य रूप से Ant बिल्ड-फाइलों की तरह वकालत कर रहा हूं, और चीजों को यथासंभव सरल रखने के लिए।

+0

यही वह है जो मैं सोच रहा था ... और कक्षाओं के बीच इनपुट/आउटपुट प्रवाह के लिए एनोटेशन जोड़ना। हालांकि, मैं उम्मीद कर रहा था कि पहले से कुछ कोशिश की और परीक्षण किया गया है। (लेकिन सिर्फ इसलिए कि मैं वास्तव में वास्तव में DIY को पसंद करना चाहता हूं और आपने इसकी पुष्टि की है :)) –

+1

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

+0

मैं दोनों के साथ काफी परिचित हूं ... अपने बुरे अंधेरे पक्ष को जानने के लिए पर्याप्त परिचित हूं। मैं शायद आत्म-निरीक्षण के बजाय मेरे लिए वस्तु निर्माण करने के लिए गुइस की तरह कुछ देखता हूं। –