software

System and its types

What is System

Software Engineering में एक System उन Component के Collection को Refer करता है, जो एक Common Goal को Achieve करने के लिए एक साथ काम करते हैं। इन Component में Hardware, Software, Data और Process Include हो सकती हैं। एक Software System को Special Function को करने और अन्य Requirements को पूरा करने के लिए Design किया गया है। इसे Subsystem या Module में Divide किया जा सकता है, जिसे Further Class या Function में Divide किया जा सकता है।

System Development Process में Requirement को Analyze करना, System Architecture को Design करना, System को Implement करना, तथा उनकी Testing करना और Maintan रखना Included है। यह Process Iterative होती है, और इसमें Development के Multiple Step Include हो सकते हैं।

Development Process के दौरान यह Ensure करने के लिए Different, Software Engineering Techniques और Methodologies का उपयोग किया जाता है| जिससे कि System को Efficient, Reliable और Scalable बनाया जा सके| Software System को Manage करने के लिए Different Device और Technology का use किया जाता है, जैसे Version Control System, Bug Tracking Software और Configuration Management Tools।

Type of System

Software Engineering में System चार प्रकार के होते है –

Open Systems

Open System एक Software System है, जिसे अन्य System के साथ Interact करने के लिए Design किया गया है। यह अन्य System के साथ Information, Resources और Services को Exchange कर सकता है, जो Interoperability को बढ़ावा देता है| और अधिक Flexible और Adaptable System को Allow करता है।

Open System में आमतौर पर Standard Interface होते हैं जो Well-Defined और Widely Accepted होते हैं, जिससे विभिन्न System के लिए एक दूसरे के साथ Communicate करना आसान हो जाता है। वे अपनी Functionality बढ़ाने के लिए Library या Module जैसे External Component को भी include कर सकते हैं।

Closed Systems

Close System एक Software System है, जिसे Self Contained होने के लिए Design किया गया है| और यह अन्य System के साथ Interact नहीं करता है। यह आमतौर पर एक Special Purpose या Function के Set के लिए use किया जाता है, और इसे Modify करने या Changes, Requirement के According नहीं किया जा सकता है।

Close System का use अक्सर उन Environment में किया जाता है, जहां Security और Stability अत्यधिक महत्वपूर्ण होती है| जैसे कि Important Critical Infrastructure या Financial System में।

Static Systems

Static System एक Software System है, जो Time के साथ Requirement के According Change नहीं होता है| इसे एक बार ही Design और Implement कर दिया जाता है। इसका मतलब यह है, कि यह Environment में Change या नई Requirement के According Change नहीं होता है, जब तक की इसे Modify या Replace नहीं किया जाता है।

Static System आमतौर पर उन Situation में use किए जाते हैं, जहां Requirement को अच्छी तरह से समझा जाता है| और Changes की Possiblity नहीं होती है| जैसे Legacy Systems या Highly Regulated Environment वाले Industries में Static System का Use किया जाता है|

Dynamic Systems

Dynamic System एक Software System है, जो Environment में Changing या New Requirement के According, Response में Time के साथ Chnage होता रहता है। Dynamic System आमतौर पर Flexible और Adaptable होने के लिए Design किए जाते हैं, जिससे उन्हें बदलती Condition और Requirement पर Response करने की Permission मिलती है।

Dynamic System अपने Environment से सीखने और Adjustment करने के लिए Feedback Mechanism को Include का Use करते है| और Available होने पर New Functionality या Module को Implement करने के लिए Design को Modify किया जा सकता है। Dynamic System का useज्यादातर E-Commerce, Social Media या Mobile Application जैसे Industries में किया जाता है, जहां Requirement और User की Needs लगातार Change होती रहती हैं।

os

Definition of Operating Systems, and its types

Operating System

Operating System, System Software की Category में आता है। यह Basic रूप से Computer के सभी Resource को Manage करता है| एक Operating System Software और Computer या Computer Hardware के Different Parts के बीच एक Interface के रूप में कार्य करता है। Operating System को इस तरह से Design किया गया है, कि यह Computer के सभी Resource और Operation का Manage कर सके।

यह Special Pragram का एक Integrated Set है, जो Computer के सभी Works को Handle करता है। यह Computer के अन्य सभी Program के Execution को Control और Monitor करता है, जिसमें Application Program और Computer के अन्य System Software भी शामिल हैं।

Need of Operating System

Operating System एक ऐसा Program है| जो System Hardware और users के बीच Interface के रूप में Work करता है| यह Important Software है, जो Computer पर Run होता है| और Instruction के Set को Control करता है| Operating System  ये सभी Work करता है-

  • Input/Output Operation
  • File System Manipulation
  • Error Detection
  • Communication
  • Program Execution
  • Resource Allocation Management
  • Disk Space/Memory/Process Accounting
  • Protection

Type of Operating System

Batch Operating System

Second Generation के Computer में use होने वाला पहला Operating System, Batch Operating System था| इस Type के Operating System में End-user और Computer के बीच कोई Direct Interaction नहीं होता है| किसी भी Input Data को Computer में Process करने के लिए User को Job Form तैयार करना होता था|

इसके बाद User उस Job को Punch Card की Help से Input कर देता था| Job को Computer में Process करने के लिए एक Operator होता है, जो सभी समान Job को Single Batch में कर देने से Operator के लिए Setup Time काफी Consume होता है|

Advantages of Batch OS

  • Multiple Users, Batch System को Share कर सकते हैं|
  • Batch System के लिए Execution Time बहुत कम होता है|
  • Batch System में बार-बार बड़े काम को Manage करना आसान होता है|

Disadvantage of Batch OS

  • Batch System को Debug करना बहुत मुश्किल है|
  • यह Expensive होता है|
  • यदि कोई Job Fail हो जाता है, तो समय का अनुमान लगाना कठिन होता है|

Multi Programming Operating System

Computer की Main Memory में एक से अधिक Process या Program को Execute करने के लिए रखा गया हो तो उसे Multi Programming कहा जाता है| यदि Multi Programming Operating System में एक Program को Input/Output Transfer के लिए Wait करना पड़ता है, तो अन्य Program CPU का use करने के लिए Ready होते हैं। परिणामस्वरूप, विभिन्न कार्य के लिए CPU, Time Share कर सकते हैं| हालांकि उनकी Jobs का Execution एक ही Time Period में Define नहीं किया गया है।

जब कोई Program Execute हो रहा होता है, तो इसे “Task”, “Process” और “Job” के रूप में जाना जाता है| Multi Programming का Primary Target पूरे System के Resource को Manage करना है। Multi Programming  System के Main Component File System, Command Processor, Transient Area और I/O Control System हैं।

Advantages of Multi Programming OS

  • यह कम Time में Response करता है।
  • यह Computer के Total Job Throughput को Optmize करने में Support करता है।
  • इसमें विभिन्न Users एक साथ Multi Programming System का Use कर सकते हैं।
  • इसमें Long Time Jobs की तुलना में Short Time Jobs जल्दी Execute की जाती है।
  • यह Short Time Task के लिए Turnaround Time को बेहतर बनाने में Support करता है।

Disadvantage of Multi Programming OS

  • यह बहुत Complicated और Sophisticated है।
  • इसमें CPU Scheduling की आवश्यकता होती है।
  • Operating System में Memory Management की आवश्यकता होती है, क्योंकि सभी प्रकार के Programs, Main Memory में Store होते हैं।
  • यदि इसमें बड़ी संख्या में Jobs हैं, तो Long-Term Jobs के लिए ज्यादा Wait करना होगा।

Multitasking Operating System

एक समय में एक से अधिक Application एक साथ Run करने वाले Operating System को Multitasking Operating System (MOS) के रूप में जाना जाता है। Multitasking Operating System, Desktop या Mobile Operating System (OS) हो सकता है। Operating System में Run होने वाले विभिन्न Application हैं- MS Word, MS Excel, Email Application, Browser, Media Player आदि|

Advantage of Multitasking OS

  • Timesharing
  • Handle Multiple Users
  • Protected Memory
  • Best use of Computer Resources

Disadvantage of Multitasking OS

  • यह Logical Parallelism, Provide नहीं करता है।
  • यह Low Response Time, Provide नहीं करता है।
  • यह CPU Utilization, Provide नहीं करता है।

Distributed System

जब Multiple Computer किसी Network के Medium से आपस मे Interconnected होकर एक दूसरे से Task Sharing करते है, तो उसे Distributed System कहा जाता है। ये Operating System, Multiple Real Time Application और Multiple user की Services के लिए कई Central Processing का use करते है। ये Processor, Different Type की Communication Lines Ex- High-Speed Buses या Telephone Lines का use करके आपस मे Communication करते है। इन Computer के बीच CPU और Memory को छोड़कर अन्य सभी Resource Share किये जाते है। इसीलिये इसे Loosely Coupled System भी कहा जाता है।

Advantages of Distributed System

  • Data Sharing
  • Failure Handling
  • Efficiency

Disadvantages of Distributed System

  • यह Less Secure होता है|
  • Single-User System के विपरीत Distributed OS से Connected Database Relatively Complex और Manage करने में Hard होते है।
  • यदि Main Network Fail हो जाता है, तो यह Commmucation को Stop कर देता है|
  • Distributed OS बहुत Expensive होते हैं।

Network Operating System

इन Operating System में एक Server होता है, जिससे Multiple Other Client Computer Connected रहते है। Network Operating System इस Central Server को अन्य सभी Client Computer के Data, Security, Application और अन्य Networking Function को Manage करने की Capacity Provide करता है| Network Operating System के द्वारा अन्य छोटे Private Network को अपने Network से Add करके अन्य Computer तक File, Printer, Security, Application और अन्य Networking Work की Sharing को Allow करते है।

Advantages of Network OS

  • Central Server के कारण Stable होते है ।
  • High Security Provide करते है ।
  • Network में नई Technolgy और Hardware के Upgradation को आसानी से Apply किया जा सकता है।

Disadvantage of Network OS

  • ये Expensive Server होते है |
  • यह Central Location पर Depend करता है |
  • Regular Updatation और Maintenance की आवश्यकता होती है|

Real Time Operating System

इन Operating System में CPU का Response Time बहुत Important है| इस Type के Operating System, Realtime में Work करते है| अर्थात Input को Process करने और Response देने में लगने वाला Required Time बहुत कम होता है| इस Time Interval को Response Time कहा जाता है| Real-Time Operating System का use तब किया जाता है, जब Time की Importance बहुत अधिक होती है|

Advantage of Real Time OS

  • Device और System का Resource Maximum use करके Fast Output देता है|
  • Shifting Work के लिए दिया गया Time बहुत कम होता है|
  • यह Currently Running Application पर Focus करता है, और Queued Application को कम Importance देता है|
  • Program का Size छोटा होता है|
  • यह Error Free होता है |
  • Memory Allocation अच्छी तरह से Manage करता है|

Disadvantage of Real Time OS

  • एक ही Time में केवल कुछ Task Run करता हैं|
  • System Resource Expensive होते हैं|
  • इसका Algorithms लिखने में Complex होता है|
  • इसके लिए Special Device Driver की Requirement होती है|

Time Sharing Operating System

Time Sharing Operating System जिसमे प्रत्येक Process को Execution के लिए एक Fixed Time दिया (Alot) जाता है। माना एक System से अनेक User Connected है, तो प्रत्येक User CPU का Use करने के लिए आपस में Time Share करेंगे| यदि एक User के लिए CPU use करने का Time Two Second है, तो System Two Second बाद दूसरे User को Available हो जाएगा| इन Operating System को हम Multitasking Operating System भी कहते है।

Advantage of Time Sharing OS

  • यह Quick Response Provide करता है|
  • CPU का Response Time कम कर देता है|
  • सभी Task को Fixed Time दिया जाता है|
  • Software के Duplication की Possibility Low होती है|
  • Response Time को Improve करता है|

Disadvantage of Time Sharing OS

  • Hardware के High Specification की आवश्यकता होती है|
  • इसमें Reliability की Problem होती है|
  • Data Communication में Problem होती है|

Multiprocessing System

Computer System सिर्फ एक Processor या CPU का use करते है। परन्तु Multiprocessing Operating System में Multiple Processor का Use किया जाता है| इन System के पास Parallel में Work करने वाले Multiple Processor होते है| जो Compute Clock, Memory, Bus और Peripheral Device इत्यादि को आपस मे Share करते है। Multi Tasking Operating System में RAM Memory में Available एक से अधिक Task को इस तरह Process किया जाता है, जिससे कि Computer के Resources का Maximum Use किया जा सके|

Advantages of Multiprocessing System

  • Increased Reliability
  • Increased Throughout
  • The Economy of Scale

Disadvantages of Multiprocessing System

  • More Memory Required
  • Deadlock
  • Low Performance
  • Expensive
java

Fundamentals of Object Oriented Programming in Java

Object Oriented Programming

Object Oriented Programming (OOP) एक Programming Paradigm है, जो Objects के Concept पर Based है| जिसमें Data और Function Include हो सकते हैं, जो उस Data पर काम करते हैं। OOP में Object, Class के उदाहरण हैं, जो किसी Special Object के Properties और Behavior को Define करते हैं।

Object Oriented Programming का उपयोग Data Structure को Object के रूप में Model करने के लिए किया जा सकता है। Example– Linkedlist Data Structure को एक Class के रूप में Implement किया जा सकता है| List में प्रत्येक Node को उस Class के Object के रूप में Represent किया जाता है। Linkedlist Class में Data Insert, Delete तथा Search के तरीकों को Define किया जा सकता है| और Linkedlist Data Structure में Manipulate करने के लिए Class की Object का use किया जा सकता है।

Fundamentals of Object-Oriented Programming

Encapsulation

Java में Encapsulation एक Fundamental Concept है, जो Object Oriented Programming में Data Security और Code Reusibility प्राप्त करने में महत्वपूर्ण भूमिका निभाता है। यह External Entities द्वारा Class के Members के Access को Control करने के लिए एक Class में Data Binding और Methods की एक Technique है।

Encapsulation एक Protective Mechanism है, जो Class के बाहर Data के Direct Access को Ristrict करता है| और यह Ensure करता है, कि Class में केवल Authorized Method से ही Data Access और Modify कर सकते हैं। इस तरह Encapsulation Data के Accidental अथवा Intentional Manipulation को रोकता है, जिससे Error और Dara Curruption हो सकता है।

Data Members को Single Object में Bind करना ही Encapsulation कहलाता है। Encapsulation Class में Defined Variables & Methods को Protect करने की Protection Mechanism होती है। Encapsulation Mechanism की Help से Data Members पर अपनी Need के According Access Restrictions Define कर सकते हैं , जिससे Data को Class के बाहर से Access न किया जा सके।

Abstraction

Abstraction Object-Oriented Programming (OOP) में एक Fundamental Concept है, जो Developers को Implementation Details, Hide करके और केवल Essential Features को Expose (Display) करके Complex System, Create करना Allow करता है। Java में, Abstract Class और Interface का Use करके Abstraction को Implement किया जाता है| Large Scale पर Software System Design करने के लिए Abstraction एक Powerful Technique है।

किसी भी Class के लिए Internal Implementation Details को Hide करना और सिर्फ Operational Process Show करना ही Abstraction कहलाता हैं। Abstraction Data Encapsulation से ही Implement किया जाता है। Abstraction End-user को केवल वही Information Show करता है, जिसकी उसको Requirement है, और Implementation Details जो Hide कर देता है।

Inheritance

Java में Inheritance एक ऐसा Mechanism है, जो एक New Class को Existing Class के Properties और Behaviors को Inherit करने की Permission देता है। Existing Class को Super Class या Parent Class के रूप में जाना जाता है, और New Class  को Subclass या Derived Class के रूप में जाना जाता है। Inheritance, Object Oriented Programming (OOP) का एक Powerful Feature है, जो Existing Class के Base पर New Class के Creation को Possible बनाता है| जिससे Code को Reuse करना और Special Class बनाना Possible हो जाता है।

Inheritance का Main Objective एक New Class बनाना है, जो किसी Existing Class के Properties और Methods को Inherit कर सकता है| और आवश्यकतानुसार उन्हें Add या Override कर सकता है। यह New Class को Common Behavior और Superclass के Attributes को Inherit करने में Capable बनाता है| इसके साथ Sub Class में Requirement के अनुसार अन्य Properties और Methods को Add किया जा सकता है|  

Polymorphism

Java में Polymorphism एक Mechanism है, जो Different Classes के Object को एक Common Class के Object के रूप में Treat करने की Permission देता है। Polymorphism, Programmers को  Generic Code लिखने में Capable बनाता है, जो Different Types और Class के Object के साथ काम कर सकता है|Polymorphism, Code को Flexible और Reusable बनाता है, क्योंकि यह Compile Time पर Object के Type को जाने बिना  Different Type के Object के साथ काम कर सकता है।

Java में Polymorphism के दो Types होते हैं – Compiletime Polymorphism और Runtime Polymorphism| Compiletime Polymorphism को Method Overloading, Mechanism के माध्यम Implement किया जाता है| जिसमे एक ही Name के Multiple Methods को एक ही Class में Define किया जाता है। तथा Runtime Polymorphism को Method Overriding Mechanism के माध्यम से Implement किया जाता है| जिसमे एक Subclass एक Method का Customized Implementation Provide करता है, जो पहले से ही Superclass में Defined है।

Class and Object

Java में Class एक Blueprint अथवा Template है, जो किसी Particular Object की Characteristics और Behaviour को Define करता है। इसमें Variables, Methods और Constructor होते हैं, जो Object के Properties और Operations को Define करते हैं। एक Class, Data और Methods का एक Collection है, जिसका Use Real-world Object अथवा Conecpt को Represent करने के लिए किया जाता है।

Java में, Object Create करने के लिए सबसे पहले एक Class को Define किया जाता है| एक बार Class Define हो जाने के बाद उस Class के Multiple Objects को Create किया जा सकता है| जब कोई Object Create किया जाता हैं, तो Java उन Objects के लिए Memory Allocate करता है, और उस Object के Variable को उनके Default Value के साथ Initialize करता है।

Object के Properties को Set करने और उस पर Operation करने के लिए Methods का उपयोग किया जाता हैं। Java में, Class और Objects का Use करने के Key Advantages में से एक यह है, कि वे आपको Reusable और Modular Components में Data और Behaviours को Encapsulate करने की Permission देते हैं।

Advantages of Object-Oriented Programming

  • Simplifies Maintenance
  • Improved Code Organization
  • Code Sharing and Reuse
  • Improved Code Flexibility
  • Code is Easier to Test
  • Easier to Maintain
  • Better Code Readability
  • Improved Code Quality
  • More Efficient Memory Usage
  • More Scalable Code

What is Procedural Programming?

Procedural Programming एक प्रकार की Structured Programming है, जो किसी Problem को Solve करने के लिए Procedure अथवा Routine के Sequence का Follow करती है। इसमें एक Program को छोटे Manageable Part में Break करना और इनमें से प्रत्येक Part को Handle के लिए Procedure अथवा Function को लिखना Include है।

Data को Organize, Manipulate, Algorithm को Implement करने के लिए Procedural Programming का use किया जाता है। Procedural Program में Procedure को Data Structure के साथ काम करने के लिए लिखा जाता है, जैसे Arrays, Linkedlists, Stacks, and Trees।

Procedure इन Data Structure पर Operation करती हैं, जैसे Data को Insert करना, Delete अथवा Search, Short करना और Data को Different Form में Change करना| Data Structure में Procedural Programming के Advantages में Modularity, Reusability, और Readability Include हैं। Procedural Approach Code को Debug और Maintenance को आसान बनाता है, क्योंकि प्रत्येक Procedure का अलग-अलग Testing और Modification किया जा सकता है।

Difference Between Procedural and Object Oriented Programming

S. No On the basis of Procedural Programming Object-oriented programming
1 Definition Procedural Programming एक प्रकार की Structured Programming है, जो किसी Problem को Solve करने के लिए Procedure अथवा Routine के Sequence का Follow करती है। Object Oriented Programming (OOP) एक Programming Paradigm है, जो Objects के Concept पर Based है|
2 Security यह OOPs की तुलना में कम Secure है। Abstraction के कारण Object-Oriented Programming में Data Hiding Possible है। इसलिए यह अधिक Secure है।
3 Approach यह Top-Down Approach को Follow करता है| यह एक Botton-up Approach को को Follow करता है।
4 Data movement Procedural Programming में Data, System में एक Function से दूसरे में Freely Move हो सकता है। OOP में Member Function के माध्यम से Object एक दूसरे के साथ Move और Communication कर सकते हैं।
5 Orientation यह Structure/Procedure Oriented Paradigm को Follow करती है। यह Object Oriented Paradigm को Follow करती है।
6 Inheritance Procedural Programming में Inheritance का Concept नहीं होता है। Object Oriented Programming में Inheritance का Feature होता है।
7 Code reusability Procedural Programming में Code Reusability Included नहीं है। यह Inheritance Feature का use करके Code Reusability Provide करता है।
8 Virtual class Procedural Programming में कोई Virtual Class नहीं होती हैं। OOP में, Inheritance में Virtual Class का Appearance होता है।
9 Data hiding Data Hiding करना Possible नहीं है। Data Hide करना Possible है।
10 Program division Procedural Programming में एक Program को छोटे-छोटे Program में Divide किया जाता है, जिन्हें Function कहा जाता है। OOP में, एक Program को छोटे-छोटे Part में Divide किया जाता है, जिन्हें Object कहा जाता है।
11 Importance यह Data से अधिक Function को Importance देता है यह Function से अधिक Data को Importance देता है।
12 Examples  C, Fortran, Pascal और Visual Basic .NET, C#, Python, Java, VB.NET, और C++
dccn

Definition of the Communication

Communication

Communication एक Communication Channel (Device, System, या Entity) के माध्यम से दूसरे Device, System, या Entity में Information, Data या Message का Transfer करना होता है। जिसमे Communication Channel एक Physical या Virtual Medium हो सकता है| जैसे Wired एवं Wireless Network। Communication Process में  Message को Transmission करने के लिए एक Suitable Format में Encode करना, Communication Channel पर Message Transmite करना और Reciever End पर Message को Decode करना Include होता है।

Communication की Accuracy और Reliability विभिन्न Facttor पर Depend करती है, जिसमें Communication Channel की Quality, Use किए गए Encoding और Decoding Algorithms और Message को सही ढंग से समझने के लिए Reciever की Capacity Include है। Technical Communication का उपयोग विभिन्न Purpose के लिए किया जा सकता है| जैसे Data Transmite करना, Devices को Synchronize करना, Control Signal को Exchange करना या Multimedia Content को Transmite करना|

Types Of Communication

  • Serial Communication: यह एक Communication Line या Channel पर Sequentially रूप से एक Time में एक Bit Data Transmite करने की एक Simple Method है।
  • Parallel Communication: इस Method में, Data के Multiple Bit एक साथ Multiple Communication Line या Channel पर Transmite किए जाते हैं।
  • Synchronous Communication: इस प्रकार के Communication में एक Continuous Stream में Data Send करना Include होता है, जिसमें प्रत्येक Bit Data एक Fix Rate पर Transmit होता है।
  • Asynchronous Communication: इस प्रकार के Communication में, Sender और Receiver के बीच Fix Time Relationship के बिना Data Transmit होता है। Sender और Receiver End पर Transmission की Accuracy Ensure करने के लिए Start और Stop Bits का use किया जाता हैं।
  • Wired Communication: इसमें एक Physical माध्यम, जैसे Cable पर Data Transmit करना Include है। Wired Communication के उदाहरणों में Ethernet, USB और Firewire Included हैं।
  • Wireless Communication: इसमें Radio Wave अथवा Infrared Signal का use करके Virtual Medium से Data Transmit करना Include है। Wireless Communication के Example में Wi-Fi, Bluetooth और Cellular Network शामिल हैं।
  • Network Communication: यह Computer Network पर Device के बीच Data के Exchange को Refer करता है। Network Communication Protocol के Example में TCP/IP, HTTP, FTP, और SMTP include हैं।
  • Interprocess Communication: इसमें एक ही Computer पर या Network से जुड़े विभिन्न Computers पर चल रही Process के बीच Data का Exchange Include है।

Communication Process

Sender

Data Communication में Sender वह Device या Unit है, जो Data के Transmission की शुरुआत करता है। यह एक Computer, Smartphone, Sensor या कोई अन्य Device हो सकता है| जो Data Generate करने और Transmite करने में सक्षम होता है। Sender, Data को एक Format में Convert करता है, जिसे Communication Channel पर Send किया जा सकता है|

और इसके बाद Sender इसे Receiver को Send करता है। Sender यह सुनिश्चित करने के लिए Responsible है, कि Data Accurate और Efficiency से Transmite होता है, जिसमें Error Checking, Flow control और Congestion Control जैसे Task Included होते हैं। Effective Communication के लिए आवश्यक है, कि Sender और Receiver को Data को Encode और Decode करने के लिए use किए जाने वाले Protocol और Standards की एक Common Understanding हो।

Message

Data Communication में, एक Message Data की Unit है, जो Sender और Receiver के बीच Transmit होता है। यह एक Text, Image, Vedio या Data का कोई अन्य रूप में हो सकता है| जिसे Communication Channel पर Transmit किया जा सकता है। Message आमतौर पर एक Digital Format में Represent किया जाता है| और Channel पर Bits के Sequence के रूप में Transmit किया जाता है। जोकि Ensure करता है, कि Message, Accurate और Efficiency के साथ Transmit हो|

यह आमतौर पर एक Standardized Protocol या Format जैसे ASCII, Unicode, या JPEG का use करके Encode किया जाता है। Message के साथ Information Control जैसे Header, Trailer और Error Correction Code होता है, जिनका Use Communication की Integrity और Reliability सुनिश्चित करने के लिए किया जाता है। Receiver इन Control Information का use Message को Decode करने और Original Data के Reconstruct करने के लिए करता है।

Encoding

Data Communication में Encoding एक Message को एक Format में Convert करने की Process है, जिसे Communication Channel पर Transmit किया जाता है। Encoding में Message को Bits के Sequence में Change करना शामिल है| जिसे Electrical, Optical, या Electromagnetic Signal द्वारा Represent किया जा सकता है, जिसे Communication Channel पर Transmit किया जा सकता है। Message के Type और Channel की Characteristics के आधार पर विभिन्न Encoding Techniques का use किया जा सकता है।

Example – एक Text Message को ASCII या Unicode का use करके Encode किया जा सकता है, जबकि एक Image को JPEG या PNG का use करके Encode किया जा सकता है। Encoding Process में Error Detection और Correction Techniques को भी Implement किया जाता है, ताकि यह सुनिश्चित किया जा सके कि Message Accurate और Reliably रूप से Transmit हो। Receiver, Transmitted Signal को Original Message में वापस Original Message में Change करने के लिए एक Decoding Process का use करता है। Effective Communication के लिए आवश्यक है, कि Sender और Receiver एक Common Encoding और Decoding Scheme का use करें| ताकि यह सुनिश्चित हो सके कि Message Accurate रूप से Transmit और Explanation किया गया है।

Receiver

Data Communication में Receiver वह Device या Unit है, जो Communication channel पर Sender से Transmit Data Receive करता है। Receiver Original Message Extract करने के लिए Data को Decode करता है| और Intended Meaning के अनुसार इसको Interpret करता है। Receiver, Error को Detect और Correct भी कर सकता है, यह Ensure करने के लिए कि Data Accurate और Reliably रूप से Receive हुआ है।

एक बार Data Receive और Process हो जाने के बाद Receiver Message के Content के Base पर उचित Action Perform कर सकता है, जैसे Screen पर Data Display, Databae में Store करना या Automate Response को Trigger करना। Effective Communication के लिए आवश्यक है, कि Sender और Receive को Data को Encode और Decode करने के लिए use किए जाने वाले Protocol और Standards की एक Common Understanding हो| और यह कि Communication Channel Error या Interference के बिना Data Transmit करने के लिए Reliable और Secure हो।

Decoding

Data Communication में Decoding, Transmit Data को उसके Original Message Format में वापस Change करने की Process है। Receiver, Receive Signal को उसके Original Data रूप में Change करने के लिए Decoding Algorithm या Method का use करता है। इस Process में Receive Signal से Message Extract करने, Agreed-upon Protocol या Standard के अनुसार इसकी व्याख्या करना और Receive Data की integrity और accuracy को Verify करना Include है।

Decoding में Error Detection और Correctin Techniques को Include किया जा सकता है, ताकि यह Ensure किया जा सके कि Received Data, Accurate और Reliable है। Data, Sucessfully Decode हो जाने के बाद Receiver द्वारा Process और use किया जा सकता है। Effective Communication के लिए आवश्यक है, कि Sender और Receiver एक सामान्य Encoding और Decoding Scheme का use करें| ताकि यह सुनिश्चित हो सके कि Message Accurate रूप से Transmit और Interpreted किया गया है।

Feedback

Data Communication में, Feedback, Receiver द्वारा Sender को वापस भेजी गई Response या Acknowledgment को Refer करता है| यह Indicate करता है कि Transmited Message, Receive हो गया है। Feedback, Communication Process का एक Mandatory Component है, क्योंकि यह Sender को यह Verify करने में सक्षम बनाता है, कि Message Receive हो गया है और उस पर Recevier के द्वारा Action की गई है। Feedback, ACK (Acknowledgment) और NAK (Negative Acknowledgment) जैसे Control Singal का रूप में होती है, जो Indicate करती है कि Message सही तरीके से Receive हुआ है या नहीं। Feedback Receiver की Statuc के बारे में Information भी Provide करता है|

fcit

Definition of Internet, Intranet, Extranet

Internet

Internet, Computer और अन्य Device का एक Global Network है| जो एक दूसरे के साथ Communicate करने के लिए Standardized Internet Protocol Suite (TCP/IP) का Use करते हैं। यह Connected Device के बीच Data, जैसे Text, Image और Video को Exchange करने की Permission देता है। Intenet को Basic रूप से 1960 के दशक के अंत में U.S. Department के लिए Develop किया गया था|

और तब से यह Interconnected Network के एक Large Network के रूप में Develop हो गया है| जो दुनिया भर में अरबों User को Service देता है। यह Communication और Information को उस Parameter पर Share करने में Capable बनाता है, जो पहले कभी Possible नहीं था| और Internet, Commerce, Education और Entertainment सहित Society के कई Aspect को बहुत Affect करता है।

Advantages of the Internet

  • Instant Messaging:  Internet का use करके किसी को Message Send कर सकते हैं, या Communication कर सकते हैं| Ex- Email, Voice Chat, Video Conferencing आदि।
  • Online Shopping: यह आपको Online Shopping करने की Permission देता है| जैसे कि आप Clothes, Shoes, Book, Movie Tickets, Railway Tickets, Flight Tickets और बहुत कुछ Online Buy कर सकते हैं।
  • Pay Bills: आप अपने Bills को Online Pay कर सकते हैं, जैसे Electricity bills, Gas bills,College fees आदि।
  • Online Banking: यह आपको Internet Banking का use करने की Permission देता है, जिसमे आप Balance को Check, Receive या Transfer कर सकते हैं| अथवा Statement Receive, Cheque-book का Request कर सकते हैं|
  • Online Selling: आप अपने Product या Service को Online Sell कर सकते हैं। यह आपको अधिक Customer तक पहुँचने में Help करता है|

Disadvantages of the Internet

  • Time wastage
  • Bad impacts on Health
  • Cyber Crimes
  • Bad Effects on Children

Intranet

Intranet, Internet का एक Part है, जिसको एक Organization द्वारा Privately Owned और use किया जाता है। इसका use मुख्य रूप से सभी Computer को Connect करने और एक Organization का Private Network Stablish करने के लिए किया जाता है, ताकि Employees को Projects पर Support करने, Information को Manage अथवा Update करने, Calendars share करने आदि की क्षमता प्रदान की जा सके। Organization अपने Data/Information को Secure रखने के लिए Intranet का use करना पसंद करते हैं| Unauthorized users को Network तक पहुँचने से रोकने के लिए Intranet में एक Firewall Installed होता है।

Intranet पर Create की गई Websites लगभग समान दिखती हैं, और Internet पर किसी भी अन्य Websites की तरह काम करती हैं। हालाँकि, ये Websites Internet पर Promotional Design Websites की तुलना में बहुत अधिक Task-Oriented होती हैं। Internet की तरह Intranet की Websites भी Chatting, Image Sharing, Audio-Video Conferencing आदि के रूप में Communication  के लिए Interface Provide करती हैं।

Advantages of Intranet

  • Improve Communication: Intranet एक Organization के अंदर Communication के लिए एक Centralized Platform Provide करता है| Employees को Information Share करने, Projects पर Collaboration करने और Real-Time में एक दूसरे के साथ Communication करने की Permission देता है।
  • Increased Efficiency: Intranet कई Routine Task को Automatacally कर सकता है| जैसे Document Share करना और Approval Process, इन Task को पूरा करने के लिए आवश्यक Time और Effort को कम करना।
  • Enhanced Collaboration: Intranet, Employee को Project पर एक साथ काम करने, File और Idea को Share करने और Online Meeting और Discussions में Participate करने के लिए एक Platform Provide करता है| जो Organization के अंदर Collaboration और Teamwork में Improvement कर सकता है।
  • Better Access to Information: Intranet, Information के लिए एक Centralized Repository Provide करता है| जिससे Employee को Organization के अंदर कहीं से भी Important Document, Database और अन्य Resource को Access करने की Permission मिलती है।
  • Increased Security: Authentication, Authorization और Encryption जैसे विभिन्न Method का use करके Intranet को Protect किया जा सकता है| जो Sensitive Information की Protect करने और Unauthorized Access को रोकने में Help करता है।

Disadvantage of Intranet

  • Cost: Inranet का Implementation और Maintainance Expensive हो सकता है, विशेष रूप से Complex Requirements वाले बड़े Organizations के लिए।
  • Technical Expertise: Inranet की Setting और Maintainance के लिए एक Fixed Level की Technical Expert की आवश्यकता होती है।
  • Maintenance: Inranet को नियमित रूप से Maintain रखा जाना चाहिए|
  • Limited Access: Inranet केवल Organization के Members के लिए Accessible होता है| Office के बाहर काम कर रहे Employee के लिए इसकी उपयोगिता को Limited कर सकता है।
  • Dependence on Technology: Inranet, Technology पर Depend करता है| जैसे कि Server और Network Infrastructure, जो Failure या Disruption के लिए Vulnerable हो सकती है।
  • Security Concerns: Inranet, Security Threat, जैसे Hacking, Malware और Data Theft के लिए Vulnerable हो सकता है, जो Sensitive Information से Compromise कर सकता है, और Organization को नुकसान पहुँचा सकता है।

Extranet

Extranet एक Private Network है, जो किसी Organization के Resource को उसके Customers, Partners अथवा Supplier तक पहुंचाता है। यह उन Information और Application को Security Access Provide करने के लिए Internet Infrastructure का use करता है, जो सामान्य रूप से केवल Intenal use तक ही सीमित हैं।

Extranet का उपयोग Business-to-Business (B2B) Communications और Transactions, जैसे Online Ordering, Product Information और Customer Service को Support करने के लिए किया जा सकता है। Example – एक Extranet Suppliers को Inventory Information, Order Status और Shipping Details के लिए Real Time Access Provide करता है।

Extranet आमतौर पर Encryption और Authentication का उपयोग करके Secure किया जाता है| Secure Socket Layer (SSL) या Virtual Private Network (VPN) Technologies, यह Ensure करते है कि केवल Authorized user के पास Network Access है। यह Sensitive Information को Protect रखने में मदद करता है| और यह Ensure करता है, कि Network पर Transmited Data Hidden रहता है।

Advantages of Extranet

  • Improved Collaboration: Extranet, Organizations को Partners, Suppliers, और Customers के साथ Collaborate करने और Information Share करने, Communication में Improve करने और अधिक Efficient Business Relationship को Convenient बनाने की Permission देता है।
  • Increased Efficiency: एक Extranet कई Routine Task को Automate कर सकता है| जैसे Order Processing, Inventory Management और Customer Service Taks को पूरा करने के लिए Required Time और Effort को कम करता है।
  • Enhanced Customer Service: Extranet, Customer Service की Quality में Improve करते हुए Srder Status, Shipping Details और Product Information जैसी Information तक Real Time में Customer को Access provide  करता है।
  • Increased Security: Sensitive Information की Security और Unauthorized Access को रोकने के लिए Encryption और Authentication जैसे विभिन्न Method का उपयोग करके एक Extranet को Protect किया जा सकता है।

Disadvantage of Extranet

  • Cost: Extranet का Implemention और Maintainance Expensive हो सकता है|
  • Technical Expertise: Extranet की Setting और Maintainance के लिए एक Fixed Level की Technical Expertise की आवश्यकता होती है|
  • Maintenance: Extranet को Run करने के लिए Regualar Maintenance की Reuirement होती है|
database

Data Abstraction

What is Data Abstraction?

Database System में Complex Data Structure और Relation होते हैं। Developers Complex Data को User से Hidden रखते हैं, और Complication को दूर करते हैं| जिससे कि Users, Easily Database में Data को Store व Manipulate कर सके और केवल Personal Data को Access कर सके| इस Complete Process को Data Abstraction की Help से Implement किया जाता है।

Data Abstraction का मुख्य उद्देश्य Irrelevant Data को Hide और Data का Abstract View Provide करना है। Data Abstraction की Help से Developers User से Irrelevant Data को Hide करते हैं, और उन्हें Relevant Data Provide करते हैं। ऐसा करने से Users बिना किसी Problem के Data को Access कर सकेंगे और System भी Efficiently काम करेगा।

Levels of Data Abstractions in DBMS

DBMS में Data Abstraction Layer में किया जाता है| DBMS में Data Abstraction को Multiple Levels में Implement किया जाता हैं, जो कि निम्नलिखित है –

Physical or Internal Level

Physical अथवा Internal Layer, Database Management System में Data Abstraction का Lowest Level है। यह Layer Define करती है, कि Database में Data कैसे Store किया जाता है। यह Database में Data को Access करने के Ways को Define करता है। यह Complex Data Structure को Detail से Define करता है, इसलिए इसे समझना बहुत Complex है| यही कारण है, कि Data के इस View को End User से Hide करके रखा जाता है।

Data Administrators (DBA) Deside करते हैं, कि Data को कैसे Arrange किया जाए और Data को कहाँ Store किया जाए। Data Administrator (DBA) वह User होता है, जिसका Role, Physical या Internal Level पर Database में Data को Manage करने की होती है। Data Center इस Level पर Hard Drive पर Raw Data को Details के साथ Securily Store करता है।

Logical or Conceptual Level:

Logical अथवा Conceptual Level, Data Abstraction का Intermediate Level है। जो Define करता है, कि Database में किस Type का Data Store होगा तथा उनके बीच Relation किस Type हो सकता है। यह Table के रूप में Entire Data के Structure को Describe करता है। Logical Level अथवा Conceptual Level, Physical Level की तुलना में कम Complex होता है।

Logical Level की Help से Data Administrators (DBA) Physical Level पर Availble Row Data से Data को Abstract करते हैं। Database के Logical Level को Programmers के द्वारा Define व Manipulate किया जाता है|

View or External Level:

View या External Level Data Abstraction का Higher Level है। इस Level पर Database के Different Views होते हैं, जो Database के Overall Data के Parts को Define करते हैं। यह Level End-User Interaction के लिए है| इस Level पर End User अपने Requirement के Base पर Data को Access कर सकते हैं।

Advantages of Data Abstraction in DBMS

  • Improved Flexibility: Data के User View को Affect किए बिना Implementation में Changes की Permission देता है।
  • Enhanced Data Integrity: Data के Constraints को Apply करने में मदद करता है, और Data की Accuracy और Consistency को Ensure करता है।
  • Improved Security: Implementation Detail को Hide करता है| और Abstraction की एक Layer Provide करता है, जो Unauthorized User के लिए Sensitive Information तक Access को Complex बना देता है।
  • Improved Performance: Database को अधिक Efficientऔर Scalable बनाने के लिए Optimized Storage और Data Retrieval की Permission देता है।

Disadvantages of data abstraction in DBMS 

  • Increased Complexity: Abstraction की Additional Layer, Database System में Complexity Add करती है, जिससे इसे समझना और Maintain रखना कठिन हो जाता है।
  • Overhead: Abstraction Process, Additional Overhead Impose करती है, जो Specialy Large और Complex Database में Performance को Negatively Impact कर सकती है।
  • Reduced Control: Abstraction Layer उस Control को Limited कर सकती है, जो Database Administrator के पास Implementation पर है| जिससे Performance को Optimize करना अथवा Problem को Remove करना कठिन हो जाता है।
data structure

Structured Programming

Structured Programming

Structured Programming को Modular Programming के रूप में जाना जाता है| यह एक Programming Paradigm है, जो Readable Code और Reusable Component के साथ Program लिखने की Facility Provide करता है। सभी Modern Programming Language, Structured Programming का Support करती हैं| Different Programming Language के Syntax की तरह Support के Mechanism Different होते हैं।

Structured Programming में Library से Module अथवा Code के Element को Reuse किया जा सकता है| विभिन्न Language में लिखे गए Module का use करके Structured Code बनाना भी Possible हो` सकता है| जब कि वे एक Common Module Interface अथवा Application Program Interface (API) Specification को Support करते हैं। जब Module को Reuse किया जाता है, तो Data Security और Governance से Compromise करना Possible है| इसलिए उन Module के Use को Control करने वाली Privacy Policy को Define करना और Apply करना महत्वपूर्ण है, जो उनके साथ Implicit Data Access Right को Implement करती है।

Structured Programming एक Application Program को Module अथवा Autonomous Element के Hierarchy में Divide करने के लिए Encourage करती है, जो कि ऐसे अन्य Element Include कर सकते हैं। प्रत्येक Element में Readability और Maintainability में सुधार के लिए Design किए गए Related Logic के Block का use करके Code को और Structured किया जा सकता है।

Types of Structured Programming

Procedural Programming

Procedural Programming एक प्रकार की Structured Programming है, जो किसी Problem को Solve करने के लिए Procedure अथवा Routine के Sequence का Follow करती है। इसमें एक Program को छोटे Manageable Part में Break करना और इनमें से प्रत्येक Part को Handle के लिए Procedure अथवा Function को लिखना Include है।

Data को Organize, Manipulate, Algorithm को Implement करने के लिए Procedural Programming का use किया जाता है। Procedural Program में Procedure को Data Structure के साथ काम करने के लिए लिखा जाता है, जैसे Arrays, Linkedlists, Stacks, and Trees।

Procedure इन Data Structure पर Operation करती हैं, जैसे Data को Insert करना, Delete अथवा Search, Short करना और Data को Different Form में Change करना| Data Structure में Procedural Programming के Advantages में Modularity, Reusability, और Readability Include हैं। Procedural Approach Code को Debug और Maintenance को आसान बनाता है, क्योंकि प्रत्येक Procedure का अलग-अलग Testing और Modification किया जा सकता है।

Service Oriented Programming

Service Oriented Programming (SOP) एक Software Design Paradigm है, जो Modular और Reusable Component को बनाने पर Focused है, जिन्हें Service के रूप में जाना जाता है| Servies को Complex Application को Build करने के लिए जोड़ा जा सकता है। SOP में, Service को एक Provider द्वारा Define और Publish किया जाता है, और Client Specific Works को Complete करने के लिए इन Service को Consume कर सकते हैं।

Service का उपयोग Different Data Structure और उनके Operation तक Access Provide करने के लिए किया जा सकता है। Example– Services को Binary Search Tree पर General (Insert, Delete, Search) Operation करने के लिए Define किया जा सकता है|

Object Oriented Programming

Object Oriented Programming (OOP) एक Programming Paradigm है, जो Objects के Concept पर Based है| जिसमें Data और Function Include हो सकते हैं, जो उस Data पर काम करते हैं। OOP में Object, Class के उदाहरण हैं, जो किसी Special Object के Properties और Behavior को Define करते हैं।

Object Oriented Programming का उपयोग Data Structure को Object के रूप में Model करने के लिए किया जा सकता है। Example– Linkedlist Data Structure को एक Class के रूप में Implement किया जा सकता है| List में प्रत्येक Node को उस Class के Object के रूप में Represent किया जाता है। Linkedlist Class में Data Insert, Delete तथा Search के तरीकों को Define किया जा सकता है| और Linkedlist Data Structure में Manipulate करने के लिए Class की Object का use किया जा सकता है।

Advantages of Structured Programming

  • Modularity: Structured Programming, Small, Well-Defined Procedure अथवा Specific Task को करने वाले Function के uses को Promote करती है। इससे Code को समझना, Maintain रखना और Debug करना आसान हो जाता है, क्योंकि Program के प्रत्येक Part को अलग-अलग Study और Modify किया जा सकता है।
  • Reusability: Code को Smaller Procedure अथवा Function में Break करके Program के अन्य Parts में इन Parts को Reuse करना Possible है|
  • Readability: Structured Programming, Code को समझना आसान बनाता है, क्योंकि प्रत्येक Procedure अथवा Function का एक Clear Purpose होता है| और Program के Control Flow को Follow करना आसान होता है। इससे अन्य Programmer के लिए Code के साथ काम करना आसान हो जाता है|
  • Debugging: Code को Smaller Procedure अथवा Function में Break करके Bug को Identify और Fix करना आसान होता है। यदि कोई Bug पाया जाता है, तो Program को एक Specific Procedure अथवा Function से अलग करना और Test करना और बड़ी मात्रा में Code के बिना इसे Fix करना आसान होता है।
web

Search Engine and Client Server Model

Search engine

Search Engine एक Software Program या Tool है, जो User को World Wide Web (WWW) से Information Search और Retrieve करने की Permission देता है। यह Web Page और अन्य Online Content जैसे Image, Video और Document को Indexing करके काम करता है, और फिर User को उनकी Search Query के Base पर Relevant Result Provide करता है।

Search Engine Web पर नए Page Search करने और उन्हें अपने Database में Index करने के लिए Web Crawler या Spider का use करते हैं। Indexing की Process में Text, Link और Metadata सहित Web Page के Content का Analyze करना और फिर उस Information को Search योग्य Index में Store करना Include है। जब कोई User Search Query करता है, तो Search Engine सबसे Relevant Result को Retrieve करने और Rank करने के लिए अपनी Indexing का use करता है।

आज Web पर कुछ सबसे लोकप्रिय Search Engine में Google, Bing, Yahoo और DuckDuckGo शामिल हैं। ये Search Engine Keyword Density, Page Quality, और Website के Authority जैसे Different Factors को ध्यान में रखते हुए User की Search Engine के लिए Web Page और अन्य Online Content की Relevant Define करने के लिए Complex Algorithm का use करते हैं।

Client Sever Model

Client-Server Model एक Architecture Pattern है, जो Internet पर Data को Serve और Retrieve के लिए Web Technology में Use किया जाता है। इस Model में, Client (Web Browser), Server (Web Server) को एक Request Send करता है, और Server Request Prcoess  एक Response Return देता है। Client-Server Model, Client और Server के बीच Communication Interface की तरह Work करता है।

Client और Server एक Standardized Communication Protocol, जैसे HTTP या HTTPS के माध्यम से Communication करते हैं। Client-Side Component, User Interface है, जिसके माध्यम से User अपनी Search Query Enter करते हैं। यह Component, Server-Side Component को Query Send करता है| जो Query को Processing करने, उसके Index से Relevant Data को Retrieve करने और Client को Result, Return करने के लिए Responsible होता है।

Server Component में Multiple Layer होती हैं, जिसमें Front-End layer Include होती है| जो आने वाले Request को Receive करती है, और Parses करती है| तथा एक Back-end layer होती है, जो Request को Process करती है| और Relevant Data को Retrive करती है| तथा इसमें एक Database Layer होती है, जो Indexed Data को Store करती है| Front-End Layer, Back-End Layer से Received Data को HTTP Response में Convert करता है, और Client को Output के रूप में Send करता है।

Type of Client Server Services

Server Computer, Multiple Service, Provide करते है| Service के आधार पर Server Computer को Service के नाम से जाना जाता है| Example -Email Server, Database Server, Web Sever इत्यादि|

Email Server

Email Server, Email से Related Service Available, Provide करती हैं| Email Server द्वारा Client Computer एक दूसरे को Message व Mail Send कर सकते हैं| Email Server, Client Computer के सभी Mail व Message को Save रखता है| अगर Client Email को Read करने के लिए Server उस Client से Related सभी Email उस Network से Send कर सकते है|

Database Server

इस तरह के Server Computer बहुत बड़ी मात्रा में Client Computer की Information व Data अपने पास Store रखती है| Client Machine Database Server से Contact Stablish करके Information व Data को Server Computer में Save कर सकते हैं| तथा अपनी Need के अनुसार Stored Data को Retrieve भी कर सकते हैं|

Web Sever

यह Server Website से Related File को पास Store करते हैं| तथा जब भी Client Computer द्वारा Web Page को Access के लिए Request किया जाता है, तो Web Server, Requested, Web Page को Client को Send कर देते हैं| Example- Web Browser

Web Browser, Client Software होता है| इस Software में user Web Page से Related URL को Type करता है| Web Browser Type किये हुए URL के जरिये Web Server से Connection Stablish करता है, जिसके पास Requested Web Page Store होता है| Client की Request आने के बाद Web Server, Browser को Web Page, Send कर देता है| जिसके बाद Browser इस Web Page को Process कर user को Web Page में Availble, Current Component, User को Deliver करता है|

Advantages of the Client-Server Model

  • Scalability: Clients को Affect किए बिना Server को आसानी से Upgrade अथवा Change किया जा सकता है|
  • Reliability: High Availability, Provide करने और Downtime को कम करने के लिए Server को Redundant Component और Bakcup System के साथ Design किया जा सकता है।
  • Security: Sensitive Data को Protect करने मदद करते हुए Server Security policies को Apply करता है, और Access Control Provide करता है।
  • Centralized Processing: Server, Complex Processing और Data Storage कर सकता है, जिससे Client को Same Processing Power के बिना उन Resoures तक Access की Permission मिलती है, जिनकी उन्हें आवश्यकता होती है।
  • Flexibility: Client-Server Architecture, Simple File Sharing से Complex Enterprise System तक Application और Service की एक Wide Range को Support करता है।

Disadvantages of the Client-Server Model

  • Single point of failure: Server, Client-server model में Failure के Single Point के रूप में कार्य करता है। यदि Server Fail हो जाता है, तो सभी Connected Client उन Resource को Access करने में Unable होंगे| जिनकी उन्हें Requirement है।
  • Maintenance and Upgrades: Server का Upgrade या Maintainance एक Complex और Time लेने वाली Process हो सकती है, जिसके लिए सभी Connected Client को temporarily रूप से disconnected करने की आवश्यकता होती है।
  • Latency: Client-Server Model, Latency से Suffer कर सकता है| क्योंकि Client से Server की Request Network पर Travel करती है, जिससे कभी-कभी Delay हो सकता है।
  • Security: Server पर Resource का Centralization इसे Malicious Attacks के लिए एक Main Target बना सकता है, जिससे Server और इसके Resource को Secure करना महत्वपूर्ण हो जाता है।
fcit

Network Topology

Network Topology

Network Topology एक Network में Nodes और Connection को Physical और Logical Arrangement है। Nodes में आमतौर पर Switch और Router, Feature के साथ Switch, Router और Software जैसे Device Include होते हैं। Network Topology को अक्सर एक Graph के रूप में दर्शाया जाता है।

Network Topology, Network का Arrangement और Traffic Flow के Relative Location को Describe करती है। Administrator प्रत्येक Node के लिए Best Placement और Traffic Flow के लिए Optimal Path निर्धारित करने के लिए Network Topology Diagram का use कर सकते हैं। एक Well-Defined और Planned-out Network Topology के साथ एक Organization आसानी से Fault का पता लगा सकता है, और Issue को Fix कर सकता है| यह Data Transfer Efficiency में Improvement करता है।

Network Geometry को Physical Topology और Logical Topology के रूप में Define किया जा सकता है। Network Topology Diagram, Network Node के रूप में दर्शाए गए Device और Line के रूप में उनके बीच के Connection के साथ Show किये जाते हैं।

Type of Topology

Bus Topology

Bus Topology एक प्रकार की Network Topology है, जहां सभी Device एक Cable से Connected होते हैं| जिसे Bus कहा जाता है। Bus Topology में Data दोनों Direction में Transmit होता है, और सभी Device एक साथ Data Receive करते हैं।

topology

Advantages of Bus Topology

  • यह Topology बहुत ही Inexpensive है| इसमें Money का ज्यादा Expenditure नहीं होता है|
  • इसमें बहुत ही कम Cable का use होता है|
  • इसे समझना बहुत ही Easy होता है|
  • Bus Topology को Create करना बहुत ही Easy होता है|
  • छोटे से Network Area में भी इसका use किया जा सकता है|
  • यदि इसमें एक Computer (Device) ख़राब होता है, तो वह दूसरे Device पर कोई असर नहीं करता है| पूरा Network आसानी से Work कर सकता है|

Disadvantages of Bus Topology

  • इसके Cable की Length Limited रहती है|
  • अगर सभी Data को एक साथ Send किया जाये या फिर सभी Computer को एक Cable से Connect किए जाएंगे| तो इसकी Work करने की Capacity कम हो जाती है|
  • एक Cable में जुड़े हुए Computer रहते हैं तो अगर वह Cable ख़राब हो जाता है तो पूरा Network Connection ही Fail हो जाता है|
  • यह Topology थोड़ा Slow Work करती है|

Star Topology

इस Topology में सभी Computer एक Hub से या सिर्फ एक Cable के द्वारा Add रहते है। Star Topology सबसे ज्यादा use की जाती है। इसमें Central Network Device एक Server के रूप में अपना Work करता है और बाकी के सभी Computer Client के रूप में अपना Work करते है। इस Topology में यदि Hub या Switch में किसी तरह की Problem आती है तो पूरा Network Fail हो जाता है लेकिन यदि किसी Local Computer System में कोई Problem आती है तो इसके Network पर किसी तरह का कोई Effect नहीं होता है।

topology

Advantage of Star Topology 

  • इसके माध्यम से Network को आसानी से बड़ा कर सकते है।
  • जब Computer या Network Cable Fail हो जाता है तो इससे पूरे Network पर कोई Effect नहीं आता है।
  • इसको Install करना भी बहुत Easy होता है।
  • यह सबसे ज्यादा use की जाने वाली Topology है, इसका use अधिकतर Office या Shop में किया जाता है।

Disadvantage of Star Topology

  • इस Topology को Install करने की कीमत ज्यादा होती है।
  • यदि इसमें Hub खराब हो जाता है, तो सभी Network रुक जाते है| और जितनी भी Node होती है, वह Hub के कारण ही Properly Work करती है।

Ring Topology

Ring Topology में Network में सभी Devices अपनी नजदीकी (Nearest) दो Device से Connect होती है, इसलिए हर Devices में दो NIC Card लगे होते है|और इस तरह Network में एक Circle बन जाता है| इस Topology में Network में Data का Flow केवल एक ही Direction में होता है, Clockwise या Anticlockwise| इसमें सभी Devices एक Repeater की तरह Work करती है|

topology

Advantage of Ring Topology

  • Ring Topology को Bus Topology की Comparison में Manage करना Easy है |
  • Network में Traffic को बड़ी मात्रा में Control कर सकता हैं |
  • बहुत Reliable और Network में अच्छी Speed Provide करता है |
  • Ring Topology के Installation में खर्चा कम होता हैं |

Disadvantage of Ring Topology

  • Ring Topology में Troubleshooting करना काफी Difficult है |
  • Ring Topology में Device को Connect या Disconnect करने से सभी Network Disturbs होता हैं |
  • एक ख़राब Device सभी Network को Fail कर सकती हैं |

Mesh topology

Mesh Topology एक प्रकार का Point-to-Point Connection है। इसमें सभी Nodes या Devices एक Network Channel के माध्यम से एक दूसरे से Connect रहते है।

Advantage of Mesh Topology

  • Network में Information को Share करने के लिए Multiple Ways मिल जाते हैं |
  • Security और Privacy Provide करता है
  • Fault Device का पता लगाना आसान है|

Disadvantage of Mesh topology

  • Mesh Topology को Network Implement करने के लिए बहुत Cables और NIC card की आवश्यकता पड़ती हैं |
  • Mesh Topology काफी  Expensive हैं |

Tree Topology

Tree Topology का Structure, Mixed Structure होता है| जिसमें Star Topology और Bus Topology दोनों ही पाये जाते हैं। अर्थात् इसमें Star Topology की तरह एक Main Host Computer होता है, और Bus Topology की तरह सभी Local Computers एक ही Cable से एक Fixed Order में Add होते हैं। यह Network Structure, Tree के समान होता है| इसलिये इसे Tree Topology कहते हैं।

topology

Tree Topology में प्रत्येक Segment के लिये Point Cable Add की जाती है। मगर यदि इस व्यवस्था में Back Bone Line टूट जाती है, तो पूरा ही Network रूक जाता है। Difficult Structure की वजह से अन्य Topology की तुलना में इसमें Cable Add करना तथा इसे Configure करना Difficult होता है।

Advantages of Tree Topology

  • इसमें ज्यादा मात्रा में Node का use किया जाता है।
  • इसे Maintain और Manage करना Easy Work है।
  • यदि इसमें कोई Error होती है, तो उसे पता लगाना Easy है।

Disadvantages of Tree Topology

  • यह अन्य सभी Topology की तुलना में महंगा है, क्योंकि इसमें ज्यादा Cable की आवश्यकता होती है।
  • यदि Root Node Close या ख़राब होता है, तो उसके कारण अन्य सभी Nodes Close हो जाते है।
data structure

Problem Solving Concept: Top-down and Bottom-up Design Approach

Definition of Problem-Solving

Problem-Solving किसी Specific Problem या Problems के Set को Solve करने के लिए एक Process है, जिसमे Problem को Solve करने के लिए किसी भी Programming Language में Set of Instruction को लिखा जाता है|Problem-Solving की Process में Problem को Identify करना, Algorithm Design करना, किसी भी Programming Language में Program Code Write करना, Program का Testing और Debuging करना तथा Better Performance के लिए Program को Optimize करना शामिल है।

किसी Problem को Solve करने के लिए एक Programmer को किसी भी Programming Language की Solid understanding होनी चाहिए, जिसमें Syntax, Constructs और Library Included हैं। तथा Programmers को Efficient Algorithm Design करने और Clear Code लिखने के लिए Problem-Solving Techniques को Apply करने भी आना चाहिए। Problem-Solving की Process में अक्सर Data Structure के साथ Work करना भी Included होता है| जैसे कि Arrays, Linked lists, Tree और Graph साथ ही Algorithm जैसे कि Sorting, Searching और Graph Traversal का use करना।

Data Structure Language में Problem-Solving के लिए Top-down और Bottom-up दो Popular Approach हैं।

Top-down Design Approach

  • High-level view: Problem का Analyze और High Level पर समझा जाता है| और Overall Solution को Small Sub-Problem में Divide किया जाता है।
  • Recursive Decomposition: प्रत्येक Sub-Problem को Recursive रूप से Solve किया जाता है| Problems को और भी Small Sub-Problem में Break किया जाता है, जब तक कि Problem पूरी तरह से Solve नहीं हो जाती।
  • Abstraction: Solution Abstract Data Structure का Use करके बनाया गया है| जैसे Arrays, Linkedlist, या Tree जिनका उपयोग Sub-problem के बीच Relationship को Represent करने के लिए किया जाता है।
  • Modularity: Solution को Modular होने के लिए Design किया गया है, ताकि प्रत्येक Sub-problem को Independent रूप से Solve किया जा सके| जिससे Solution Maximum Flexible और Maintain रखने में आसान हो।

Advantages of Top-down Design Approach

  • Clarity and Simplicity: यह Problem और उसके Solution की Clear Understanding की Permission देता है, जिससे Complex System को Small और अधिक Manageable Component में Break करना आसान हो जाता है।
  • Modularity: Modular Code का Top-down DesignApproach का Result होता है, जो Test, Debug और Maintainance को आसान बनाता है।
  • Reusability: Complex System को Small Component में Break करने के कारण Future में Project Component में Reuse करना आसान हो जाता है।
  • Abstraction: Top-down Design Approach Abstraction को Implement करता है, जिससे Developer Low-Level Implementation Details के बजाय System के High-Level Design पर Focus कर सकते हैं।
  • Flexibility: Top-down Design Approach अधिक Flexibility Provide करता है, जिससे Requirement Change होने की स्थिति में System को Modify करना आसान हो जाता है।

Disadvantages of Top-down Design Approach

  • Over-Engineering: Top-down Approach के कारण Over-Engineered Solution Generate हो सकते हैं| जिससे Implementation Process Complex हो जाता है।
  • Incomplete understanding: यदि Problem अच्छी तरह से समझ में नहीं आती है, तो Top-down Design Approach का Result Incomplete Solution हो सकता है।
  • Inflexibility: एक बार High-level design Establish हो जाने के बाद System में Changes करना मुश्किल हो सकता है, क्योंकिChanges का पूरे Code में Cascading Effect हो सकता है।
  • Time-consuming: Top-down Approach Time Consuming होता है, क्योंकि Implementation शुरू होने से पहले Careful Planning और Design की आवश्यकता होती है।

Bottom-up Design Approach

  • Component creation: Problem को उसके सबसे Smallest Component में Divide किया जाता है| और प्रत्येक Component को अलग-अलग Solve किया जाता है।
  • Component combination: अलग-अलग Component को तब एक Complete Solution बनाने के लिए Combine किया जाता है, जब तक की Complete Problem solve नहीं हो जाता है|
  • Incremental development: अलग-अलग Component से Start करके और Complete Solution तक Process करते हुए Solution को Incremental way में बनाया जाता है।
  • Reusability: Solution को Reusability के लिए Design किया गया है|

Advantages of Bottom-up Design Approach

  • Incremental development: Bottom-up Design Incremental Development को Permisssion देता है, क्योंकि Large System में Integrate होने से पहले Individual Component को Build और Test किया जा सकता है।
  • Early Testing: Bottom-up Design Early Testing को Implement करता है, क्योंकि Large System में Integrate होने से पहले Individual Component को Test किया जा सकता है। यह Development Process की शुरुआत में Bug को Identify और Fix करने में मदद करता है।
  • Simplified debugging: Bottom-up Design, Debugging को आसान बनाता है, क्योंकि Bug को अलग-अलग Component में Divide किया जा सकता है ,और अधिक आसानी से Fix किया जा सकता है।
  • Reduced Complexity: Bottom-up design के Use के कारण Complexity का Level कम होता है, क्योंकि Complex System Simple Component से Built होते हैं।

Disadvantages of Bottom-up Design Approach

  • Difficult to plan: bottom-up Approach की Plan Create करना कठिन हो सकता है, क्योंकि इसके लिए Large System को Design करने से पहले अलग-अलग Component की Clear Understanding की Requirement होती है।
  • Limited understanding: Bottom-up Design के Use के कारण Overall System की Limited Understanding हो सकती है, क्योंकि Overall System के बजाय Individual Component पर Focus किया जाता है।
  • Integration challenges: Individual Component को एक Large System में Integrate करना Challenging हो सकता है।
  • Time-consuming: bottom-up Approach Time Consuming हो सकता है, क्योंकि Large Sytem में Integrate करने से पहले Individual Component को Build और Test किया जाता है।