WebObjects • 1:00:24
This session presents examples and case studies of how WebObjects has been used to bring information to the web, streamline business operations, and solve real-world problems.
Speakers: Toni Trujillo-Vian, Bob Davis, Matt Firlik, Thomas Lehmann, Michael Buening
Unlisted on Apple Developer site
Transcript
This transcript was generated using Whisper, it may have transcription errors.
Good morning, everyone, and thank you for coming to our first session on the last day of the developer conference. I realize it's really early and appreciate you getting up to join us. Can I see a show of hands of people who went to the event last night? Wow. That's great. And you guys still got up this morning. Awesome. So our first session today is our WebObjects Solutions session where we're showcasing a few of our developers who we've invited to come up and share what they've done. Bob Fraser is actually going to be your MC for the session this morning, so I'll bring up Bob. Thank you.
so there really are two of us we're very pleased to have uh... representation from four of our customers here and they'll each give uh... presentation on their technologies in in four different areas and their experiences uh... with web objects and we've asked him to you know give a little background not only on the the project that they're doing but kind of like the you know how they you know used uh... web objects and you if they made any transitions and give us some feedback on what and why kind of thing. So I think you'll find this very interesting. Thank you.
their slides. Okay. So as I mentioned, they are, you know, going to go beyond just what their particular application is and how they utilize WebObjects and what particular aspects of it that they found interesting. So I'd like to introduce our first speaker, Bob Davis, with the Collaboratory Project at Northwestern University.
in my hand here. So are we all powered by Krispy Kreme this morning? God, I was really looking for something else. Here we go, Krispy Kreme. So as Bob said, my name is Bob Davis and I'm the project manager for the Collaboratory Project at Northwestern University. Let's see if I can get this to change. There we go. So here's a picture of our homepage and our address, collaboratory.newnet.net.
And we sort of joke, one of the hardest things we ever have to learn to do is learn, first of all, to pronounce Collaboratory, and second of all, to spell it. And we actually work with K-12 students and teachers, so it's kind of tricky sometimes. So what is the Collaboratory project? It's an easy-to-use web-based collaborative environment that teachers use to develop project-based activities that are benchmarked to Illinois learning standards and goals. And as I said, this is our homepage, and I welcome you all to come visit us. It's very simple to navigate. I'm not going to go through a lot of it today, but there's basically five or six buttons that will lead you to most of the pertinent information if you'd like to go and learn more about the Collaboratory, learn how to participate, learn about some of our community, see who our staff is. And there's actually a search mechanism there also, so if you just want to see some of the projects that teachers have created, you can go and sort of search by curricular and grade area and sort of get a sample of some of the things without actually creating an account. And of course, you can log into the Collaboratory project.
So just to give you a little bit of information, I'm part of the IT organization at Northwestern University. And the Collaboratory Project is really sort of an information technology outreach into the Illinois K-12 community. We help educators learn to integrate network technologies into their curriculum. And it's really a $2.2 million investment over the course of five years. Our original funding came from SBC Ameritech with seed money, and now we're funded by the Illinois State Board of Education with some additional money from SBC and some help from vendors like Apple and vendors like Sun who provide hardware for some of the things that we're doing.
We really like to think of the things we do as sort of scaffolding. We're not from the School of Education. We're part of information technology. What we do is provide an online resource for teachers to use. We don't produce any content. Everything that's in the Collaboratory is really things that have been produced by teachers. We've been in existence five years, so it's really a very mature, sort of well-developed set of resources and services. We really sort of attempt to try to empower teachers and students themselves. Teachers manage all content. It's really their responsibility to approve anything that is put up on the Internet that reflects their students' work. It has to agree with their acceptable use policies in their schools and their school districts.
Teachers create all of the accounts that students use, manage all of the content. We don't do anything like that. So we're really empowering the teachers to take control of the environment. The students can access the Collaboratory at any time. They can access it in a computer lab. They can open up their iBooks, sit down in the hallway, and access the Collaboratory. They can access it from home. They can access it at their grandparents' house, showing them the things that they're doing. So it's really a 24-hour-a-day, 7-day-a-week resource that's available to them to use. The Collaboratory is really designed to encourage sharing and collaboration. We're the Collaboratory Project, so that sort of makes sense. And also, over the course of five years, we really have developed an archive of replicable sort of model projects that have been developed by Illinois teachers and match Illinois learning standards.
I'm sorry, but we're going to Just a few statistics. We have roughly 662 participating schools from the state of Illinois. That sort of represents 122 different school districts. 2,000 or more Illinois teachers have developed projects and worked with us. There's over 4,000 different projects and resources, and I'll explain that a little bit more, what that means. And we've had over 50,000 logins into the Collaboratory Project in the last year And that's not browsing our website. That's actually students and teachers doing work in the collaboratory.
So here's our login page. Very simple designs. Once you log in, I'm going to spend a few minutes sort of showing you some of the aspects of the collaboratory, like alerts and interests, the communication services that are integrated across all of the communities, what we call projects and activities, the various resources that teachers use to work with those activities, our online e-courses that we've developed, and our whole volunteers, ask an expert sort of knowledge-based system that we've developed. And all this has been developed in WebObjects over the course of the last two years.
So when a teacher or student logs in, they basically come to what we call their headlines page. The headlines page is customizable so that they can be receiving some up-to-date information whenever they log in, and they can sort of set the time frame that they want to be aware of things that are happening in the collaboratory. So in this example, we're seeing some... When a student logs in, they can see any sort of announcements that the collaboratory might like to make them aware of. They can see if they have any alerts. If they're a teacher and any content has been added to any project that they've been managed, they get various alerts and links that they can directly go and manage that content, approve it, edit it, delete it, whatever is important for them to do. They also get sort of tickled about if they have any messages. Those messages can be from their students. It can be messages from other teachers. It can be messages from any collaboratory participant. They also can see if they have any invitations. Invitations can be sent out by teachers to other teachers and students to participate in shared projects that they might have. You also get links to your project calendar. So if you're a student, you can see exactly if there's anything happening today or this week or in the coming month. And finally, you can see if there's any new interests that may have occurred. And interests are things that you're interested in the Collaboratory, you sort of fill out a profile, and anything new that's been created in the Collaboratory in the whatever time frame you set, you then get direct links to it. So if you're interested in math, if you're interested in science, or if you're interested in haiku poetry, you can attempt to sort of keep in contact with all of the things that are happening in the Collaboratory. There's also search mechanisms where you can go directly to it.
So we have an integrated set of internal messaging, very similar in a lot of ways to email, but it's purely internal for collaboratory participants. Anybody who knows email would feel quite comfortable using this. We have a set of project-based calendars, so any project that a student is involved with, they'll have a calendar for it. And actually, students use this as sort of their jump point generally. When they log in, quite often they'll check their messages, go look at their calendar, see if they have any activities or events occurring on that day. We also have an online discussion room, chats that students and teachers can use. We have threaded discussion forums that can be integrated with any project.
The Collaboratory project is really, the main focal point is a curriculum unit, a project that a teacher creates. This is some examples of screens of sort of forms-based screens, how a teacher would create a project. Each project can have a series of activities. These activities are all linked to resources that we've created and are all aligned with Illinois learning standards. examples of the interface we built. So we've actually taken all of the Illinois learning standards and put them in our own database and can, through a very nice, easy interface, link them directly to any activities that the teachers are doing. This is really important. I know probably a lot of you aren't sort of involved in education right now, but this is very important in K-12 education. You're sort of teaching to the standards in a lot of states, so it's very important to be able to do that.
So I'm going to show you very quickly sort of our four core resources that have been built. It's called the Cyberry, MediaSpace, Internet Book Club, and the Survey Studio. So the first one I want to show is an example of a cybery force that a teacher developed called robots and robotics, sort of a typical curriculum unit you might have. A cybery is an online library of internet resources or internet URLs that are pre-searched and customized for a particular curriculum unit. So a teacher can create a cybery for a curriculum unit, can create categories under that cyber. And under those categories, there can be a whole series of links that a student can click on and go off onto the internet. The cyber is available for any student who has access to that project. The cyber can also be used by other teachers in their projects that they develop. This is an example of what we call media space, physics, AP, thermodynamics.
This is just a very simple place for students to publish on the Internet. It can have text, graphics, sound, and video incorporated into it. This is something called the Internet Book Club, and it's exactly like it sounds. Students can post book reviews, original compositions, original essays, share and collaborate with other students. And I always throw this one up for shock value, roadkill monitoring. This is a real project, sort of an environmental science project in Illinois, and I won't get into the gory details of it, but what they're using here is our survey studio, which is an online way to do data collection, pre and post-testing. It's all browser-based. Data can be displayed in pie charts and bar charts and various other graphs.
We also have developed a whole series of online e-courses. As we started to extend into throughout the state of Illinois, we couldn't really go out and do workshops for everybody, so we've moved all of our workshops online. We wrote our own interface in order to do this. And we really very heavily use volunteers who man our ask and expert system and sort of man our knowledge base and help out in the discussion rooms and conference centers. So some specifics.
That should give you some idea of what we do. We've been doing this for a little more than two and a half years now. We've been using WebObjects. We're at WebObjects 5.0. Our deployment is on a Sun server, which is an educational grant from Sun. It's an E250, and we're running Apache. Our development is all still done on Windows 2000 because it's sort of legacy systems, although we're really hoping now to move to OS X. Our database is Microsoft SQL Server. Our database servers are all Dell, and right now we're using JTurbo JDBC drivers. Our web server is IIS, and we're basically using CVS as our version control system. At any given time, we have, oh, 7 to 10 developers, both full and part-time. Four full-time staff and then a whole series of Northwestern University students are involved in it. This is our staff here. And I don't know if any of you are on the Omni group list, but Jonathan Rockkind is one of our lead programmers. He's a very heavy contributor.
Unique problems solved. We really feel like we sort of know the directions we're going, and we can really start to reap the benefits of object-oriented programming. So we've tried to develop a whole series of what we loosely call learning media and display objects that really form the core basis of all of our next generation of applications that we're writing for the Collaboratory. Learning objects, loosely, we describe as things like objects that allow for reflection, assessment, annotation, pure critiquing, focus feedback, things like that that really allow for enhanced collaboration with the work that students are putting up. Media objects are sort of just like they sound, ways of displaying various media types. And then display objects that really just give us consistent ways for interface design, layout, navigation, and sequencing. Here's an example of one of our new applications that we're writing called the ePortfolio. A student might have a project that they wish to publish. They would pick a display component, display object, from a series of things that we make available.
They can then upload content in there. That content can be any media type, can be text, graphics, sound, video, PDFs, URL links, anything like that. Each of this is divided up into various components and sort of interchangeable. All of these are reusable components that we can plug into all of our next generation of applications. Sort of up at the top, you can kind of see a little icon for F and D. Those stand for our discussion forum. So at any point, any of these objects can have feedback and critiques and reflection added to it. That might be a discussion forum. It might be a chat room. It could even be a library that might be added to it. Thank you.
As far as reusability, all of our accounts, groups, authentication, and permissions can all be reused very easily. We have our set of core learning media and display objects. All our JavaScript and style sheet components are completely reusable. And we've developed a whole series of interface widgets that give all of our applications a real consistent look and feel to the interface design.
So we're expecting to grow to over 100,000 accounts in 2003. We plan to add additional WebObjects servers and load balancing as needed. We'll be upgrading to Microsoft SQL Server 2000 and upgrading our QuickTime servers to handle the increase in QuickTime that we see happening in K-12 schools. So I'll sort of stop here. Again, this is our website here. And just one point that I didn't mention is that all of the services, because we're sponsored by the Illinois State Board of Education, all the services, the collaboratory, is completely free to potentially over 2 million students and teachers in the state of Illinois. And I don't think we could ever begin to attempt to handle that scaling up without having something with the rapid deployment capabilities of WebObjects. So thank you very much.
Thank you very much for that presentation. It's just really nice to see something that has both simplicity and also in terms of being, you know, the students and the teachers can use it. I think it's really interesting that it can empower them to navigate the whole thing. Nice usability and everything. And we're not going to have Q and A on individual sessions or individual speakers. What we're going to do is at the end, I'm sure that, you know, A lot of people probably want to network and have some specific questions on maybe what they did or how they did it. So we're going to have people kind of over on the side here. I'd like to introduce our next speaker, Matt Firlik from PowerSchool. Thank you. Thank you. As Bob said, I'm a WebObjects engineer from PowerSchool. Just to begin, can I see a show of hands of people who have either seen, used, or heard about PowerSchool? Not counting the people that work here. Okay, thank you.
a little bit about what is PowerSchool. A little over a year ago, Apple purchased PowerSchool. It's a company based up in the Sacramento area in Folsom. In their four-year tenure as a software development company, they've been working on a student information system, sometimes shortened to SIS, to work with K-12 districts to manage all their information assets and the like about the mechanics of actually being a school system. Now, as a division of Apple, we're actually continuing to develop this application and add it to the education resources that Apple provides.
To talk about why we're using WebObjects, we need to go back and talk about the beginning of PowerSchool and the incipients when PowerSchool became a company. The application was developed by a very small group of developers, a very small team, using 4D. They developed a Web-based application to implement different administrative functionalities and pieces for student information systems. As the popularity grew and they had more and more customers come into the application, they started to increase the volume in the application and started to scale up the number of users and access and information the application provided. It reached a functional limit at some point of about 7,500 users with the maximum capacity, based partially on the tool, the fact the database is in memory, some other limitations. As the application did become more and more popular, we started to see different metrics on how the application could be used and where it was actually applicable. It's interesting to note that 80% of the school districts across the United States fall into the category of being around 7,500 students. The interesting metric therein, though, is that that represents only about 20% of the students in the United States. So as the application became more and more popular, it became increasingly more important to target a larger audience, the other 80% of those students that were out there. To do so, We needed a tool to do so, and that's why we're here. As the use of WebObjects allowed the application to scale to a larger set of users, giving us a feasibility to track larger audiences, larger sets of schools, provide larger functionality to migrate the application to better serve their needs. So the application we're gonna talk about today is the PowerSchool Enterprise version, which is written in WebObjects.
The application, you may think, power school, obviously teachers and students, but there are large constituents, audiences, that we need to handle and a various number of users that we need to address. Students and parents make up the largest audience for the application. Obviously, parents and students are going to want to go on and look at information about the student, about the curriculum, about the events at the school. Being the largest audience, though, they represent the smallest amount of functionality for our application. Information is typically relegated typically to either the school district or the school or the individual student. So our largest user base is actually the lowest amount of functionality for us to implement. At a more moderate level is teachers and staff. Information like grades and the like, which we'll go into in a little bit, represents a moderate amount of functionality.
There are more teachers, pardon me, less teachers, but it's actually more functionality because we need to start talking about aggregate information of students' grades per classes, looking at class information comparisons, looking at information across whole semesters. So while it's a fewer number of users, it's actually a larger amount of information that we need to manage.
Additionally, though, is administrators. Administrators represent the smallest audience for the application, typically a very few administrators per district, but it's actually the largest feature set we need to implement. Information about aggregate sets across an entire district, looking at grades for an entire school district. So our application needs to handle disparate users, disparate types of users, and disparate pieces of functionality.
There's actually a lot of overlap between what teachers and parents and students can do, teachers and administrators can do. So we needed to find a way to bridge the gap not only with lots of different users, but how to span lots of different functionalities, even overlapping across a large set of users.
Parents and students typically use the PowerSchool application in ways to foster communication. We give them the ability to look at real-time status information, grades for the student, personal calendars for the events going on that are important to the students, also future assignments that the teachers can put in. This information is extremely valuable. Obviously, it's important to the students to know exactly how they're doing in their classes on a daily basis. It's also important for the parents to know that. Sometimes, I think we all know that notes can get lost in backpacks or someone can say they did well on a grade and not necessarily do so. The development of this kind of communication between parents, students, and teachers in a way that's actually in some ways unavoidable, that a student can always see their current information, parents can always see their current information, and it allows a way for them to interact. So students are no longer trying to forge signatures on notes to their parents. They're probably just trying to hack their passwords, but it's a little bit different problems we have these days.
Teachers use the application for information access, providing them a way to look at all the information about their classes and all the information about their students. Important is a two-way communication with the information system, the ability for them to put in information from grades to students to calendars and schedules into the system, but also see that information reflected out instantaneously on how their students are doing across a particular schedule per semester by term.
Ease of information is extremely important to them. When you start looking at the old school way of doing things with grading books and having to summarize and tally up grades, we provide them an easy way to look at this information. We also provide an easy way to look at the information regardless of their location. The ability to look at this information and input it in the classroom if you have time or wait until later to go home and look at the information gives them the ability to span their work accordingly and work from any location.
Administrators probably reap the most benefit of the centralized administration and information that we provide. The WebObjects application, centrally located, gives us the ability to provide secure access to real-time information. As teachers are putting in grades, they can start to see how the grade point average is looking for the entire district. Giving the ability to manage the large sets of information, looking at the student population in larger sets or in larger chunks. And also provide mechanisms for reporting. Reporting is an extremely valuable and important tool for school districts. Reporting is in a way that they get funding of being able to report to state institutions and educational institutions on how the schools are doing, what the schools are doing, particular events as such. So the application gives the administrators the ability to look at large scale pieces of information and use it accordingly.
Building this application is no small feat. With a large number of users and a large number of functionality pieces we have to implement, we needed a solution that could give us the ability to scale accordingly but give us the flexibility to implement as we needed to. We actually break out the functionality we've talked about by users in particular applications. So there are actually separate applications for teachers, for parents and students, and for administrators. By breaking them out as separate WebObjects applications, we get the ability to direct particular user bases and traffic to an application accordingly, so our higher-volume applications will have lower functionality sets, but we guarantee administrators more performance and functionality by putting them on their own instances.
In order to make this technology work, what we needed to do was find a way to scale our implementation as well. So most of our implementation is done in frameworks. Frameworks come in the form of different types. We have utility frameworks that we put in all of our core utilities, things for math manipulation, string manipulation, security, and the like. We also built in a layer of core SIS technology, implementations for grading, for reporting and the like, to scale those across different applications and allow applications to share that functionality. When we implement something in one application, we put it in a framework, we can instantly use it in the next. And on top of that, we build in solution frameworks for things like scheduling, so that things that could be considered actually a whole application of themselves, we actually make them as a framework so we can plug them in and provide that functionality to any other application. On the back end, though, we have databases and information that we need to integrate with, different kind of systems. So in addition to just our core set of data that we need to store, we have scheduling engines we need to integrate with, communication systems to either educational or other state-provided information systems to provide connectivity for the entire app.
In building a large application, we have lots of challenges. These challenges provide us a way to work within our domain, and these challenges are provided not necessarily just by the domain we work in, but by the size of the application, the volume of the application, and the development environment that we have to work with. To go through some of these, as we target larger and larger districts, we have the problem of complex data, presentation, and manipulation. As we have more and more students, the information we need to show to particular users increases in volume. When you start thinking about looking at every single assignment with every single grade for every single student and every single class for a teacher, that's an extremely large amount of information we need. It gives us the problem of figuring out how much data do we fetch, how much data do we show, when do we need to show it. WebObiage just gives us the ability to, as we talked about in the previous slide, work on this in frameworks, develop small reusable components so we can leverage the reusability of particular implementations from application to application.
It gives us the ability to provide framework solutions that we can work on in teams and segregate that out so not one person has to know about the entire application set. There are also some things that we do with WebObjects that make it a little bit easier. For example, when you're working with frameworks, using packages with Java to start packaging and creating hierarchies for your classes. We do that with all of our frameworks. Using two-letter naming conventions. So every single class and every single framework has a two-letter prefix. So when you happen to see an exception-- and they do occur-- you can see exactly which class it occurred in and in which framework. And the ability to break things out into separate teams makes it extremely easy to develop an application of this size.
The second is data validation. We have lots of data, lots and lots and lots and lots of data, and the problem is figuring out how to take that data and make it useful to all of our customers. Not every customer uses all of our data. Lots of customers have more data than others, and we need to find a way to not only manage that data but validate that data with different rule sets, different kinds of security measures to accommodate for each one of our particular types of users.
So the EOF and the ability to model our data differently based on particular applications, based on particular users, using the user info information in the model to store particular information on validation. It gives us the ability to encompass validation in a way that would not be possible otherwise. eyes.
As mentioned before, state reporting is an extremely valuable tool, an extremely large requirement for all of our users. Implementing something on top of the object model, there are a number of tools out there to do so. We've actually implemented a state reporting system that uses an XSLT template using Apache's FOP formatting objects implementation to generate PDFs on the fly, generate, in some cases, ad hoc reports of different kinds of queries and information that we need to show, giving users the ability to take custom data sets, custom information, and generate reports for their particular institution, which is extremely valuable.
We have a number of different external systems that we need to integrate with. As I've spoken before, we have a scheduling engine that we need to integrate with to do a large amount of scheduling. And by no means is scheduling an easy thing when you consider different kinds of students, different kinds of class schedules, different kinds of courses that need to be implemented. We also have external systems for state-required things like CSIS to integrate with, the ability to take aggregate sets of our information and shuttle it off to other systems for information or use their system to pull information into our application.
Multi-platform support is extremely important when you consider that what we're working on is a shrink-wrapped application. It's an application that we need to deliver to these users to install in their environment and customize in their environment. So the ability to use different kinds of platforms, different kinds of installations of web servers, databases, architecture platforms, gives us the ability to span this to multiple kinds of users, multiple installations, without changing our install base, without changing our code to handle the different kinds of users.
But the flexibility truly comes when we start talking about a shrink-wrapped application that you need to customize. We can't assume that every single school district does things in the same way. So by doing things in frameworks, by doing things in components, by remembering that we need to put in hooks and delegates in certain places to provide custom functionality, we can create an application that has a core set that you can customize based on the user, based on the implementation, to use the core set of features but also do exactly what they need. Typical deployment of PowerSchool takes one of two forms right now. Typically, they'd look at something like an IIS on a Windows machine running SQL Server or a hybrid installation of running Apache on Oracle and Solaris.
An example of deployments that we try and target, a typical district of 20,000 students is one of our types of customers, but we also do statewide deployments, something where you span multiple districts or all the districts in an entire district-- I'm pardon me, district in the state-- to bring all their information together. But we also target the other side, which is a single school in a district with over 200,000 students. So our application varies on implementation and size based on the particular customer that we're targeting.
The application was developed initially in WebObjects 4, and it's been moved up to the latest version, 5.5.1. It was done all in Java, so there was no porting from Objective-C. Development is all done on Project Builder on Mac OS X. We have about 25 developers at any one time working with revision control through Perforce, and our database of choice internally would be Oracle.
We spoke about how we broke up the applications and functional pieces. We also break up our development in that way. We have functional teams developing the applications, specific applications for particular types of users, but we also have a team of developers working on core frameworks based on solutions or utilities so that they can look at the large scope of the application and start developing classes and different implementations as the need arises. We also have back-end database engineers, in particular engineers for scheduling, that can focus on those systems and provide us the ability to seamlessly integrate that. But in addition to our development teams, we also have a bunch of teams working with us from marketing and analysis, going out and getting the large binders of requirements that we all know and love to go ahead and figure out how to implement those. We have full teams of quality assurance and tech pubs to go and validate what we're doing and tell us we're not doing it right, but also to document what we're doing and provide that functionality to our end users. And we also have full implementation and training is that once we take this application out, We have engineers that know about Waylogic's deployment, how to take this application out, ship it to customers, and work in their particular environments and make it work. Thank you.
Up next for PowerSchool is working on our interface usability as we have more and more customers in larger applications trying to make the UI work a little bit better, find better ways to interface, provide that functionality to our particular users. Also looking into deployments all on Mac OS X. Find a way to do a single server installation running on Mac OS X database web server in the whole nine yards. And features, features, features, as everyone knows and loves. So that's just a little bit about PowerSchool. If you want to find more about the application, There is a website, abl.com/powerschool, which talks about the application and the things we provide. Thank you.
Thank you, Matt. Great example of also showing sort of the engineering process behind that and kind of like how you can leverage off of the ability of the separation of function that WebObjects gives you and then represent that sort of organizationally. Also another good example, you can see how in both of these education examples how the the state requirements and reporting and things start creeping into your requirements. So I would like to introduce our next speaker, Thomas Lehmann, who will tell us about Deutsche Bank and their online banking application system.
Okay, let's begin. Okay, a little introduction about Deutsche Bank 24. It's a subsidiary of Deutsche Bank. I think it's one of the five largest banks in the world. Now, and Deutsche Bank 24 has 2 million customers using our web application. This web application is built with WebObjects. and since 1986 we have an applet solution and then we moved in 1998 to WebObjects 3.5 and program in Java.
So let's have a look at what it looks like. Okay, this login page, you have to provide your account number and... password and then you can login and then you can see something like an asset overview. And as you can see, the web pages are working on Mac OS X2, not only on Windows. We even provide Linux as a user interface. Thank you. And we are able, with the same application, to provide a different user interface. It's like here. And again, you can see a set overview.
Okay, which problems have we solved? In our environment, we have a legacy system we have to talk to, and this is done by COBRA-based middleware. And so we have to program some classes to use COBRA easily. Then we have business objects. These are based on the IDL definitions of objects in the COBRA layer, so it's easy to transport data from our application to the legacy systems Then we have a navigation concept. That's just a concept because you have to program a lot for a new application. We have programmer rules that makes life easier. Then we are provide multi-language support and multi-layout. The multi-layout you have seen and multi-language, we are able to, in addition to the German language, our English language, but there are business cases we have to provide a right and correct text, and so it's a very complicated process.
Okay, and we are able to, using a chip called link automation, authentication with our application instead of the account number and PIN we provide in the login page. And that's done with an applet, with a faceless applet and LiveConnect in a web browser. And then it's a great impact on our application. We can handle heavy load.
Okay. So what we are using to build these applications, we have WebObjects for sure, and on Win2K we have a CVS server on Ulnux. We have an Oracle database, and we've stored our little data over JDBC. We have the homegrown middleware for the enterprise application integration for the legacy systems, and our test environment is on Solaris, and we have and SSL Apache web server on Linux. We have up to five developers. It's a small team. They are fast enough to make changes and build the application. application.
so what can we use another applications we have uh... built a component from a reasonable component framework that uh... input fields for with generic input validation we can provide on these input fields error messages right by these input fields. Okay, then formatted currency values and selection lists are configured by XML data.
and again the navigation concept uh... you know to parts in this uh... configured a logic in the uh... navigation for xml and uh... how does it look like this uh... done in a component of html Okay, and then we have core implementation. What we think should, and every bank likes account and securities and something like that. And this is done. We have used this in three other banks, and it works very fine.
Okay, now scalability. That's a very important thing here. We have two Sun-E 10,000 machines running with objects and centers. We have 480 instances. And the customers, right on the writing time of these slides, are 150,000 customers logged in every day, but now it's about 200,000. The maximum we measured in the past are 400,000. customers logging in every day on this special day.
Okay, and then, okay, web server's handling 11.5 million HTTP requests. It's 25 gigabytes of net traffic. Okay, architecture, it's like every web object's deployment environment. We have a web server, we have an application server, and we have, for us, they are legacy Okay, and the middle is the ETN. There are the two ETN K boxes and 50 WebObject instances in the middle and four different legacy systems.
So we have moved from WebObjects 4.5 to WebObjects 5. And we have a lot of performance enhancements here. And you can see we have a stress testing one hour. And the blue line is the WebObjects 4.5. There is a lot of CPU usage in 4.5 and in WebObjects 5.0. you have a little usage of the CPU with the same task pace.
and texture but they have significant more performance with the uh... the objects five we have uh... it's in real life we have seven t to two hundred percent faster uh... application We have a very small CPU workload, you have seen on the slide before, and we have improved availability and reliability of the application. In 4.5 they have many problems to provide a reliable system. And in WebObjects 5, it's much easier to do this. Okay, and then the conclusion, we have the same hardware, we can serve five times more customers with WebObjects 5.
So what have we to do to move from folder 5 to WebObjects 5? um... you've okay there are scripts for a lot from apple to uh... do the con uh... conversion and that's what's not a percent of t issues and uh... we have a little problems with local trade because it's uh... for j_d_k_ one of one dozen of the local television and they have to change change a lot of things and look for a forty and ready to so we have to do these changes from uh... Of course, using Look4J for logging, we have a lot of things to do in the whole application. And we have no problems with the chip card communication. It's a little bit surprising for us, but it works again. I think that should be done here. Bye.
Thank you very much for that presentation. I'm very, very pleased to have Deutsche Bank as an enterprise customer, somebody out there who's really, really pushing very, very hard on WebObjects besides, you know, we always talk about the Apple Store. It's very nice to have somebody else out there who's really pushing the edge. And my other favorite slide is the guy by moving from Java on 451 to Java on 5 that they were able to take care of four times as many customers with the same hardware. So I want to thank the WebObjects team for doing that. - And I want to thank Deutsche Bank for giving us that information and that feedback. That's great. Our next application and our next speaker is Michael Buening, and he is with Weblecon and a very interesting application in personal information management. I think you'll enjoy this. Thank you.
Thanks Bob. Hi everybody, thanks for coming out this morning. My name is Michael Buening from Baplikon Technologies. Baplikon Technologies is a software development company. We are located in Berlin, the one in Germany. We were founded in summer 2000 and we specialized in personal information management. That's what I'd like to present to you today.
It's a Baplicon PIM, Personal Information Manager, intended to be used by telecommunication companies, portals, or corporates. It's a fully featured organizer that lets you manage your address book, your calendar, your to-dos, as well as your emails, SMS, or MMS. Let me just quickly explain SMS, MMS, just in case you're not familiar with that. SMS means Short Messaging Service. lets you send messages up to 140 characters to GSM mobile phones. It's very popular in Europe. I think end of last year we had an amount of 150 million messages sent over the GSM networks. It's probably much more by now. MMS means multimedia messaging service. It's a new upcoming standard for sending multimedia content to mobile phones.
The WebPliCon organizer lets you do that, and it's done using Apple's outstanding WebObjects framework. We started developing using WebObjects 4.5 and moved to WoW 5 this year. How is it done? Let me show you the basic architecture. So you can access server data from your PC or preferably your Mac. or your mobile GSM phone using six different clients. Let me introduce the clients to you. First one will be HTML, just a web browser. We do not use JavaScript or cascading style sheets. Excuse me. Just plain HTML 3.2, so virtually every web browser will do.
uh... second one is a job a client so highly interactive java swing desktop application uh... using web objects job a client technology third one succumb to us and come out as a protocol for synchronizing data between different devices and that the conservative succumb as certified by the succumb organization and you can synchronize you date on your pc with server data using our native clients for Outlook on Windows or Windows CE, or using a palm conduit for your PDA. Or you use a SyncML-capable GSM phone like the Nokia Communicator or the Ericsson T68. So the first client is WML. WML means wireless markup language. So any WAP-capable GSM phone will do.
The fifth one is Voice XML. It's even more simple. All you need is a phone and you can dial a service. For example, your latest email will be announced to you. And last but not least, J2ME. It's a Java midlet running on J2ME-capable devices like the latest mobile phones. We have a server application running for each client. That's the yellow layer.
Usually each server application uses a couple of frameworks that will provide the user interface for certain tasks like address book, calendar, and so on. And we have shared frameworks, shared between those server applications that will provide data. So database access is done transparently using EOF, which is represented by the yellow layer. Actually, there's one layer missing, because the standard architecture diagram has only five layers. There should be a layer between those shared frameworks and the EOF containing our business logic and our foundation frameworks and utility frameworks. So as I said, database access uses EOF, which means all the data is handled as EO enterprise objects inside the applications, even messaging information.
So what databases can you use? First is LDAP for storing user or contact information. We are using JNDI to access the directory servers, and we tested against OpenLDAP, the Netscape directory server, and the critical path directory server. At BMS databases, Well, you can use any database you have an adapter or driver for. So we're using JDBC adapter for Oracle front base or open base. And you can transferably switch between LDAP and RDBMS as data store for contact or user information. And the third one is not that usual, I think. We're using an IMAP server as a data store for ERF to store our messaging information, and therefore we implemented an object store using some Java mail package that connects to the IMAP server.
So let's have a closer view of how client requests are handled and responses are generated. For standard browser requests, we use WebObjects. You probably know about that. But we have two additional frameworks that are used by the other server applications. So the WML server application uses WAP objects. It's a framework that handles requests coming from a WAP browser and generates WML responses. We acquired the code and adapted and ported it. It's pretty much the same with VoiceXML. It uses a VoiceXML objects framework. It's a plug-in to WebObjects as well as a WAP objects framework.
VoiceXML objects was developed by Vaplicon and handles requests from a VoiceXML browser, generates VoiceXML responses. So again, you have the different server applications and the shared framework layer there. So that's how it's done, basically. Let's have a look at how it looks like. I've got some screenshots for you.
So first of all, let me mention we have a common design pattern for HTML applications. You have a list of modules, which represent the address book or the calendar or messaging on the left hand. And you have a toolbar on top, which provides basic functionality like saving changes, creating new objects, deleting them, switching between views, or browsing through data. This one is the address book. It shows a sortable list of your contacts. They're sortable by columns. You have full content search capability at the upper right corner. You can group your contacts. The contacts group, the lowest entry in the list is a contact group. It's quite convenient when sending messages to a bunch of people. I'll come to that later. choose the contact editor. You can browse through your contacts by using previous and next buttons in the toolbar. You can have multiple communication data entries. You're not limited to just having one fax number because you just have one field for it. You can have as many as you want.
This one shows a messaging module, again a toolbar at the top. On the left hand you have a hierarchical view of your mailboxes. You can add one, rename them, sort them. On the right hand you have a sortable list of your messages, showing your emails or your SMS in one list. And below that you see the content of the selected message. And you can file those messages into your mailboxes by using the small arrows there. This one actually goes down to the IMAP server, so if you use any other IMAP client like Outlook, you will see exactly the same structures there.
uh... this one is the email editor for subject to ccbcc text you can uh... add and upload attachments like any other email client. Any of that list on the right hand lets you find and add addresses from your address book. It's pretty convenient to pick a contact group there. Then the message will be sent to all the members of the group.
This is Calendar, showing all your appointments that month. You have an overview calendar on the right hand that lets you quickly access months, weeks, and days. calendar week view. Let me mention that the Webdecon pyramid is fully localized. We are currently supporting six languages. And it's fully customizable in look and feel, as you will see in the next slide. This is a week view again, but this time of a different skin, as we call it. You can switch skins on the fly, and it's pretty easy to add skins to the application. You don't have to recompile, you just put the web server resources in the right place, and you edit the configuration file and you restart the application and you're done.
This one is the SMS editor, again with the custom skin. This time it's for KPN Mobile, the biggest Dutch mobile phone provider. This one is live on the website since May of last year. Notice it's a Dutch localization. It's basically used for group SMS sending there. So this is how it looks like if you access it using a mobile phone with a WAP browser. On top you see the main menu. The one below shows the day view of two appointments that day.
Again, WML server. It's your address book main view. Again, you have full content search capability there. The one below shows your mailboxes, so you can check your mail on the road using your mobile phone. So this one looks pretty much like the HTML calendar, but it's not. It's the Java client, a Java swing desktop application using WebOptics Java client technology. And it features almost everything you know from desktop applications, like multiple selection and drag and drop and so on. So, I have no screenshot for voice XML application, for obvious reasons.
that means i'm through for slides just uh... if you want for the information go to but the con technology's website, www.weplicon.net. You can sign up for a free demo account there. Or email to [email protected], to [email protected], which Carsten Brinksholter, who's our CEO, or to [email protected]. And that's me. Thanks a lot.
Wow. That's a really outstanding example of showing how you can really push the presentation layer with WebObjects and, in fact, adding, like, three different clients and it looked like another adapter getting stuff in from IMAP. So there's really taking WebObjects pretty far and really delivering something to the end user where they have accessibility to data from anything they can pick up. I think we should, you know, make them do a a client for the iPod or something.
Okay, and the URL for signing up for the beta. And one thing I will mention is even if you were in one of our previous betas, it's very important that you sign up again because we're starting over on the list. So even if you were in a previous beta, please do go to this URL and sign up. Last chance for the lab. And please do come back for the feedback session. That should be a rousing session. Who to contact?