Social Media and Cloud Computing are two significant technology trends that changed the playing field in recent years and will no doubt, continue to shape the future of the software industry for years to come. By contrast, innovation in middleware, the technology that connects software components or people and their applications, has remained stagnant for nearly a decade. Much of the infrastructure middleware to emerge in the past years has suffered from an unhealthy fixation with Web Services, XML and document-oriented processing, whereas a number of larger vendors simply re-packaged their messaging and application hosting products in an attempt to keep up with the shifting landscape.
Recently, there is renewed focus on work flow and process automation middleware. Work flow applications and Business Process Management (BPM) tools often improve process efficiency and allow companies to reduce operational cost. However, it has been observed that a large number of process automation projects do not deliver on their promised value because they fail to integrate one of the most critical resources of a business: the people.
Businesses are increasingly delivering services, wherein employee knowledge and intelligence are the keys to success. As a result, social media, business intelligence and collaboration technologies are becoming critical facilitators of process efficiency. The goal of any productivity tool should be to make employees smarter and more effective, not just to automate their jobs. Unfortunately, work flow tools and applications that are good at automating business processes and reports, are often not effective at enabling cooperative task processing or effective relationship building with their target audiences.
The next generation of software must tap into the social intelligence of work flow applications, fostering a new level of engagement and visibility into the relationships such applications are intended to manage, thereby improving productivity. For middleware technologies to remain relevant they must evolve, embracing the cloud application model and leveraging the principles of social computing.
Cooperative Data Processing
The elephant in the room remains the same. Having arrived at the data center in the late 80's with proliferation of Client/Server and Network Computing the elephant steadily inched it's way across the architectural landscape trampling agility and innovation under foot. And even though legions of architects tried to hold it back and armies of software vendors tried to wish it away, nothing could halt it's steady progress.
Ever since the introduction of pipe-line processing into software design, architects have been looking for ways to effectively exploit the technique and allow multiple participants to collaboratively work on the same computing problem. Application of the assembly-line metaphor to data processing is a powerful idea. It allows businesses to automate common, multi-step processes such as billing, invoicing or data synchronization by removing unnecessary human interaction. To achieve this the mechanism for controlling logic flow had to be abstracted as a separate entity: the business process work flow.
In traditional systems control of the work flow was procedural and was carried out by a main program or server that was programmed to call different routines. Database stored procedures and application server components are a good example of this approach. However, to provide a flexible way of modeling process flows a different technique was required, wherein control of logic flow is shared by multiple participants, thereby achieving a so-called inversion of control. This technique, first made popular some 20 years ago, produced a broad range of software products resulting in a multi-billion dollar market for application integration technologies and services.
Taking a pragmatic look at the software market for integration technologies and sifting through veritable mountains of marchitecture [1] material it may be useful to distill these products down to the critical problem they are all attempting to solve. How can we provide an easy way for people, applications and business processes to engage in cooperative processing of shared data?
As technology marches forward the primary interface between users and their applications continues to change. How does the enterprise architecture evolve to accommodate new modes of system interaction as they evolve from dumb terminals to personal desk tops, browser-based applications and finally to mobile devices and smart phones? Solving the problem of cooperative data processing requires that all system participants have equal capabilities and access to data, allowing them to solve business problems and control the system's logic flow in a collaborative fashion. Providing a unified computing model for such systems would allow IT to regain control of the architecture by reducing it's complexity and lowering cost in the process. The resulting systems would be more flexible and agile then their predecessors facilitating new synergies and innovation.
Collaborative Computing: Beyond the Cloud
Recent Cloud Computing initiatives are a first step in getting us closer to addressing the challenge of cooperative processing. Current cloud solutions are primarily focused on infrastructure that facilitates dynamic provisioning, remote deployment, application partitioning and security. These are classic data center problems being tackled by the likes of Amazon and VMWare. Cloud infrastructure has a number of benefits, the most immediate being cost. Although far more important is the mind set and cultural change that is being affected by introduction of Software as a Service (SaaS). From an architect's perspective however, the value of cloud infrastructure is less obvious, as it enables developers to build application silos faster, exacerbating existing integration problems. As such, lack of application integration within the cloud results in more of a "sky computing" model with many fragmented application clouds that must be knit together with additional software.
Cloud infrastructure may change the economics of computing resource ownership, but it does little to address interoperability between business applications hosted in the cloud or elsewhere. In fact integration may very well be the the sleeper issue of cloud computing. As with other middleware initiatives, emerging cloud integration vendors are mostly re-hosting application integration software onto cloud infrastructure and claiming early victory.
Such an approach may give cloud integration vendors a first move advantage but has it's own set of challenges to overcome. Upgrades, compatibility, security, performance and scalability to name a few. Software footprint and the sheer number of components that comprise a typical integration solution may also make them impractical. Effective solutions must therefore take an altogether different approach to integration.
Collaborative Computing presents a unified data processing model in which Services, Processes and People collaboratively work on shared data towards a common goal. The paradigm reduces system complexity and offers a possible solution to the cooperative processing and cloud integration dilemma that many enterprise architects are facing today. Instead of building such systems from scratch, developers may now have the option of buying them.
The term collaborative defines the relationship between system components. Participants of a collaborative system are considered equipotent peers, simultaneously being able to act as both client and server, having equal responsibilities and roles. Collaborative system components function cooperatively by sharing state information and data resources.
Collaborative System Components
Compared to other middleware, a collaborative system advocates for direct (non-brokered) communication using “smart” peers, flattening the architecture into a single layer of components wrapped in a network communication fabric as illustrated in the diagram.
Unlike non-collaborative systems, participants may interact with each other directly using a common application programming interface and coordinate access to shared resources using the same governance and security model.
Collaborative computing integrates key aspects of social networking and distributed application principles into a unified data processing platform; and identifies critical properties that are essential to a successful implementation [2]. The six properties that define a collaborative system are: Equipotency, Consistency, Isolation, Accountability, Pertinence and Persistence. This model cuts across several technology areas and data processing techniques in order to achieve it's goal.
Enabling a Social Enterprise
By its nature, any collaborative system is a social network built around the data and information assets of its participants. It's membership may include support staff, employees, customers and many other contributing entities such as software services, mobile devices or even business processes.
Participants may engage in exchange of structured data either in point-to-point fashion or via group communication. Members may be selectively notified of any critical events that occur within the system and may react to such events. System participants may dynamically form virtual communities, advertise their state and available data channels as well as query data format and content relevance of such channels.
Collaborative systems build on a number of critical capabilities found in Service Oriented Architecture, Event Driven Computing, and Structured Data Management.
Although the collaborative model overlaps a number of disciplines it is not an architectural style or an approach to system design. Rather, the term defines a programming paradigm that incorporates aspects of social computi
สังคมและการใช้งานคลาวด์มีแนวโน้มของเทคโนโลยีที่สำคัญสองที่เปลี่ยนสนามเล่นในปีที่ผ่านมาและจะไม่มีข้อสงสัย การสร้างอนาคตของอุตสาหกรรมซอฟต์แวร์ปีมา โดยคมชัด นวัตกรรมในมิดเดิลแวร์ เทคโนโลยีที่เชื่อมต่อคน หรือซอฟต์แวร์คอมโพเนนต์ และโปรแกรม ประยุกต์ มียังคงนิ่งในเกือบทศวรรษ ของมิดเดิลแวร์โครงสร้างออกในปีผ่านมาได้รับความเดือดร้อนจากการเบีไม่แข็งแรงกับเว็บเซอร์วิส XML และเน้นเอกสารประมวล ผล ในขณะที่จำนวนผู้จัดจำหน่ายขนาดใหญ่เพียงแบ่งบรรจุของข้อความ และแอพลิเคชันโฮสต์ผลิตภัณฑ์ในความพยายามที่จะติดตามแนวนอนเลื่อนลอยเมื่อเร็ว ๆ นี้ มีเน้นการทำงานขั้นตอนและกระบวนการทำงานอัตโนมัติมิดเดิลแวร์ต่ออายุ โปรแกรมประยุกต์ขั้นตอนการทำงานและเครื่องมือการจัดการกระบวนการธุรกิจ (BPM) มักจะปรับปรุงประสิทธิภาพกระบวนการ และอนุญาตให้บริษัทสามารถลดต้นทุนในการดำเนินงาน อย่างไรก็ตาม มีการสังเกตว่า จำนวนโครงการอัตโนมัติกระบวนการไม่นำส่งค่าตามสัญญาของพวกเขาเนื่องจากพวกเขาล้มเหลวในการรวมทรัพยากรสำคัญที่สุดของธุรกิจอย่างใดอย่างหนึ่ง: คนBusinesses are increasingly delivering services, wherein employee knowledge and intelligence are the keys to success. As a result, social media, business intelligence and collaboration technologies are becoming critical facilitators of process efficiency. The goal of any productivity tool should be to make employees smarter and more effective, not just to automate their jobs. Unfortunately, work flow tools and applications that are good at automating business processes and reports, are often not effective at enabling cooperative task processing or effective relationship building with their target audiences.The next generation of software must tap into the social intelligence of work flow applications, fostering a new level of engagement and visibility into the relationships such applications are intended to manage, thereby improving productivity. For middleware technologies to remain relevant they must evolve, embracing the cloud application model and leveraging the principles of social computing.Cooperative Data ProcessingThe elephant in the room remains the same. Having arrived at the data center in the late 80's with proliferation of Client/Server and Network Computing the elephant steadily inched it's way across the architectural landscape trampling agility and innovation under foot. And even though legions of architects tried to hold it back and armies of software vendors tried to wish it away, nothing could halt it's steady progress.ตั้งแต่ที่แนะนำในการออกแบบซอฟต์แวร์การประมวลผลรายการท่อ สถาปนิกจะมองหาวิธีที่จะใช้เทคนิคอย่างมีประสิทธิภาพ และทำให้หลายคนร่วมกันทำงานปัญหาระบบคอมพิวเตอร์เดียวกัน แอพลิเคชันของเทียบสายการประกอบการประมวลผลข้อมูลเป็นความคิดที่มีประสิทธิภาพ จะช่วยให้ธุรกิจดำเนินกระบวนการทั่วไป หลายขั้นตอนเช่นการเรียกเก็บเงิน ออกใบแจ้งหนี้หรือข้อมูลตรงออกโต้ตอบมนุษย์ไม่จำเป็น เพื่อให้บรรลุนี้กลไกสำหรับควบคุมกระแสตรรกะได้จะออกเป็นแยกต่างหาก: ธุรกิจกระบวนการลำดับงานในระบบแบบดั้งเดิม ควบคุมขั้นตอนการทำงานถูกขั้นตอน และถูกดำเนินการ โดยโปรแกรมหลักหรือเซิร์ฟเวอร์ที่โปรแกรมเรียกคำสั่งต่าง ๆ ขั้นตอนการจัดเก็บฐานข้อมูลและคอมโพเนนต์ของเซิร์ฟเวอร์แอพลิเคชันเป็นตัวอย่างที่ดีของวิธีการนี้ อย่างไรก็ตาม ให้มีความยืดหยุ่นในการกระบวนการขั้นตอนการสร้างแบบจำลองเทคนิคต่าง ๆ ที่ถูกต้อง นั้นควบคุมกระแสตรรกะก็ร่วมหลาย จึงบรรลุกลับเรียกว่าควบคุม เทคนิคนี้ ก่อน ทำยอดบาง 20 ปีที่ผ่านมา ผลิตผลิตภัณฑ์ซอฟต์แวร์ในตลาดมูลค่าหลายพันล้านดอลลาร์สำหรับเทคโนโลยีการรวมโปรแกรมประยุกต์และบริการที่หลากหลายดูปฏิบัติที่ตลาดซอฟต์แวร์รวมเทคโนโลยี และตะแกรงผ่านเห็นภูเขาของ marchitecture [1] วัสดุที่อาจเป็นประโยชน์สกัดผลิตภัณฑ์เพื่อปัญหาสำคัญพวกเขาทั้งหมดพยายามที่จะแก้ วิธีใดเราจึงสามารถให้วิธีง่ายสำหรับคน โปรแกรมประยุกต์ และกระบวนการทางธุรกิจในการประมวลผลข้อมูลร่วมสหกรณ์เป็นเทคโนโลยี marches หน้า อินเตอร์เฟซหลักระหว่างผู้ใช้และโปรแกรมประยุกต์ยังเปลี่ยน ลักษณะสถาปัตยกรรมองค์กรไม่พัฒนาเพื่อรองรับโหมดใหม่ของระบบโต้ตอบกับพวกเขาพัฒนาจากเทอร์มินัลใบ้กับท็อปส์ซูโต๊ะส่วนบุคคล ยุกต์เบราว์เซอร์ และอุปกรณ์จนถึงโทรศัพท์มือถือ และโทรศัพท์มือถือสมาร์ท แก้ปัญหาของการประมวลผลข้อมูลโดยต้องร่วมระบบมีความสามารถเท่ากันและเข้าถึงข้อมูล ทำให้แก้ปัญหาทางธุรกิจ และควบคุมกระแสตรรกะของระบบในการทำงานร่วมกัน แบบประมวลผลรวมระบบดังกล่าวจะอนุญาตให้สามารถควบคุมให้สถาปัตยกรรมโดยการลดมันมีความซับซ้อน และลดต้นทุนในกระบวนการ ระบบเกิดขึ้นจะมีความยืดหยุ่น และคล่องตัวมากขึ้น แล้วบรรดาลูกหลานอำนวยความสะดวกใหม่แยบยลและนวัตกรรมใช้งานร่วมกัน: เหนือเมฆริเริ่มการใช้งานคลาวด์ล่าสุดคือ ขั้นตอนแรกการเราเข้าไปแก้ปัญหาความท้าทายในการประมวลผลแบบมีส่วนร่วม เป็นโซลูชั่นคลาวด์ปัจจุบันจะเน้นให้โครงสร้างพื้นฐานที่อำนวยความสะดวกในการเตรียมใช้งานแบบไดนามิก ใช้งานระยะไกล แอพลิเคชันการพาร์ทิชัน และความปลอดภัย นี้เป็นคลาสสิกข้อมูลศูนย์ปัญหาถูกแก้ได้ โดยชอบของ Amazon และ VMWare โครงสร้างพื้นฐานคลาวด์มีประโยชน์ มากเป็นต้นทุน ถึงแม้ว่ามีความสำคัญมากกว่าจิตใจวัฒนธรรม และการตั้งค่าการเปลี่ยนแปลงที่ได้รับผลกระทบจากการแนะนำซอฟต์แวร์เป็นบริการ (ซาส) จากมุมมองของสถาปนิก อย่างไร ตามมูลค่าของโครงสร้างพื้นฐานคลาวด์ได้น้อยชัดเจน ให้นักพัฒนาสามารถสร้างแอพลิเคชันไซโล ดีปัญหารวม เช่น ขาดการรวมแอพลิเคชันภายในเมฆเกิดขึ้นแบบ "สกายคอมพิวเตอร์" กับเมฆอยู่อย่างกระจัดกระจายโปรแกรมประยุกต์จำนวนมากที่ต้องถักร่วมกับซอฟต์แวร์เพิ่มเติมโครงสร้างพื้นฐานคลาวด์อาจเปลี่ยนเศรษฐศาสตร์คอมพิวเตอร์ทรัพยากรเป็นเจ้าของ แต่ไม่น้อยที่อยู่ทำงานร่วมกันระหว่างโปรแกรมประยุกต์ทางธุรกิจที่โฮสต์ ในเมฆ หรือที่อื่น ๆ ในความเป็นจริงรวมดีอาจเมฆออกนอนแอร์คอมพิวเตอร์ เช่นเดียวกับโครงการอื่นมิดเดิลแวร์ ผู้จัดจำหน่ายรวมเมฆเกิดใหม่ส่วนใหญ่โฮสต์แอพลิเคชันรวมซอฟต์แวร์บนโครงสร้างพื้นฐานคลาวด์อีกครั้ง และอ้างชัยชนะก่อน
Such an approach may give cloud integration vendors a first move advantage but has it's own set of challenges to overcome. Upgrades, compatibility, security, performance and scalability to name a few. Software footprint and the sheer number of components that comprise a typical integration solution may also make them impractical. Effective solutions must therefore take an altogether different approach to integration.
Collaborative Computing presents a unified data processing model in which Services, Processes and People collaboratively work on shared data towards a common goal. The paradigm reduces system complexity and offers a possible solution to the cooperative processing and cloud integration dilemma that many enterprise architects are facing today. Instead of building such systems from scratch, developers may now have the option of buying them.
The term collaborative defines the relationship between system components. Participants of a collaborative system are considered equipotent peers, simultaneously being able to act as both client and server, having equal responsibilities and roles. Collaborative system components function cooperatively by sharing state information and data resources.
Collaborative System Components
Compared to other middleware, a collaborative system advocates for direct (non-brokered) communication using “smart” peers, flattening the architecture into a single layer of components wrapped in a network communication fabric as illustrated in the diagram.
Unlike non-collaborative systems, participants may interact with each other directly using a common application programming interface and coordinate access to shared resources using the same governance and security model.
Collaborative computing integrates key aspects of social networking and distributed application principles into a unified data processing platform; and identifies critical properties that are essential to a successful implementation [2]. The six properties that define a collaborative system are: Equipotency, Consistency, Isolation, Accountability, Pertinence and Persistence. This model cuts across several technology areas and data processing techniques in order to achieve it's goal.
Enabling a Social Enterprise
By its nature, any collaborative system is a social network built around the data and information assets of its participants. It's membership may include support staff, employees, customers and many other contributing entities such as software services, mobile devices or even business processes.
Participants may engage in exchange of structured data either in point-to-point fashion or via group communication. Members may be selectively notified of any critical events that occur within the system and may react to such events. System participants may dynamically form virtual communities, advertise their state and available data channels as well as query data format and content relevance of such channels.
Collaborative systems build on a number of critical capabilities found in Service Oriented Architecture, Event Driven Computing, and Structured Data Management.
Although the collaborative model overlaps a number of disciplines it is not an architectural style or an approach to system design. Rather, the term defines a programming paradigm that incorporates aspects of social computi
การแปล กรุณารอสักครู่..
