Table of Contents
1. Introduction
1.1. Architecture Overview
1.2. Scope
2. References
3. Architecture Design
3.1. Servers Description:
3.2. Hardware Specifications
1. Introduction
1.1. Architecture Overview
The following is an attempt to put together a complete, yet reasonably flexible template for SharePoint environment architecture. Wherever possible, I have tried to provide guidelines (instead of prescribing requirements) for the contents of various sections and subsections of the document.
1.2. Scope
This document is a description of a SharePoint environment architecture that the architecture designer writes in order to give maintainability, scalability and reusability.
2. References
N/A
3. Architecture Design
SharePoint operates under design principles that are massively scalable if need be. Using redundancy and load-balancing techniques such as the Microsoft Cluster Services and Network Load Balancing, more performance can be obtained from an environment simply by adding other servers to provide redundancy and load-balancing to specific roles. For example, in a very large farm, such as the one shown in Figure 1.0, multiple servers in cluster and NLB configurations allow the environment to be scaled into very large numbers of users.
Figure 01
This type of environment could easily scale well into the realm of hundreds of thousands of users. Larger environments have been configured as well, and SharePoint scales easily in the terabytes of data and vast number of users.
3.1. Servers Description:
3.1.1. ISA (Internet Security and Acceleration) servers: Allows administrators to create policies for regulating usage based on user, group, application, destination, schedule, and content type criteria. In SharePoint, environment ISA servers control and authenticate all passed request. Or IAG (Microsoft Intelligent Application Gateway) which is a VPN solution that provides secure remote access to corporate networks for remote employees and business partners. IAG's main focus is on providing secure access to corporate applications.
3.1.2. NLB (Network Load Balancing): A clustering technology developed by Microsoft for Windows 2003 Advanced Server. This software-scaling technology spreads client requests among a group of servers linked together to support a particular application. Client requests are routed to the least-busy server for processing. As client load increases, additional servers can be added to share the load.
3.1.3. Web Servers (web front-end): The Web server role in SharePoint 2007 is the workhorse role that handles the job of displaying the actual content to the end user’s browser. Web servers recommended being setup as load-balanced pairs.
3.1.4. Excel Calculation Servers: A server that holds the role of an Excel calculation server is a server that provides Excel Services for the SSP. Excel Services provide a method for web browsers to perform spreadsheet tasks similar to Microsoft Excel functionality, but without actually having, Excel installed on the client.
3.1.5. Index Servers: Index servers provide for indexing functionality, storing searchable text for all sites content, including documents, lists, and other SharePoint data. The indexing service is processor intensive, so it is often installed on its own server, particularly in mid-size to large farms.
3.1.6. Database Servers: A Database server, in regard to SharePoint, is the actual server that holds one or more SharePoint databases. This server might be a dedicated Database server, with running databases from other applications such as Systems Management Server (SMS), Microsoft Operations Manager (MOM), Microsoft Identity Integration Server (MIIS), or other services that consume SQL database functionality. Additionally we recommend to be clustering techniques to join between two or more database servers to avoid database server failures.
3.1.7. System Center Operations Manager (SCOM), formerly Microsoft Operations Manager (MOM), is a performance and event-monitoring product for Microsoft Windows operating systems. Many Microsoft server products, such as Active Directory, Microsoft SQL Server, Microsoft Exchange Server and SCOM itself can be monitored with SCOM.
3.1.8. A SAN file system (a storage area network file system) : is programming that enables the sharing of the same copies of files stored on common storage media among multiple servers that may have different operating systems.
3.1.9. System Center Configuration Manager (SCCM), formerly Systems Management Server (SMS), is a systems management software product by Microsoft for managing large groups of Windows-based computer systems. Configuration Manager provides remote control, patch management, software distribution, operating system deployment, and hardware and software inventory.
3.1.10. Microsoft Forefront: is a line of comprehensive security products for both Microsoft Windows Client and Windows Server titles. According to Microsoft, the Forefront line will provide companies with multiple layers of defence against threats. Forefront includes the following products:
3.1.10.1. Connected Business Computers
• Microsoft Forefront Client Security (formerly called Microsoft Client Protection) Application Server Security.
• Microsoft Forefront Security for Exchange Server (formerly called Sybari Antigen for Exchange)
• Microsoft Forefront Security for SharePoint (formerly called Sybari Antigen for SharePoint)
• Microsoft Forefront Security for Microsoft Office Communications Server (formerly called Antigen for Instant Messaging)
3.1.10.2. Network Edge Security
• Microsoft Internet Security and Acceleration (ISA) Server 2006.
• Microsoft Intelligent Application Gateway (IAG) 2007.
• Microsoft Forefront Threat Management Gateway (next version of ISA Server)
• Microsoft Forefront Unified Access Gateway (next version of IAG)
3.2. Hardware Specifications
Sunday, February 27, 2011
Spring.Net Overview
Table of Contents
1. Introduction
2. References
3. Modules
4. Spring.Net Framework Advantages
5. Why spring.Net?
1. Introduction
Spring.NET provides comprehensive infrastructural support for developing enterprise .NET applications. It allows you to remove incidental complexity when using the base class libraries makes best practices, such as test-driven development, easy practices.
Spring.NET is created, supported and sustained by Spring Source. The design of Spring.NET is based on the Java version of the Spring Framework, which has shown real-world benefits and is used in thousands of enterprise applications worldwide.
Spring .NET is not a quick port from the Java version, but rather a 'spiritual port' based on following proven architectural and design patterns in that are not tied to a particular platform. The breath of functionality in spring .NET spans application tiers, which allows you to treat it as a ‘one stop shop’ but that is not required.
Spring .NET is not an all-or-nothing solution. You can use the functionality in its modules independently.
2. References
http://www.springframework.net
3. Modules
The Spring Framework contains a lot of features, which are well-organized into modules shown in the diagram below. The diagram below shows the various core modules of Spring.NET.
Spring.Core is the most fundamental part of the framework allowing you to configure your application using Dependency Injection. Other supporting functionality, listed below, is located in Spring.Core
Spring.Aop - Use this module to perform Aspect-Oriented Programming (AOP). AOP centralizes common functionality that can then be declaratively applied across your application in a targeted manner. Spring's aspect library provides predefined easy to use aspects for transactions, logging, performance monitoring, caching, method retry, and exception handling.
Spring.Data - Use this module to achieve greater efficiency and consistency in writing data access functionality in ADO.NET and to perform declarative transaction management. Introduction Spring Framework (Version 1.2.0) 4
Spring.Data.NHibernate - Use this module to integrate NHibernate with spring’s declarative transaction management functionality allowing easy mixing of ADO.NET and NHibernate operations within the same transaction. NHibernate 1.0 users will benefit from ease of use APIs to perform data access operations.
Spring.Web - Use this module to raise the level of abstraction when writing ASP.NET web applications allowing you to effectively address common pain-points in ASP.NET such as data binding, validation, and ASP.NET page/control/module/provider configuration.
Spring.Web.Extensions - Use this module to raise the level of abstraction when writing ASP.NET web applications allowing you to effectively address common pain-points in ASP.NET such as data binding, validation, and ASP.NET page/control/module/provider configuration.
Spring.Services - Use this module to adapt plain .NET objects so they can be used with a specific distributed communication technology, such as .NET Remoting, Enterprise Services, and ASMX Web Services. These services can be configured via dependency injection and ‘decorated’ by applying AOP.
Spring.Testing.NUnit - Use this module to perform integration testing with NUnit.
The Spring.Core module also includes the following additional features
• Expression Language - provides efficient querying and manipulation of an object graphs at runtime.
• Validation Framework - a robust UI agnostic framework for creating complex validation rules for business objects either programmatically or declaratively.
• Data binding Framework - a UI agnostic framework for performing data binding.
• Dynamic Reflection - provides a high performance reflection API
• Threading - provides additional concurrency abstractions such as Latch, Semaphore and Thread Local Storage.
• Resource abstraction - provides a common interface to treat the Input Stream from a file and from a URL in a polymorphic and protocol-independent manner.
Notice:
-You can use spring in all sorts of scenarios, from simple stand-alone console applications to fully-fledged enterprise applications using spring’s transaction management functionality and web framework integration.
-It is important to note that the Spring Framework does not force you to use everything within it; it is not an allor-nothing solution. Existing front-ends built using standard ASP.NET can be integrated perfectly well with a Spring-based middle-tier, allowing you to use the transaction and/or data access features that spring offers. The only things you need to do is wire up your business logic using Spring's IoC container and integrate it into your web layer using WebApplicationContext to locate middle tier services and/or configure your standard ASP.NET pages with dependency injection. While the spring framework does not force any particular application architecture, it encourages the use of a well layered application architecture with distinct tiers for the presentation, service, data access, and database.
4. Spring.Net Framework Advantages
1.Spring.Net enables Dependency Injection for your web pages and controls, which mean that you can inject services into pages, configure controls, and all other good stuff that DI buys you.
2. Spring.Net gives you bidirectional data binding with automatic type conversion, which means that you can avoid a lot of ugly code in your code-behind classes that is normally used to move data from the controls to the model and vice versa. This also means that your event handlers/controller methods do not depend on the input controls, but only on the data model, which allows them to be moved into a separate class if so desired (makes their unit testing much simpler).
3. Spring.Net provides a superior data validation framework that allows you to use same validator definitions in multiple places (web pages and service layer, for example), because it is not tied to the UI in any way. It also makes it very easy to compose validation rules, so you will very rarely have to write your own custom validator, and even when you do, it is a much simpler task than with standard ASP.NET validation framework. Not to mention, you can easily change how validation errors are displayed by plugging in appropriate rendering strategy using standard Spring DI.
4. Spring.Net has arguably better localization support, with well defined fallback rules. For example, you don't really need to do anything in your page in order to apply certain resources automatically. All you need to do is follow the simple resource naming convention. Also, unlike in ASP.NET 2.0, where you need to specify whether you want to access global or local resources, with Spring.NET simple GetMessage call will look for resource in the local resource file and then automatically fall back to global resources. Not to menion that if you don't feel like storing resources in the .NET resource files you can easily implement new message source that will access resources from plain text files, XML files, database, content management system, etc. Finally, image localization is supported as well, in a very simple but effective way.
5. Spring.Net also gives you completely configurable strategies for user's culture management. Out of the box you can choose the one that reads culture information from HTTP request, the one that manages it in a session, or the one that stores it in a cookie. You can also easily write your own culture resolver that stores user's culture information in a database, if that's what you need.
6. You can configure master pages using Dependency Injection, which is arguably a better way to do it than by either specifying it within each page or by configuring it globally in web.config. With Spring, you can choose the granularity that best suits your needs and configure it globally, per context, or on a page by page basis.
7. Spring.Net have library for tackling common jobs like transaction management, logging, caching and exception handling. AOP has been described as a method that allows programmers to modularize the way they deal with components that cut across system elements.
5. Why spring.Net?
Because spring.net take all features of .net framework plus all of this points:
Open source framework
Spring provide Patterns of Enterprise Application Architecture by Martin Fowler
And many others.
Most ideas and architectural concepts in Spring are not platform specific
Framework to manage object dependencies throughout its lifecycle
Powerful expression language for manipulating an object at runtime
Spring provide a validation framework Leverage expression support for validating objects based on expressions
Spring provide new feature in .net technologies Dependency Injection
– Object not responsible for looking up resources or dependencies.
– Container pushes resources/dependencies into object by reflection-based calls to constructor and/or properties.
– Promotes a design that is easy to unit test
– Promotes coding to interfaces(Strategy Pattern)
– Enables Dependency Injection for Web Services, Remote Objects and Serviced Components
– Enables Dependency Injection for ASP.NET web pages and controls
Wide range of data access strategies and associated technologies to choose from(Not just ADO.NET),you can use nhibernate O/R …
Transaction Management Abstraction
Established persistence patterns at the API level
Adds Master Pages support to ASP.NET 1.1
Enables bi-directional data binding
Isolates you from the changes in the technology
Another way to think about program structure(AOP)
– Apply common behavior across OO hierarchies “Cross Cutting Concerns”
– Minimize code duplication
– Complementary to good OOP design
– Solves problems that are difficult to solve with OOP
– Leads to cleaner, better modularized code that is easier to maintain and extend.
Examples
– Logging entry/exit/exception to methods
– Performance Metrics
– Observer design pattern
– Caching Method return values
– Security Checks
– Monitoring
– Transaction Management
Object obtained from a Spring IoC container can be transparently advised based on configuration
– XML, Attributes.
– Can also use programmatic API.
1. Introduction
2. References
3. Modules
4. Spring.Net Framework Advantages
5. Why spring.Net?
1. Introduction
Spring.NET provides comprehensive infrastructural support for developing enterprise .NET applications. It allows you to remove incidental complexity when using the base class libraries makes best practices, such as test-driven development, easy practices.
Spring.NET is created, supported and sustained by Spring Source. The design of Spring.NET is based on the Java version of the Spring Framework, which has shown real-world benefits and is used in thousands of enterprise applications worldwide.
Spring .NET is not a quick port from the Java version, but rather a 'spiritual port' based on following proven architectural and design patterns in that are not tied to a particular platform. The breath of functionality in spring .NET spans application tiers, which allows you to treat it as a ‘one stop shop’ but that is not required.
Spring .NET is not an all-or-nothing solution. You can use the functionality in its modules independently.
2. References
http://www.springframework.net
3. Modules
The Spring Framework contains a lot of features, which are well-organized into modules shown in the diagram below. The diagram below shows the various core modules of Spring.NET.
Spring.Core is the most fundamental part of the framework allowing you to configure your application using Dependency Injection. Other supporting functionality, listed below, is located in Spring.Core
Spring.Aop - Use this module to perform Aspect-Oriented Programming (AOP). AOP centralizes common functionality that can then be declaratively applied across your application in a targeted manner. Spring's aspect library provides predefined easy to use aspects for transactions, logging, performance monitoring, caching, method retry, and exception handling.
Spring.Data - Use this module to achieve greater efficiency and consistency in writing data access functionality in ADO.NET and to perform declarative transaction management. Introduction Spring Framework (Version 1.2.0) 4
Spring.Data.NHibernate - Use this module to integrate NHibernate with spring’s declarative transaction management functionality allowing easy mixing of ADO.NET and NHibernate operations within the same transaction. NHibernate 1.0 users will benefit from ease of use APIs to perform data access operations.
Spring.Web - Use this module to raise the level of abstraction when writing ASP.NET web applications allowing you to effectively address common pain-points in ASP.NET such as data binding, validation, and ASP.NET page/control/module/provider configuration.
Spring.Web.Extensions - Use this module to raise the level of abstraction when writing ASP.NET web applications allowing you to effectively address common pain-points in ASP.NET such as data binding, validation, and ASP.NET page/control/module/provider configuration.
Spring.Services - Use this module to adapt plain .NET objects so they can be used with a specific distributed communication technology, such as .NET Remoting, Enterprise Services, and ASMX Web Services. These services can be configured via dependency injection and ‘decorated’ by applying AOP.
Spring.Testing.NUnit - Use this module to perform integration testing with NUnit.
The Spring.Core module also includes the following additional features
• Expression Language - provides efficient querying and manipulation of an object graphs at runtime.
• Validation Framework - a robust UI agnostic framework for creating complex validation rules for business objects either programmatically or declaratively.
• Data binding Framework - a UI agnostic framework for performing data binding.
• Dynamic Reflection - provides a high performance reflection API
• Threading - provides additional concurrency abstractions such as Latch, Semaphore and Thread Local Storage.
• Resource abstraction - provides a common interface to treat the Input Stream from a file and from a URL in a polymorphic and protocol-independent manner.
Notice:
-You can use spring in all sorts of scenarios, from simple stand-alone console applications to fully-fledged enterprise applications using spring’s transaction management functionality and web framework integration.
-It is important to note that the Spring Framework does not force you to use everything within it; it is not an allor-nothing solution. Existing front-ends built using standard ASP.NET can be integrated perfectly well with a Spring-based middle-tier, allowing you to use the transaction and/or data access features that spring offers. The only things you need to do is wire up your business logic using Spring's IoC container and integrate it into your web layer using WebApplicationContext to locate middle tier services and/or configure your standard ASP.NET pages with dependency injection. While the spring framework does not force any particular application architecture, it encourages the use of a well layered application architecture with distinct tiers for the presentation, service, data access, and database.
4. Spring.Net Framework Advantages
1.Spring.Net enables Dependency Injection for your web pages and controls, which mean that you can inject services into pages, configure controls, and all other good stuff that DI buys you.
2. Spring.Net gives you bidirectional data binding with automatic type conversion, which means that you can avoid a lot of ugly code in your code-behind classes that is normally used to move data from the controls to the model and vice versa. This also means that your event handlers/controller methods do not depend on the input controls, but only on the data model, which allows them to be moved into a separate class if so desired (makes their unit testing much simpler).
3. Spring.Net provides a superior data validation framework that allows you to use same validator definitions in multiple places (web pages and service layer, for example), because it is not tied to the UI in any way. It also makes it very easy to compose validation rules, so you will very rarely have to write your own custom validator, and even when you do, it is a much simpler task than with standard ASP.NET validation framework. Not to mention, you can easily change how validation errors are displayed by plugging in appropriate rendering strategy using standard Spring DI.
4. Spring.Net has arguably better localization support, with well defined fallback rules. For example, you don't really need to do anything in your page in order to apply certain resources automatically. All you need to do is follow the simple resource naming convention. Also, unlike in ASP.NET 2.0, where you need to specify whether you want to access global or local resources, with Spring.NET simple GetMessage call will look for resource in the local resource file and then automatically fall back to global resources. Not to menion that if you don't feel like storing resources in the .NET resource files you can easily implement new message source that will access resources from plain text files, XML files, database, content management system, etc. Finally, image localization is supported as well, in a very simple but effective way.
5. Spring.Net also gives you completely configurable strategies for user's culture management. Out of the box you can choose the one that reads culture information from HTTP request, the one that manages it in a session, or the one that stores it in a cookie. You can also easily write your own culture resolver that stores user's culture information in a database, if that's what you need.
6. You can configure master pages using Dependency Injection, which is arguably a better way to do it than by either specifying it within each page or by configuring it globally in web.config. With Spring, you can choose the granularity that best suits your needs and configure it globally, per context, or on a page by page basis.
7. Spring.Net have library for tackling common jobs like transaction management, logging, caching and exception handling. AOP has been described as a method that allows programmers to modularize the way they deal with components that cut across system elements.
5. Why spring.Net?
Because spring.net take all features of .net framework plus all of this points:
Open source framework
Spring provide Patterns of Enterprise Application Architecture by Martin Fowler
And many others.
Most ideas and architectural concepts in Spring are not platform specific
Framework to manage object dependencies throughout its lifecycle
Powerful expression language for manipulating an object at runtime
Spring provide a validation framework Leverage expression support for validating objects based on expressions
Spring provide new feature in .net technologies Dependency Injection
– Object not responsible for looking up resources or dependencies.
– Container pushes resources/dependencies into object by reflection-based calls to constructor and/or properties.
– Promotes a design that is easy to unit test
– Promotes coding to interfaces(Strategy Pattern)
– Enables Dependency Injection for Web Services, Remote Objects and Serviced Components
– Enables Dependency Injection for ASP.NET web pages and controls
Wide range of data access strategies and associated technologies to choose from(Not just ADO.NET),you can use nhibernate O/R …
Transaction Management Abstraction
Established persistence patterns at the API level
Adds Master Pages support to ASP.NET 1.1
Enables bi-directional data binding
Isolates you from the changes in the technology
Another way to think about program structure(AOP)
– Apply common behavior across OO hierarchies “Cross Cutting Concerns”
– Minimize code duplication
– Complementary to good OOP design
– Solves problems that are difficult to solve with OOP
– Leads to cleaner, better modularized code that is easier to maintain and extend.
Examples
– Logging entry/exit/exception to methods
– Performance Metrics
– Observer design pattern
– Caching Method return values
– Security Checks
– Monitoring
– Transaction Management
Object obtained from a Spring IoC container can be transparently advised based on configuration
– XML, Attributes.
– Can also use programmatic API.
Monday, February 21, 2011
Matrix Framework
It’s my idea that handle all required function for the developers to fast develop like (wrapper classes for nhibernate, Spring.Net, transaction handling, Logging, ADO.net, Security framework, e-Payment, Notification, handle exception, Active Directory common function). All of the wrapper classes built in suitable design pattern.
Sunday, February 20, 2011
كلمات قصيده انطردي الان من الجدول للجخ
" انطردي الآنَ من الجدولْ
موتي فالكلُّ هنا ماتوا وأنا اعتدتُ حياتي أَرْمَلْ
واعتدتَ الهَجرَ بلا سببٍ وبرغمِ الحيرةِ لم أسألْ
وظلَلْتُ أسجِّلُ أسماءً وأسطِّرُ خاناتِ الجدولْ
ضُنِّي إحساسَكِ ما شئتِ فأنا مَلِكٌ لا أتوسَّلْ
لا أبكي لفراقِ حبيبٍ أو أترجَّى أو أتذلَّلْ
رقةُ شِعري قَوْلٌ إفكٌ فَفُؤادي مِن صَخْرٍ جَنْدَلْ
علَّقتُ نساءً في سَقْفِي وجلسْتُ فخورا أتأمَّلْ
وغزوتُ عُيوناً لا تُغْزَى غافلتُ رموشاً لا تَغْفَلْ
و زَرَعْتُ النُّسوةَ في أرضٍ لا آخرَ فيها أَوْ أَوَّلْ
ديكتاتوريا إن أُعْطِي ديكتاتوريا إن أَبْـخَلْ
وَقَّعْتُ - أَنَا - صَكَّ الهَجْرِ فالحاكِمُ يَعْزِلُ لا يُعْزَلْ
فانطردي الآن من الجدول
غِيبِي فَلَكَمْ قَبْلَكِ غابوا لا شيءَ يَـجِيءُ وَ لا يَرْحَلْ
ما الوردُ إذنْ لَوْ لَمْ يَذْبُلْ ؟؟ ما الشمسُ إذنْ لو لم تَأْفُلْ ؟؟
لا تَنْتَظِرِينِي نَسْنَاساً أَقْبَلُ يَوْمَاً أن أتَسَلْسَلْ
وَ يَـجِيءَ الناسُ إلى قَفَصِي لِيَـرَوْا عُشَّاقاً تَتَـحَوَّلْ
تتقافزُ كالقِرَدةِ عِشْقَاً وَ تَـمُوتُ هَيَاماً وَ تُوَلْوِلْ
لُمِّي أشياءَكِ و ارتَـحِلِي بَحثاً عن آخرَ قَدْ يَقْبَلْ
أمَّـــايَ .. فلا ثَمَنٌ عِنْدَكِ تَقْبَلُهُ يدايَ لِتَتَكَبَّلْ
إن كان غرامُكِ لِي نَبْعَاً فَنِسَاءُ الدنيا لي مَنْهَلْ
وَ الجدولُ مُكْتَظٌّ جِدَّاً بِكَثِيرٍ مِثْلِكِ بَلْ أجمَلْ
فانطردي الآن من الجدول
غِيبِي وَ تَمَادَيْ في جَهْلٍ فأنا لا أعشقُ مَنْ يَجْهَلْ
إني بَحَّارٌ تَرْفُضُنِي كُلُّ الشُطْآنِ فَأَتَنَقَّلْ
اِعتدتُ السفرَ على مَضَضٍ وَ قَضَيْتُ حياتي أَتَجَوَّلْ
أرتشفُ بلاداً ونساءً فَهُنـا عَسَلٌ وهُنا حَنْظَلْ
و هنا عِشْتُ كَلِصٍ نَذْلٍ وَ هُنَا كُنْتُ نَبِيَّاً يُرْسَلْ
و هنا ذَبَحُوا شِعري عَمْدا وهنا شعري صارَ يُرَتَّلْ
وأنا والغُربةُ ما زِلْنَا نبحثُ عن وطنٍ لِنُظَلَّلْ
صادقتُ الغُربةَ في الغربةِ وقضيتُ سنيناً أَتَعَلَّلْ
بَرَّرْتُ جميعَ حماقاتي وَ ظَنَنْتُ بأني أتَجَمَّلْ
اليومَ أُزِيلُ عباءاتي وَ أُكَشِّفُ عن وجهي الأَوْحَلْ
مَلِّي عينيكِ بِلاَ خَجَلٍ فأنا الـمَوحولُ ولا أخجلْ
أَغْرَتْنِي أحلامُ الصِّبْيَةِ فَعَدَوْتُ إلى حُلْمِي الأمْثَلْ
وَ بدأتُ السفرَ بلا زادٍ وظننتُ بأني أتعجَّلْ
وَ نسيتُ اللهَ.. فأَهْمَلَنِي مَنْ ينسَى اللهَ وَ لا يُهْمَلْ ؟
حُمِّلْتُ بأثقالِ الدُّنيا أهربُ مِنْ ثِقْلٍ للأثقَلْ
و التفَّتْ طُرُقِي مِنْ حَوْلِي واختلطَ الأَقْصَرُ بالأَطْوَلْ
واخْتَلَطَتْ أحْرُفُ لافِتَتِي فَوَقَفْتُ مَكَاني كالأخْطَلْ
لَمْ أُسْطِعْ أن أُكْمِلَ سَيْرِي فجلستُ وحيداً أَتَسَوَّلْ
وَ بَنَيْتُ مَزَاراً وَ مَبِيتاً لا يَصْلُحُ إلاَّ لَلثُّمَّلْ
وَ قضيتُ حياةً واهِنَةً لا تَسْوَى في نَظَرِي خَرْدَلْ
فَعَلامَ تُرِيدِينَ بُكَائِي ؟ وَ أنا ذو قلبٍ مُسْتَعْمَلْ
أَبْلاَهُ الماضي لم يَتْرُكْ شيئاً لِبَلاءِ الـمُستقبَلْ
لا تَتَّهِمِينِي في عِشقِي فأنا أعشقُ حتَّى أُنْحَلْ
والجملُ وإن يعطشْ يصبِرْ وَ كَفِعْلِ الجَّمَلِ أنا أفعَلْ
أَهْلِكْتُ شَبابي وسنيني فَرَمَتْ بِي في صفِّ الكُهَّلْ
وَ وقفتُ بعيداً لأشاهدَ قصةَ عُمرِي وهِيَ تُمَثَّلْ
رفعوا خنجرَهم ودموعي لم تجعلْ أحداً يَتَمَهَّلْ
والتهبَ المسرحُ تصفيقاً وأنا أُطْعَنُ وأنا أُقْتَلْ
فَعَلامَ تظنينَ بِأنِّي آتٍ مِحْرابَكِ أتَبَتَّلْ ؟؟
دَوْرُكِ في الـمَشْهَدِ فَرْعِيٌّ بِوُجُودِكِ أو دُونَكِ يَكْمَلْ
وَكِلانا مكتوفُ الأيدي وَ سِتارُ المسرحِ لا يُسْدَلْ
والـحُكْمُ الصادِرُ في أمرِي حُكْمٌ فَصْلٌ لا يَتَأَجَّلْ
فدعيني في موتي وَحْدِي فأنا والغُربةُ لا نُفْصَلْ
ما دامَ الوطنُ بلا شيءٍ فالموتُ على شيءٍ أفضلْ
فانطردي الآن من الجدول
موتي فالكلُّ هنا ماتوا وأنا اعتدتُ حياتي أَرْمَلْ
واعتدتَ الهَجرَ بلا سببٍ وبرغمِ الحيرةِ لم أسألْ
وظلَلْتُ أسجِّلُ أسماءً وأسطِّرُ خاناتِ الجدولْ
ضُنِّي إحساسَكِ ما شئتِ فأنا مَلِكٌ لا أتوسَّلْ
لا أبكي لفراقِ حبيبٍ أو أترجَّى أو أتذلَّلْ
رقةُ شِعري قَوْلٌ إفكٌ فَفُؤادي مِن صَخْرٍ جَنْدَلْ
علَّقتُ نساءً في سَقْفِي وجلسْتُ فخورا أتأمَّلْ
وغزوتُ عُيوناً لا تُغْزَى غافلتُ رموشاً لا تَغْفَلْ
و زَرَعْتُ النُّسوةَ في أرضٍ لا آخرَ فيها أَوْ أَوَّلْ
ديكتاتوريا إن أُعْطِي ديكتاتوريا إن أَبْـخَلْ
وَقَّعْتُ - أَنَا - صَكَّ الهَجْرِ فالحاكِمُ يَعْزِلُ لا يُعْزَلْ
فانطردي الآن من الجدول
غِيبِي فَلَكَمْ قَبْلَكِ غابوا لا شيءَ يَـجِيءُ وَ لا يَرْحَلْ
ما الوردُ إذنْ لَوْ لَمْ يَذْبُلْ ؟؟ ما الشمسُ إذنْ لو لم تَأْفُلْ ؟؟
لا تَنْتَظِرِينِي نَسْنَاساً أَقْبَلُ يَوْمَاً أن أتَسَلْسَلْ
وَ يَـجِيءَ الناسُ إلى قَفَصِي لِيَـرَوْا عُشَّاقاً تَتَـحَوَّلْ
تتقافزُ كالقِرَدةِ عِشْقَاً وَ تَـمُوتُ هَيَاماً وَ تُوَلْوِلْ
لُمِّي أشياءَكِ و ارتَـحِلِي بَحثاً عن آخرَ قَدْ يَقْبَلْ
أمَّـــايَ .. فلا ثَمَنٌ عِنْدَكِ تَقْبَلُهُ يدايَ لِتَتَكَبَّلْ
إن كان غرامُكِ لِي نَبْعَاً فَنِسَاءُ الدنيا لي مَنْهَلْ
وَ الجدولُ مُكْتَظٌّ جِدَّاً بِكَثِيرٍ مِثْلِكِ بَلْ أجمَلْ
فانطردي الآن من الجدول
غِيبِي وَ تَمَادَيْ في جَهْلٍ فأنا لا أعشقُ مَنْ يَجْهَلْ
إني بَحَّارٌ تَرْفُضُنِي كُلُّ الشُطْآنِ فَأَتَنَقَّلْ
اِعتدتُ السفرَ على مَضَضٍ وَ قَضَيْتُ حياتي أَتَجَوَّلْ
أرتشفُ بلاداً ونساءً فَهُنـا عَسَلٌ وهُنا حَنْظَلْ
و هنا عِشْتُ كَلِصٍ نَذْلٍ وَ هُنَا كُنْتُ نَبِيَّاً يُرْسَلْ
و هنا ذَبَحُوا شِعري عَمْدا وهنا شعري صارَ يُرَتَّلْ
وأنا والغُربةُ ما زِلْنَا نبحثُ عن وطنٍ لِنُظَلَّلْ
صادقتُ الغُربةَ في الغربةِ وقضيتُ سنيناً أَتَعَلَّلْ
بَرَّرْتُ جميعَ حماقاتي وَ ظَنَنْتُ بأني أتَجَمَّلْ
اليومَ أُزِيلُ عباءاتي وَ أُكَشِّفُ عن وجهي الأَوْحَلْ
مَلِّي عينيكِ بِلاَ خَجَلٍ فأنا الـمَوحولُ ولا أخجلْ
أَغْرَتْنِي أحلامُ الصِّبْيَةِ فَعَدَوْتُ إلى حُلْمِي الأمْثَلْ
وَ بدأتُ السفرَ بلا زادٍ وظننتُ بأني أتعجَّلْ
وَ نسيتُ اللهَ.. فأَهْمَلَنِي مَنْ ينسَى اللهَ وَ لا يُهْمَلْ ؟
حُمِّلْتُ بأثقالِ الدُّنيا أهربُ مِنْ ثِقْلٍ للأثقَلْ
و التفَّتْ طُرُقِي مِنْ حَوْلِي واختلطَ الأَقْصَرُ بالأَطْوَلْ
واخْتَلَطَتْ أحْرُفُ لافِتَتِي فَوَقَفْتُ مَكَاني كالأخْطَلْ
لَمْ أُسْطِعْ أن أُكْمِلَ سَيْرِي فجلستُ وحيداً أَتَسَوَّلْ
وَ بَنَيْتُ مَزَاراً وَ مَبِيتاً لا يَصْلُحُ إلاَّ لَلثُّمَّلْ
وَ قضيتُ حياةً واهِنَةً لا تَسْوَى في نَظَرِي خَرْدَلْ
فَعَلامَ تُرِيدِينَ بُكَائِي ؟ وَ أنا ذو قلبٍ مُسْتَعْمَلْ
أَبْلاَهُ الماضي لم يَتْرُكْ شيئاً لِبَلاءِ الـمُستقبَلْ
لا تَتَّهِمِينِي في عِشقِي فأنا أعشقُ حتَّى أُنْحَلْ
والجملُ وإن يعطشْ يصبِرْ وَ كَفِعْلِ الجَّمَلِ أنا أفعَلْ
أَهْلِكْتُ شَبابي وسنيني فَرَمَتْ بِي في صفِّ الكُهَّلْ
وَ وقفتُ بعيداً لأشاهدَ قصةَ عُمرِي وهِيَ تُمَثَّلْ
رفعوا خنجرَهم ودموعي لم تجعلْ أحداً يَتَمَهَّلْ
والتهبَ المسرحُ تصفيقاً وأنا أُطْعَنُ وأنا أُقْتَلْ
فَعَلامَ تظنينَ بِأنِّي آتٍ مِحْرابَكِ أتَبَتَّلْ ؟؟
دَوْرُكِ في الـمَشْهَدِ فَرْعِيٌّ بِوُجُودِكِ أو دُونَكِ يَكْمَلْ
وَكِلانا مكتوفُ الأيدي وَ سِتارُ المسرحِ لا يُسْدَلْ
والـحُكْمُ الصادِرُ في أمرِي حُكْمٌ فَصْلٌ لا يَتَأَجَّلْ
فدعيني في موتي وَحْدِي فأنا والغُربةُ لا نُفْصَلْ
ما دامَ الوطنُ بلا شيءٍ فالموتُ على شيءٍ أفضلْ
فانطردي الآن من الجدول
Subscribe to:
Posts (Atom)