230 likes | 357 Views
Using Web Services in Flash MX 2004 Pro. in 60 Minutes or Less. Theo Rushin Jr Web Application Developer/Trainer.
E N D
Using Web Services in Flash MX 2004 Pro in 60 Minutes or Less
Theo Rushin JrWeb Application Developer/Trainer I am an avid snowboarder and skier always looking for the deep powder. When I’m not carving my way through the trees or dreaming of the next big snowfall, I work as a consultant at the National Institutes of Health (NIH) where I lead the design and development of many web-based solutions. I have spent the past 6 years establishing myself as an expert Coldfusion and Flash Rich Internet Application Developer and Trainer. During my 6 years of web application development I have created and supported many enterprise-wide web-based applications. I can be reached at rushint@mail.nih.govor on the snow
Presentation Agenda • An introduction to Web Services • Flash MX 2004 and Web Services • Six Easy Steps • Now It’s Your Turn
“What is a Web Service?” According Wikipedia, the free (and mostly accurate) online encyclopedia; A web service is a collection of protocols and standards used for exchanging data between applications or systems. Software applications written in various programming languages and running on various platforms can use web services to exchange data over computer networks like the Internet in a manner similar to inter-process communication on a single computer.
“Why should I consume web services?” The major reasons for using Web services are to gain: • Interoperability among distributed applications that span diverse hardware and software platforms. 2. Accessibility of applications through firewalls using Web protocols. 3. A cross-platform, cross-language data model (XML) that facilitates developing heterogeneous distributed applications.
“What are some of the standards used?” XML SOAP WSDL
“I think I know what XML is” Extensible Markup Language (XML) is a general-purpose markup language for creating special-purpose markup languages. It is capable of describing many different kinds of data. Its primary purpose is to facilitate the sharing of data across different systems, particularly systems connected via the Internet.
“So what is SOAP?” SOAP (Simple Object Access Protocol) defines the XML based message format that applications use to communicate and inter-operate with each other over the internet. The heterogeneous environment of the internet demands that applications support a common data encoding protocol and message format. SOAP makes object access simple by allowing applications to invoke object methods, or functions, residing on remote servers. A SOAP application creates a request block in XML, supplying the data needed by the remote method as well as the location of the remote object itself.
“And what is WSDL?” WSDL (Web Service Description Language - often pronounced "Whiz-Dull".), the proposed standard for how a Web service is described, is an collection of metadata about XML-based service used for describing what business do and how to access their services electronically. We can say WSDL is a XML- Based service IDL (Interface Definition Language) that defines the service interface and its implementation characteristics. WSDL describes the SOAP messages that define a particular Web service.
“What are some of the advantages of using web services?” • Web services provide interoperability between various software applications running on disparate platforms. • Web services use open standards and protocols. Protocols and data formats are text-based where possible, making it easy for developers to comprehend. • By utilizing HTTP, web services can work through many common firewall security measures without requiring changes to the firewall filtering rules. • Web services easily allow software and services from different companies and locations to be combined easily to provide an integrated service. • Web services allow the reuse of services and components within an infrastructure
“What are some of the disadvantages of using web services?” • Web services standards for features such as transactions are currently nonexistent or still in their infancy compared to more mature distributed computing open standards such as CORBA. • Web services suffer from poor performance compared to other distributed computing approaches such as RMI, CORBA, or DCOM. This is a common trade-off when choosing text-based formats. • By utilizing HTTP, web services can evade existing firewall security measures whose rules are intended to block or audit communication between programs on either side of the firewall.
“Where can I find some publicly accessible web services?” • http://www.xmethods.com/ • http://www.strikeiron.com/ • http://www.amazon.com/gp/browse.html/102-2847179-6675355?node=3435361 • http://www.google.com/apis/ • http://www.forta.com/cf/tips/syndhowto.cfm
Flash MX 2004 and Web Services Macromedia Flash MX Professional 2004 provides a powerful, rapid development tool for building web service consumers. New tools and components in Flash MX Professional 2004 simplify and speed the development of web service-based applications.
Flash MX 2004 and Web Services continued Flash MX 2004 comes with two client side methods for connecting to web services. The first is by using the WebServiceConnector component, the second is by using the web service classes and actionscript.
“Are there any disadvantages to consuming web services within Flash?” Both of the methods for connecting to web services in Flash MX 2004 have a couple of disadvantages. • Can be slow when returning large datasets … • The security features of Flash could prevent access to web service …
When returning large datasets It can be really slow when returning larger datasets (1000+). The reason for this is that, even with the MX 2004 speed improvements, it can take a lot of processor power to convert the returned xml into flash actionscript objects. When returning large result sets from a web service it is a far better solution to go with Flash Remoting. Flash remoting will return the result set as AMF instead of XML which has a much faster transfer speed (much more compressed) and does not need to be converted to flash actionscript (as it already is).
“AMF?” In a nutshell … The AMF protocol, which is proprietary to Macromedia, is a very lightweight binary format that cuts the bulk out of packets, meaning data exchange is a lot faster than with XML.
Security – Cross domain policy The second disadvantage of using the new built in client side web service features of Flash MX 2004 are the security features. In order to use a web service that is not located on the same server, the owner of that service would need to place a cross domain policy file allowing the flash movie access to it's service.
“Cross domain policy?” Since you asked … For security reasons, a Macromedia Flash movie playing in a web browser is not allowed to access data that resides outside the exact web domain from which the SWF originated. A cross-domain policy file is a simple XML file that gives the Flash Player permission to access data from a given domain without displaying a security dialog. When placed on a server, it tells the Flash Player to allow direct access to data on that server, without prompting the user grant access. (Macromedia TechNote tn_14213)
So why should I even use Flash?(instead of ColdFusion, ASP.NET, etc.) • Greater degree of interactivity. • Combine audio and video to produce a richer experience. You don’t have to choose! You can leverage your existing server-side code, written in Coldfusion, .Net, PHP, etc., to consume web services using Flash MX 2004!
“What do I need to do to get started?” • Discover the web service. • Deploy the user interface components. • Register the web service in Flash. • Configure the WebServiceConnector. • Bind the user interface components to the WebServiceConnector. • Trigger the WebServiceConnector. And That’s It!
Additional Reading • Macromedia Flash MX Professional 2004 Application Development: Training from the Source • Macromedia Flash MX 2004 Professional for Server Geeks • http://www.macromedia.com/devnet/mx/flash/webservices.html