Introducing Adobe Flex
Flex is a framework that helps you build dynamic, interactive rich Internet applications. Flex applications are delivered on the web via the Flash Player or to the desktop via Adobe AIR. You can build applications using the free Flex SDK or Flex Builder, an Eclipse based IDE.
The Adobe Flex product line is the most comprehensive solution for delivering RIAs across the enterprise and over the web. Designed to help developers and development organizations meet the challenges presented by RIAs.
The Flex product line provides a highly productive programming model (Flex framework), integrated Eclipse-based development tools (Flex BuilderTM), and robust data integration services (Flex Data Services) that enable organizations to rapidly deliver solutions that dramatically improve user productivity and increase online revenues, while integrating with existing applications and websites.
Applications delivered with Flex offer a better experience because they take advantage of the browser and Flash Player runtime. Installed on over 97% of Internet-connected PCs, Flash Player provides a consistent, cross-platform runtime that combines a high-performance virtual machine with integrated support for multilingual text display, printing, data manipulation, motion, and multimedia. On top of these capabilities, the Flex framework layers a rich set of user interface components and design principles that encapsulate best practices in interaction design and usability.
Flex and Flash Player also provide the robust connectivity required in the SOC. Flex provides client-side service components that enable applications to interact with any remote server via SOAP web services, REST services, or raw HTTP or custom socket-based protocols. For more sophisticated integration needs, Flex Data Services provides additional support for publish/ subscribe messaging, real-time streaming data, and direct integration with existing server-side JavaTM objects as well as other enterprise back-end applications including messaging, security, and transaction management.
Builder integrated development environment (IDE) provides a robust set of coding, debugging, and visual user interface layout tools that shorten the learning curve for new developers and easily integrate with existing source code management systems. In addition, Flex provides integrated support for unit testing and automated functional testing tools.
Flex and the Adobe Engagement Platform
With the combination of Adobe and Macromedia, Adobe has brought together the best-in-class tools, services, and clients to dramatically reduce the cost and complexity of developing engaging web applications. By combining these powerful technologies, Adobe is delivering an industry-defining development platform for creating applications that dramatically improve how businesses engage with people, processes, and information.
The Adobe Engagement Platform comprises:
- Programming model-The Flex development model (MXML and ActionScript) plays a central role in the platform. By providing a versatile and robust programming model, Flex enables organizations to efficiently deliver RIAs that take advantage of the universal client technology.
- Development and design tools- With products like Adobe Photoshop®, Dreamweaver®, Flash Professional, and Illustrator®, Adobe is a recognized leader in the creative tools market. Through integration with Flex Builder and third-party development tools, Adobe is enabling designers and developers to work together to deliver more engaging experiences.
- Server framework-Adobe server technologies build on existing infrastructure standards like Java EE and .NET, while providing services that simplify integration and extend the capabilities available to rich clients. Beyond the services provided by Flex Data Services, Flash Media Server enables applications to integrate two-way audio and video streaming, while Adobe LiveCycle® software provides services for business process management, document generation, and information assurance.
The goal of the Adobe Engagement Platform is to blend the strengths of Adobe technologies and open standards to provide a versatile foundation for extending the reach of information, processes, and services to customers, partners, and employees anytime, anywhere, and in any medium.
By providing a comprehensive yet open solution for RIA development, Flex enables organizations to extend their existing investments in application logic, infrastructure, and SOA while realizing the benefits that RIAs can deliver for end users, customers, or partners.
Flex product line overview
Flex product family comprises four separate products:
- Flex Software Development Kit (SDK)-The core component library, development languages, and compiler for Flex applications
- Flex Builder IDE-An Eclipse-based development environment that includes code editors, visual layout tools, project management tools, and an integrated debugger
- Flex Data Services-A Java server-based application that enables high-performance data transfer, cross-tier data synchronization and conflict management, and real-time data messaging
- Flex Charting- A library of extensible charting components that enables rapid construction of data visualization applications
Flex runtime architecture
The Flex runtime architecture is closely aligned with the just-in-time deployment model of web applications. The client portion of a Flex application is deployed as a binary file that contains the compiled byte code for the application. Users then deploy this file to a web server just as they would an HTML file or an image. When the file is requested by a browser, it is downloaded and the byte code is executed by the Flash Player runtime.
Once started, the application can request additional data or content over the network via standard HTTP calls (sometimes referred to as REST services) or through web services (SOAP). Flex clients are server agnostic and can be used in conjunction with any server environment, including standard web servers and common server scripting environments such as Java Server Pages (JSP), Active Server Pages (ASP), ASP.NET, PHP, and ColdFusion®.
If the Flex client application is used in conjunction with Flex Data Services, the application has access to additional services. Flex clients can make direct calls to Java objects as well as subscribe to real-time data feeds, send messages to other clients, and integrate with existing Java Message Service (JMS) messaging systems. The Flex Data Services application runs on the server within the Java web container.
Flex development model and application framework
The development process for Flex applications mirrors the process for Java, C#, C++, or other traditional client development languages. Developers write MXML and ActionScript source code using the Flex Builder IDE or a standard text editor. The source code is then compiled into byte code by the Flex compiler, resulting in a binary file with the *.swf extension.
Flex application framework consists of MXML, ActionScript 3.0, and the Flex class library. Developers use MXML to declaratively define the application user interface elements and use ActionScript for client logic and procedural control.
The Flex class library contains Flex components, layout managers, behaviors, and service components. With the Flex component-based development model, developers can create applications using prebuilt components, combine prebuilt components into composite components, or create new components by extending the prebuilt components or their base classes.
The ability to create custom components is one of the most powerful aspects of Flex development. Like other enterprise runtime environments, Flash Player provides a rich set of services that developers can use to construct components. These include display APIs for drawing to the screen, manipulating graphics, and controlling audio or video as well as APIs for accessing network resources, parsing data, and performing calculations. Combined with the built-in layout, data binding, and effects classes in the Flex component API, these provide a complete environment for delivering a wide variety of custom applications.
Note: Content above is an extract from Flex Technical Overview Doc