الاثنين، ٢٠ أكتوبر ٢٠٠٨
يعنى إيه مبرمج ؟!!!!!!
المتعارف عليه إنى لو اتعلمت كام لغة برمجة أو لغة واحدة حتى أصبحت مبرمج !!!
طيب ... يعنى ايه برمجة !!
البرمجة هى وضع حل لمشكلة ما وترجمة ذلك الحل للحاسب الآلى لإتاحة إستخدامه العملى(طبعا أنا بتكلم عن برمجة الكمبيوتر)
واضح من التعريف أن هناك شيئيين (وضع حل)و (ترجمة ذلك الحل)
وضع الحل : وهذا يأتى عن طريق دراسة المشكلة من وجهة نظر المستخدمين ثم تصميم الحل المفترض لتلك المشكلة
ترجمة الحل : فى هذه المرحلة نقوم بأخذ التصميم المفترض لحل لمشكلة ثم ترجمته بلغة برمجه يفهمها الحاسب
يبقى لو انا بعرف لغة برمجة فقط يبقى إسمى مترجم للحاسب!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
من هنا لكى أصبح مبرمج يجب أن أهتم بكيفية تصميم ووضع الحل النموذجى لتلك المشكلة
ويهتم بذلك عدة علوم للحاسب الآلى مثل علم هندسة البرمجيات ولغة التصميم لموحدة UML و البرمجة الكائنية OOP
أرجو أن أكون استطعت إضاحة وجة نظرى فى ذلك لموضوع
وللحديث بقية إنشاء الله
هندسة البرمجيات Software Engineering
الأربعاء، ١٥ أكتوبر ٢٠٠٨
What is Service-Oriented Architecture?
Service-Oriented Architecture (SOA) is a new way of thinking about enterprise IT Architecture. SOA is about associating business process with IT. SOA represents a natural evolution of proven software architectural principles or design patterns commonly implemented in object-oriented systems.
SOA defines a paradigm and an architecture in which a group of related software components with an autonomous nature and a high level abstraction that carry out a given business process function, and these components can communicate with each other within the same enterprise, and with other services exposed by other enterprises. SOA is not a replacement for component architecture; rather it neatly complements the component architecture. While component architectures enhance reusability at a finer grain level, SOA can enhance reusability at a coarser grained level. Therefore a given service might very well be developed using well-defined component frameworks such as EJB, CORBA or .NET Remoting.
Service-Oriented Architecture has regained significance at this time because of the emergence of new technologies that are based on open standards that allow disparate systems to communicate in a common fashion.
The principles of SOA require that the services should:
- Have behavior that is clearly defined by a published interface contract.
- Have network addressable interfaces or endpoints.
- Be dynamically discoverable and usable.
- Emphasize interoperability.
Services are offered at a business level of abstraction which renders the interface as a business interface i.e. a contract. The contract is a mechanism that allows systems to be formalized, that is a set of operations semantically in relationship behind an interface, communication policies, pre-conditions and post-conditions for the collaboration such as security context, transactional behavior, session management, etc, and invariants such as policies for interacting with. Dependencies between services are regarded by the pairing of preconditions and post-conditions, though very loose coupling should minimize these dependencies.
One success factor for SOA is providing well-defined contracts with which other systems or applications can interact and significantly decreases the dependency on coding by eliminating the need to know and write to APIs.
Legacy and new applications are "wrapped" using the contracts, and they become provider of some services. The process of wrapping the legacy application into a service abstracts the complexities of individual applications and allows for what is known as "loose coupling" of services.
A SOAP application called Business Process is an orchestration of services, that is to say, it's an interaction semantically related messages between services, which process, transform and routes them to achieve a business goal. There are languages to specify the former orchestrations, such as Business Process Execution Language (BPEL) and XLANG.
An enterprise approach for SOA will seek to restate all business processes as services that communicate with each other and potentially with services outside of the enterprise. An organization will already have a number of systems already in place to support the business. These legacy systems are often disconnected from each other, or if not, then they are often tightly coupled or require manual intervention when communicating with each other. Legacy systems can be brought into SOA by providing "service wrappers" that would wrap around the system exposing the application functionality as services while allowing the existing technology to be reused. Over time, applications can be replaced or re-architected without affecting the entire enterprise so a long as the interface provided by the service wrapper remains enforced.